ATMEL製ワンチップマイコンAVRによる
ドライブレコーダの製作

Counter
履歴
2005/10/08:「バンディング」ってなに?、リンク追加
2003/08/30:Profile変更。
2003/07/06:ホームページ構成変更、AVRライター、リンク作成
2003/06/28:プロファイル追加
2003/05/17:初版



「バンディング」って、なに?
ホームページ製作動機
 私(ハンドル名:mkmac)が大学を出て会社に入りはじめてさわったマイコンが、東芝のTLCS−12Aという12bitのCPUでした。(年がばれる)当時はDISK装置もなくカシオのタイピュータという打ち込み機を使いテープでプログラムを打ち込み(もちろんCコンパイラなど無くすべてアッセンブラ)開発したものでした。その後インテル8080、ザイログのZ-80、モトローラの68000などを経てしばらく10年くらいはマイコンから遠ざかっていました。
 最近になってインターネットで「電子工作」をキーワードで検索してみるとPIC、AVRなどのワンチップマイコンがあることを知り、昔の工作の虫が騒ぎ始めました。
 最初はPICの製作記事、資料が多くこれでしばらく遊んでいたのですが無償のCコンパイラ(アッセンブラでやる気力もないので)が容量制限付きのもの(HI-TECH PICC Lite)しかなく、仕方なく16F84で遊んでいましたがちょっとしたものを作ろうと思うとすぐにコンパイル制限容量を超えてしまいます。そこでATMEL製ワンチップマイコンAVRを調べてみるとこちらにはGNUのCコンパイラがあることが分かりこちらへ乗り換えた次第です。

 国内のホームページを見るとATMEL製ワンチップマイコンAVRを使用した実用的な製作記事がPICに比べてあまり多くないことから、AVRを使用して電子工作に励んでいる方の参考になればとホームページ作成の勉強がてら立ち上げを決めました。

 昔は(と言っても5年くらいですが)資料一つ取り寄せるにも電話やはがきで請求して郵送で送ってもらったものですが、最近はインターネットで資料、ソフトなどが即座に(ほとんど)無償で手に入り、便利な時代になったものです。
 

注)本サイト掲載内容を利用したことにより発生した損害、障害等の責任は負いませんので、自身の責任で行ってください。

 
製作内容
私は通勤で車を使用しており、時々出張で自家用車を使用します。その際にいちいち走行距離計を見て記録するのも面倒なのでこの製作を思いつきました。原案の記事が以前トラ技2002年1月号に掲載されていましたが
1)電源を接続する度に日付、時間設定をする必要がある。
2)記録するデータがエンジンスタート−>エンジンOFFの間のデータしか取れない。
3)PICを使用してる。(PICが悪いわけではありません。)
等の理由で新たに設計することにしました。
付加機能として
1)リアルタイムクロックを持ち、電源OFF時もバッテリで駆動するようにした。
2)記録するポイントを走行−>停止時にも行うことが出来るようにした。
3)一日の走行距離を記録できるようにした。(日付の代わりで判断)
4)日付、時間設定をRS−232C経由でパソコンから出来るようにした。
などです。

主要パーツの選定
CPU:ATMEL製ワンチップAVR,ATMEGA163P(当初AT8535で製作していたがプログラム容量不足で変更)
リアルタイムクロック:セイコーエプソン製RTC_8564(本来は表面実装のICですが、DIPタイプのものが秋月電子で購入できます。)
EE−PROM:The Microchip Technology Inc.製 24LC256(32K x 8 (256 Kbit))(これも秋月電子で購入可能です。)
LCDパネル:日立製HD44780-based Character-LCD、4行×20桁のバックライト付きのものです。(共立電子で購入、台湾製みたい。)
RS−232Cレベルコンバータ:MAXIM製、MAX232
その他細かい部品は図面を見てください。

走行距離、速度計算方法
本システムで実装している走行距離、速度計算方法は下記の通りです。
[走行スピード]
・AVRのキャプチャトリガ機能を使用して、CPUクロックを車速パルスの立ち上がり周期の間隔をカウントする方法をとっています。
   

この方式の欠点はスピードが遅く(車速パルスの周期が大きく)なるとカウンターがオーバーフローしてしまいます。このため割り込み部分でフラッグ制御しています。
 
[走行距離]
・車速パルスをカウントして100m分カウント(計数は車種により異なる。実測で決定する。)で走行距離カウンタを+1カウントするようにしています。(0.1Km単位)

Cコンパイラ

ハードウェア

ソフトウェア

AVRライタ
外観
PC接続コネクタ
電源ソケット、電源スイッチ、ISPケーブル
内部基板

製作例
全体写真
カバーを開けたところ(1)
カバーを開けたところ(2)
背面写真
CPU ボード
電源、インターフェースボード

パソコンとの接続
まず、電源(9〜12V、1A位のACアダプター、装置内部でダイオードブリッジを入れているので極性は不問)とパソコンのRS−232Cポートに本機を接続します。最近はRS−232Cポートがないパソコンも多いと思いますがその場合はUSB−RS232C変換ケーブルで接続してください。
接続ケーブルはストレートケーブルです。
ハイパーターミナル等のシリアル通信ソフト(私は秀TermEvolutionを使用しています。) を立ち上げ、19200bps,8bit,NonParity,1StopBitで接続します。

コマンド
リターンキーを押すと下記"Command"メニューが表示されます。コマンドは各コマンドの頭文字を入力します。リターンキーは不要です。大文字、小文字いずれでもOKです。

画面、操作スイッチ
表示画面1
  • NowSpeed:現在の車速を表示
  • MaxSpeed:停止状態から次の停止状態の最大速度を表示
  • AvgSpeed:停止状態から次の停止状態の平均速度を表示
  • Disitance :停止状態から次の停止状態の走行距離を表示
表示画面2
  • MaxSpeed:当日の最大速度を表示
  • AvgSpeed:当日の平均速度を表示
  • Disitance :当日の走行距離を表示
日付、時刻表示
  • 現在の日付、時刻を表示
バッテリ電圧表示
  • CarBatter:車載バッテリの電圧を表示
  • BackupBattery:リアルタイムクロック用バッテリバックアップ電池の電圧を表示
    電源投入時電圧が低下している場合(リアルタイムクロックの機能で検知)LCD画面に表示します。
背面操作スイッチ
  • 表示切換:LCD画面を切り換えます
  • 選択:未使用(将来の機能拡張用)
  • 電源(DC12V):車からはずしてパソコンを接続する場合にここにACアダプタを接続します
  • POWER:電源スイッチです。尚、イルミネーション電源は含まれません。
  • RS232C HOST:パソコンを接続します
  • 電源(車速パルス):車に接続する際のコネクタです。
 

車との接続
私の自家用車はホンダストリームで接続は下記のように行いました。
ここに車種別の取付情報があります。)

ACC、イルミネーション電源取り出し場所
(オーディオコネクタ) 

車速パルス取り出し場所
(エンジンコンピュータ)

車速パルス波形

距離、速度の補正
車種により異なっているので補正が必要です。下記数値はストリームの値です。"timer1.h"内の下記定義を変更してください。
#define SPEEDRATE 182638 // Km/h/Pulse
#define COU100M 254 // Pulse/100m

データの表示
取得したデータはエクセルで表示できます。(ファイルはこれ
上記、パソコンとの接続で"L"コマンドでデータをDUMPしたものをコピーしてエクセル画面のデータ部に貼り付けると走行距離が日付、時間とともに表示されます。


謝辞
今回のシステムのソフト開発に当たり、「趣味の電子工作実験室」でおなじみの後閑さんのホームページにあるPICROS(PIC用簡易リアルタイムOS)をAVR用に移植して使用させて頂きました。本ホームページ掲載にあたり快く了解していただきましたことを感謝致します。
また、I2Cドライバ、RS-232Cドライバはここに掲載されてるChris efstathiou氏作成のものを使用しています。
本ホームページをごらんになって、ここはこうしたほうがよいとか、ここが間違っているよとか、その他ご意見等あれば下記メールあて送付お願いします。質問等出来る限り回答するようにしますが、あまりたくさんの場合はすべてに回答出来ないこともありますのでご了承お願い致します。
 

リンク集

メーカサイト
Atmel Corporation AVR製造メーカのホームページ。GUI開発環境ソフトがあります。
OLIMEX Ltd. 個人でもプリント基板を作ってくれるブルガリアのメーカ。Cadsoftで入稿可能(私自身はまだやったことはありませんが)。
AVRcard.com クレジットカードサイズのAVRボードを製作。スイスのメーカ。
Fluke テスター、オシロ等の測定器メーカ。私もここのハンディオシロスコープ123を持っています。
Lantronix, Inc. XPortと言うユニークな製品を出しています。これを機器に組み込むと簡単にインサーネットに接続できます。RJ-45コネクターサイズにCPU、イーサチップ、RTOS、TCP/IPとその上位アプリケーション層までを実装した、超小型デバイスサーバ。これを使用して何か作ってみたいと考えています。

情報、ソフト、電子部品、資料等
AVRfreaks AVRに関する様々な情報があります。
HERO'S Download Index AVR資料の日本語翻訳資料多数あり。利用方法をよく読んで利用しましょう。
HI-TECH Software PIC用フリーのCコンパイラがあります。
PonyProg
serial device programmer
AVR、PICなどのライターソフトがあります。
WinAVR AVR用GCCコンパイラがある。
GCC home page GCCのご本尊。
Ethernut オープンソースのTCP/IPソフトを載せた Ethernet Devices. のホームページ。これ一枚でWEBサーバが出来てしまう。
Compass Lab AVR/PIC Simmマイコン基板、スタータキット、インシステムプログラマ、CAN、コンパイラなど。私はここでSTK500 ATmega-Starter Kitを購入。
CadSoft 私が使っている電子回路図面作成、プリント基板作成ソフトです。
秋月電子通商 おなじみ電子部品の通販、店舗もあり。東京方面出張時は時間が許す限り立ち寄りますが、いつも混雑していて結局あまり買えず。
千石電商 秋月電子と同様電子部品の通販、秋葉原の秋月とはすぐ近くです。LEDがいろいろあり。秋月にくらべ比較的空いているので買いやすい。工具、抵抗類も種類多い。
アイ・ピイ・アイ PIC、AVRチップ、ツール、USB関係、NETWORK関係、無線モジュールなどのつくばにある通販会社。AVRはどこより品揃えが良い。
HOZAN 昔からお世話になっています、電子工作ツールメーカ。
共立電子産業 昔からお世話になっている、日本橋の電子ショップ。カテゴリ別に店舗、通販がある。
デジット
電子パーツショップ。ここでは主にジャンクを物色。
シリコンハウス
4階あり、半導体、各種パーツ、計器類、工具、ケース、書籍など。
共立エレショップ
通販ショップ。「蚊取ラケット」などユニークな商品が多い。
ニノミヤ特販部パーツ店 大阪日本橋 PcXtownエレホビー店 5Fにあり、電子パーツ、工具、ハム用通信機などが豊富です。
KISO POWER TOOL ルータで有名なPROXXONの工具を販売している。

個人のホームページ
趣味の電子工作実験室 ごぞんじ後閑さんのホームページ。PIC関連が詳しい。
TAP-Config まろりさんのホームページ。マウス、AVR、Linuxなど。
The Electronic Lives Manufactureing ChaNさんのホームページ。マイコン応用回路一般の記事多数。AVRもある。
Welcome to Electronics room toshuさんのホームページ。AVRの電子工作も多数あり。

その他情報リンク
アクリ屋 アクリル製品の特別注文、アクリル板ほかアクリル材料の加工販売、アクリルケース(アクリルカバー)などアクリル製オリジナル商品の通信販売。電子工作のケースなどに利用できる。
日曜大工応援隊 DIYでスピーカボックスなど木材の調達、加工に便利。
サウンドハウス 文字通り楽器、オーディオなど販売。私はここでボーズのコンポを買いました。
価格.com 言うまでもなく、価格比較サイト。通販で買うときはここの掲示板を参考にします。