【最新情報】
2010.5.20 V1.2のシールが貼ってあり、Write切り替えスイッチがついていないマイコンボードの、プログラム書き込み方法をまとめました。書籍とは大きく異なりますのでご注意ねがいます。
V1.2のプログラム書き込み方法
2010.3.25 【重要なお知らせ】書籍で使われているBTC-067マイコンボードの仕様変更にともない、プログラムの書き込み方法その他が大きく変わりました。現在では、プログラム方法及びprintf関数の使い方が書籍とは大きく異なります。ver1.2のシールが付いている場合は大変お手数ですが、マイコンボードのメーカーのATmega32マイコンボードの技術情報のページを参照願います。
2009.9.7 【重要なお知らせ】書籍で使われているBTC-067マイコンボードのプログラムの書き込み方法が大きく変わりました。BTC-067に黄色いシール又はver1.2のシールが付いている場合はこちらを参照願います。
2006.4.24 【重要なお知らせ】浅草ギ研よりダウンロードできるGDLですが、プログラム転送用のAVDUDEが、初期値でATmrega128用に設定されています。
本やAT-WALKERで使用するのはATmega32ですので、下記手順にてAVDUDEを変更してください。 GDLから「ツール」−>「外部ツール設定」−>「AVDUDE(ATmega32)」(タブです。)から、「ツールメニューへ登録」にクリックをして「OK」を押します。すると、GDLにAVDUDEのアイコンが1つ追加されます。マウスのカーソルを上にするとxx32と表示される方のAVDUDEで転送を行ってください。
コレを行わずにプログラムを転送すると、Hello.cなどのプログラムが動かない場合があります。
2006.1.13 【重要なお知らせ】本で使われているGDLですが、ベストテクノロジー社の最新版では関数の内容が変わり、本のプログラムがコンパイルできない場合があります。特にHello.cはコンパイルできないことが確認されています。浅草ギ研で配布しているバージョン(下)のGDLは問題ありませんのでこちらをお使い下さい。
フリーの開発環境(GCC)を使用しているため、このようなことが起こりえます。ご了承下さい。
2005.12.7 本で使用する開発環境 GDL がこのページからもダウンロードできるようになりました。
2005.10.3 本で作成するロボットのキットを発売致しました。
【GCC Developper Light(GDL) のダウンロード】
※この内容は旧版のマイコンボードの場合になります。マイコンボードBTC067に黄色のシール又はver1.2のシールが付いている場合は次の項を参照願います。
GDLの開発元、ベストテクノロジー社のご好意により、本書で使っているGDLの機能限定版をこちらからもダウンロード可能になりました。
尚、すでにGDLがインストールされている場合は、現在インストールされているGDLを「コントロールパネル」−>「プログラムの追加と削除」で削除してからインストールしてください。
■GDL1.6.0.14(AVR).exe (右クリックで対象を保存)
・本のプログラムがそのままコンパイルできる、旧バージョン。尚、プログラム転送ソフトAVDUDEがAVR128用に設定されているので、GDLから「ツール」−>「外部ツール設定」−>「AVDUDE(ATmega32)」(タブです。)から、「ツールメニューへ登録」にクリックをして「OK」を押します。すると、GDLにAVDUDEのアイコンが1つ追加されます。マウスのカーソルを上にするとxx32と表示される方のAVDUDEで転送を行ってください。
■GDL1.7.0.0(AVR).exe (右クリックで対象を保存)
・本のプログラムが一部コンパイルできない、最新バージョン。現在確認されているコンパイルできない部分は下記箇所なので、本のプログラムを修正してからコンパイルしてください。動きは同じです。
修正1) fdevopen(rs_putchar,rs_getchar,0); という行があったら削除する。
修正2) printf(....); というところを rs_printf(....); へ修正。
【マイコンボードに黄色のシールが付いている場合】
2009年夏より出荷のバージョンには黄色のシールが付いているものがあります。このバージョンからプログラムのダウンロード方法が変わりましたのでここで紹介します。
<概要>
旧バージョンはプログラムの書き込みにAVRDUDEを使用していました。新しいバージョンからはGDLに添付の通信ソフト「SIMPLETERM」でプログラムをダウンロードします。尚、新バージョンボードをAVRDUDEで書き込みしようとした場合は
「not in sync resp=0x03」のように一瞬表示されます。
<GDLのダウンロード>
最新版のGDLはベストテクノロジー社のGDLのページからダウンロードできます。GDLはフリーソフトにつき、ベストテクノロジーの方ではサポートしませんのでご了承下さい。2009年現在でバージョンは2.2.0.44になります。尚、バージョンが違いますと下記の内容の挙動が変わる可能性がありますので注意してください。
「インストールパッケージの入手」の項のリンクをクリックするとダウンロードが始まります。このとき、Webにかいてあるとおり、ダウンロードに失敗する場合はダウンロード専用ツールなどを使用した方がよいです。実際にこちらで確認した時もダウンロード専用ツールを使わないときちんと拾えませんでした。
<GDLの起動>
インストール後、初めて起動する場合はATmega32用の設定にします。「ツール」−>「コンパイルオプション」の画面の「設定リスト」タブでATmega32を選択します。これによりGDLはATmega32を開発する環境に設定されます。
<動作確認用サンプルプログラム>
書籍を書いた時から、ライブラリがかなり変わっており、printf関数などの設定方法が書籍の内容と違っています。つまり、書籍のhello.cなどのサンプルプログラムは現状ではそのままでは動きません。ということで、動作確認用に、書籍のLED1.cを使います。LED1.c以降のプログラムはライブラリの変化に依存しにくい内容になっています。
下記は書籍のLED1.cをちょっと変更して動作をわかりやすくしたものです。本との違いは行5,6になります。
これを打ち込んで[f9]キーを押し、コンパイルします。成功すると下記の下のように<成功>と表示されます。
<プログラムの書き込み方法>
ここからの手順が大きく変わります。
1)上記のコンパイルが終了すると、SIMPLETERMを起動するか聞いてくる場合があります。コンパイル後もSIMPLETERMが起動していなかったらSIMPLETERMを起動します。(コネクタのアイコンを押すと起動)
2)「ファイル」−>「プロパティ」を確認して、BaudRateが115200になっているか確認する。
3)BTC067のスイッチがWriteになっているのを確認して、電源を入れる。SIMPLETERMとBTC067を接続状態にします。電話アイコンの上矢印が押されていなかったらここを押すと接続状態になります。
4)SIMPLETERMには、現在なにも表示されていないが、ここでPCのリターンキーを押すと下記のように表示されます。
5)「f」キーを押します。(リターンキーは不要)
6)転送するファイルを選択します。「転送」−>「ファイル送信」で転送するファイルを選択してください。コンパイルするとxx.binという拡張子が付いたファイルが生成されますが、これを転送します。この例の場合、LED1.cをコンパイルしたのでLED1.binが転送するファイルになります。
7)ファイルを選択すると、画面下のゲージが上がり、100%になると転送が終了します。画面にはOKが出ます。
8)転送したプログラムを起動するには、BTC067上のスイッチを「Write」と逆の方に切り替えます。切り替え直後からプログラムが動作します。電源が入るたびに実行されます。LED1.cは緑LEDを点滅させるプログラムです。
もう一度プログラムを書き込む場合は、スイッチを「Write」にしてからリセットスイッチ(プッシュスイッチ)を押します。LEDが3回点滅したらプログラムを書き込む状態になりますので4)からの手順を実行します。
【パーツ入手情報】
浅草ギ研の通販ページ 本で使われるサーボ(S03T)など
ツクモロボット王国のページ ロボットキット、マイコンボード、A5052アルミ板など
千石電商通信販売のページ 電子部品、抵抗、コンデンサ、PCBソケット、スイッチなど
ネジの浅井製作所 本のサーボホーンを止めるネジはこちらの「座付きネジM1.7L4クロアエン」です。
WILCOのページ 本で使用しているテフロンブッシュ(T3040-8115)はこちらで入手できます。
【正誤表】
<第三刷以前>
■P83:図2-47 LEDの電圧降下 誤:約0.7V −> 正:約2V(LEDによって若干違う)
■P85:図2-49 LEDの電圧降下は約2Vなのでこの図の4.3V表記の部分は全て3Vになります。
下の式の抵抗は3V/40*0.001=75オームになります。
(上記以外の下記は改定されています)
<第二刷以前>
■P112:上から8行目 誤:TCCR1A |= (1<<WGM12); −> 正:TCCR1B |= (1<<WGM12);
■P115:リスト2-6 誤:TCCR1A |= (1<<WGM12); −> 正:TCCR1B |= (1<<WGM12);
■P115:リスト2-7 誤:TCCR1A |= (1<<WGM12); −> 正:TCCR1B |= (1<<WGM12);
■P123:リスト2-8 誤:TCCR1A |= (1<<WGM12); −> 正:TCCR1B |= (1<<WGM12);
(上記以外の下記は改定されています)
<初刷>
■P66:図2−40 誤:$19〜$17番地 −> 正:$18〜$16番地
■P66:上から7行目 誤:$19 −> 正:$18
■P98:上から4行目 誤:「OSCをセットする」 −> 正:「CS0xをセットする」
■P100:リスト2−4 上から7行目 誤:/* sec −> 正:/* msec
■P105:下から2行目 誤:SIGNAL(SIG_OUTCOMPARE0) −> 正:SIGNAL(SIG_OUTPUT_COMPARE0)
■P117,P118,P122,P156:mSウェイトする関数のプログラム
誤:TCCR2 |= (1<<CS21) | (1<<CS20);
正:TCCR2 |= (1<<CS22);
※タイマ0と同じような設定をしてましたが、タイマ2は設定値が違いました。誤だと32分周、正だと64分周になります。つまり、本の通りだと1mSではなく0.5mSと半分の時間になります。但し、タイマ2を使ったウェイト関数は歩行間の時間稼ぎに使用しているだけなので、すでに歩行データなどを作ってしまっている場合はそのままでも問題ないかと思います。
■P123:リスト2-6上から6行目のコメント 誤:CTCモート −> 正:CTCモード
■P114:下から3行目 誤:グローバル関数 −> 正:グローバル”変数”
■P141:下から3行目 誤:PC1〜PC3の −> 正:PC0〜PC3の
■P143:上から3行目 誤:#0=+40 −> 正:#0=+30
■P148:下から2行目の式 誤:? = PINB & (1<<PI0NB0); −> 正:? = PINB
& (1<<PINB0);
■P112:上から8行目 誤:TCCR1A |= (1<<WGM12); −> 正:TCCR1B |= (1<<WGM12);
■P115:リスト2-6 誤:TCCR1A |= (1<<WGM12); −> 正:TCCR1B |= (1<<WGM12);
■P115:リスト2-7 誤:TCCR1A |= (1<<WGM12); −> 正:TCCR1B |= (1<<WGM12);
■P123:リスト2-8 誤:TCCR1A |= (1<<WGM12); −> 正:TCCR1B |= (1<<WGM12);
【AT-WALKER事例】
■AT-WALKERをPCから無線で動かす・・・難易度(高い)
■AT-WALKERの無線コントローラの作成・・・難易度(普通)
■アナログジョイスティックを取り付ける・・・難易度(普通)
■超音波距離センサーを付けてみる・・・難易度(やさしい)
■RCサーボコントローラAGB65-RSCとの接続・・・難易度(やさしい)
(本とは違い、シリアル通信命令で簡単に複数のRCサーボの駆動をします。近藤サーボの教示機能も使える)
■AT-WAKSERから感圧センサーAGB65-4FSを動かす・・・難易度(やさしい)
【Q&A】
Q:P50のHello.cをコンパイルすると、入力が間違っていないのにコンパイルエラーになります。
A:最新バージョンのGDLでは本のプログラムがコンパイルできないことがあります。このページで配布しているバージョンのGDLをお使い下さい。また、上の「重要なお知らせ」を参照しながら、AVDUDEをAtmega32用に切り替えてください。
【その他お問い合わせ】
その他のお問い合わせについてはメールにてお願いいたします。
|