なのぼ〜どに Arduino スケッチを書き込む2014/12/28(日)
大掃除(+床のワックスかけ)終了、年賀状終了。少し時間ができたので、久しぶりになのぼ〜どをいじってみる。なのぼ〜どに Arduino スケッチを書き込める、という話を見かけたので、やってみた。まずは、現状復帰ができるようにする。
- なのぼ〜ど Nanoboard AG(ちっちゃいものくらぶさん):最新ファームウェアの Arduino スケッチ。
- Arduino 0023 で optiboot に染まってみる(ちっちゃいものくらぶさん):ブートローダの設定。
- 超音波距離センサーを使ってみる(ちっちゃいものくらぶさん):修正した NewPing ライブラリが置いてある。
- RCduino(morecat_labさん):水晶発振子を使わないことで、Arduino の PB6/PB7 をデジタルピンの 20/21 として使う設定。
なのぼ〜どの第二モーターは PB6/PB7 につながっている。→ 回路図見間違い。PD5/PD6 だった。 - arduino 1.0.1 で NanoBoard AG で2つのモーターを使う方法(涵養塾さん):要するにこの通りにやればよい。
使ったのは、Mac OS 10.6 上の Arduino 1.0.6。ちゃんとうまくいきましたよ。
cd /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/bootloaders/optiboot
Makefile
を以下のように変更。
--- Makefile.orig 2014-09-16 16:11:12.000000000 +0900 +++ Makefile 2014-12-28 23:20:58.000000000 +0900 @@ -393,6 +393,29 @@ atmega328_pro8_isp: EFUSE = 05 atmega328_pro8_isp: isp +# ATmega8-8m +# Ref: http://tiisai.dip.jp/?p=1413 +# +atmega8-8m: TARGET = atmega8 +atmega8-8m: MCU_TARGET = atmega8 +atmega8-8m: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' +atmega8-8m: AVR_FREQ = 8000000L +atmega8-8m: LDSECTIONS = -Wl,--section-start=.text=0x1e00 -Wl,--section-start=.version=0x1ffe +atmega8-8m: $(PROGRAM)_atmega8-8m.hex +atmega8-8m: $(PROGRAM)_atmega8-8m.lst + +atmega8-8m_isp: atmega8-8m +atmega8-8m_isp: TARGET = atmega8-8m +atmega-8m8_isp: MCU_TARGET = atmega8 +# SPIEN, CKOPT, Bootsize=512B +atmega8-8m_isp: HFUSE = DC +# 2.7V brownout, Internal 8MHz osc (8MHz) +atmega8-8m_isp: LFUSE = 94 +atmega8-8m_isp: isp + +### + + # 1MHz clocked platforms # # These are capable of 9600 baud
sh omake atmega8-8m
optiboot_atmega8-8m.hex
が作成される。これは内蔵 8MHz クロックを使った ATMega8 用のブートローダ。cd ../../variants
ハードウェアの違いを設定するためのディレクトリ。cp -r standard RCduino
RCduino/pins_arduino.h
に以下のように追記。
--- ../standard/pins_arduino.h 2014-09-16 16:11:14.000000000 +0900 +++ pins_arduino.h 2014-12-28 22:50:40.000000000 +0900 @@ -131,6 +131,9 @@ (uint16_t) &PIND, }; +/* Modified for using PB6/PB7 as digital port 20/21 */ +/* Ref. http://morecatlab.akiba.coocan.jp/lab/index.php/aruino/rcduino/ */ +/* By Yoshitaka Kuwata */ const uint8_t PROGMEM digital_pin_to_port_PGM[] = { PD, /* 0 */ PD, @@ -152,6 +155,8 @@ PC, PC, PC, + PB, /* 20 */ + PB, /* 21 */ }; const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { @@ -175,6 +180,8 @@ _BV(3), _BV(4), _BV(5), + _BV(6), /* 20 port B */ + _BV(7), /* 21 port B */ }; const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { @@ -213,6 +220,8 @@ NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, + NOT_ON_TIMER, /* 20 */ + NOT_ON_TIMER, /* 21 */ }; #endif
cd ..
arduino ディレクトリに戻ります。boards.txt
に以下のように追記。
--- boards.orig.txt 2014-09-16 16:11:12.000000000 +0900 +++ boards.txt 2014-12-28 22:52:55.000000000 +0900 @@ -565,3 +565,21 @@ robotMotor.build.core=robot robotMotor.build.variant=robot_motor +############################################################## +# Ref. http://chum-up.blogspot.jp/2012/07/arduino-100-nanoboardag2.html +############################################################## +atmega8o8.name=[Optiboot] ATmega8 8MHz +atmega8o8.upload.protocol=arduino +atmega8o8.upload.maximum_size=7680 +atmega8o8.upload.speed=115200 +atmega8o8.bootloader.low_fuses=0x94 +atmega8o8.bootloader.high_fuses=0xDC +atmega8o8.bootloader.path=optiboot +atmega8o8.bootloader.file=optiboot_atmega8-8m.hex +atmega8o8.bootloader.unlock_bits=0x3F +atmega8o8.bootloader.lock_bits=0x0F +atmega8o8.build.mcu=atmega8 +atmega8o8.build.f_cpu=8000000L +atmega8o8.build.core=arduino +atmega8o8.build.variant=RCduino +##############################################################
- Prolific のウェブサイトから PL2303 Mac OS X ドライバをダウンロード、インストールする(URL は変わるかも知れませんので自力で探してください)。
- 超音波距離センサーを使ってみる ページにある「NewPing をなのぼ〜どの ATMega8 用に修正」したものをダウンロードしておく。
これで準備完了。実際にスケッチをアップロードする手順は、下の通り。
- ちっちゃいものくらぶさんの「最新ファームウェアの Arduino スケッチ」(
NanoBoardAGWithMotorTrio_diag_sonerm4.ino
) を上の Arduino IDE 1.0.6 で開く。 - 「スケッチ」→「ライブラリを使用」→「Add Library...」で、修正された
NewPing.zip
を追加しておく。 - なのぼ〜ど AG を USB ケーブルで接続する。
- 「マイコンボード」を "[Optiboot] ATMega8 8MHz"、「シリアルポート」を "/dev/tty.usbserial" にする。
- 「検証」、「マイコンボードに書き込む」。
実はここに至るまでに、エラーが出たり Arduino IDE が OS を巻き込んでフリーズしたり、いろいろありました。上の参考ページを全部読んでからやったのに、ですよ。ちょっと苦労することを想定して取りかかった方が、精神衛生上よろしいかと思います。(えっ、苦労したのは僕だけ?)
これでなのぼ〜どが「2系統のモータドライバ付き Arduino」というおいしい基板として使えるようになった(はず)。さあ、自律型マイコンカーへの応用がうまくいくかどうか。
24歳でプロ野球をクビになった男2014/12/26(金)
「24歳でプロ野球をクビになった男が見た真実」(東洋経済オンライン)。元ベイスターズ選手、高森勇旗氏の手記。以前にも紹介したが、この人の文章は実に味わい深い。高卒でプロ入りして、「24年間野球しかやってこなかった」と自称されているが、いったいいつ、どうやって、これほどの文章力を磨かれたのだろうか。まだ26歳、これからのこの人の仕事が本当に楽しみだ。
サンタさん降臨2014/12/25(木)
ヒメはコオロギ卓上木琴 ECO32。今日は朝から何時間も飽きずに叩いていた。2オクターブ半の音域があって、もちろん半音付きで、音もなかなかいい。おもちゃじゃなくてちゃんとした楽器なので、合奏にも使える。ちなみにサンタさんからのお手紙によれば、ヒメは今年でサービス終了らしい。もう6年生だもんな。坊はタミヤ 3ch RC ロボット製作セット。思っていたのと少し違うものが来たみたいだけど、サンタさん宛のお手紙がわかりにくかったんじゃないの? 友だちがレゴテクニック?の車を持っていて、そんな風なイメージを持っていたらしい。リモコンロボットキットも持ってるんだから、ギヤボックスを改造すれば爆走する車だって作れるんじゃないか。まだそこまでの技術はないかな。
ちっちゃいものくらぶ2014/12/22(月)
電子工作つながりで、久しぶりにちっちゃいものくらぶのページを覗いてみた。なんかいろいろ面白そうなものが増えているじゃありませんか! マイコンに直結して駆動できるギアモーターとか、1500円の自律型迷路抜けロボットカーとか。ロボットカーは Arduino 互換の「ちびでぃ〜の」が載っており、プログラムは ArduBlock で書かれている。最近の記事には、「フルカラーLEDテープでイルミネーションを作る」なんて坊が喜びそうなネタもある。ドライバIC内蔵のフルカラー LED で、マイコンの制御線一本で複数のフルカラーLEDをコントロールできるなんて、なんとすばらしい。全体的に、すごくいい感じ!
電子工作入門2014/12/21(日)
3年前に製作したクリスマスツリーの電飾は毎年ツリーに飾られているのだが、先日坊が「あれどうやって作ったの?」と聞いてきた。最近ロボット教室に行ったり(行かせたり?)「電子ブロック」に手を出したり(出させたり?)しているので、少しそういう方面にも興味が出てきたのかも知れない。とは言っても、あの電飾の作り方は簡単には説明できない。そもそも、電子工作の基本を知らないことには、説明しても理解できないだろう。
電子工作の入門として「電子ブロック」は悪くはないのだが、「うそ発見器」だけ製作して、あとは放置状態。正直言って、今の子供は、ラジオとかアンプにはあまり興味を持てないと思うんですよ。やっぱり視覚的に面白いものがいい。「武蔵野電波のブレッドボーダーズ」あたりのアプローチがちょうどいいんじゃないかな。
LED をいじるにしても、ハードウェアだけではできることが限られている。マイコンを使って制御するとしても、パソコンにつなぎっぱなしではあんまり面白みがない。Arduino のプログラミングはさすがにハードルが高いので、何かないかなと探してみたところ、ArduBlock というのがあるそうです。これだと、Scratch に似たブロックの組み合わせで Arduino のプログラミングができる。このへんを組み合わせたら、坊でもあのクリスマス電飾に似たものを自作できるんじゃないか?
小学校の先生が「Mac で ArduBlock を使えるようにした」というブログエントリを書いておられたので、メモしておく。この先生は、非常に熱心に教材研究をしておられて、頭が下がります。
大雪!2014/12/18(木)
いやーびっくりしました。朝起きたらいきなり 20 cm ぐらい積もってるんだもん。花壇や畑の霜対策をしなきゃな、と思っていたのだが、いきなり先を越されてしまった。リナリアとかデイジーとかカレンデュラとか、雪に埋もれてぺちゃんこになっていたが、復活するだろうか。全滅してたら悲しい…
ピアノ発表会と衆院選挙2014/12/14(日)
ヒメのピアノ発表会。ソロはドビュッシーの「子供の領分」より「グラドス・アド・パルナッスム博士」と「ゴリウォーグのケークウォーク」。いろいろ忙しくて練習がままならず、ベストの出来とは言いがたかった。曲自体もあまり好みではなかったようだし。まあそうは言っても、ちゃんと先生についている間にいろんな曲をさらっておいた方がいいとは思う。好みでない曲は自分では絶対弾かないからね。連弾は「チュニジアの夜」で、僕の方がヒメ以上に練習不足で、暗譜もかなり怪しくて途中止まるかも、と心配していたのだが、何とか形にはなった。
終了後、投票所に寄って衆院選挙。気分的に全然盛り上がらない選挙ですが、棄権はよろしくないので一票は投じてきた。投票率どれぐらいだったんだろうなあ。
諏訪内さんの病院コンサート2014/12/11(木)
本日の中日新聞夕刊のコラムで、諏訪内晶子さんとピエール・アモイヤルさんのヴァイオリンコンサートが名古屋の病院で開かれた、という紹介があった。それはすばらしいと思うけど、曲目がバッハのシャコンヌとプロコフィエフ、バルトーク…って入院患者さんにはしんどくないですか。聴衆にすごい集中力を要求する曲目じゃないですか。(何の曲をやったかは書かれてないけど、このメンバーの作品で気軽に聴ける曲なんてないでしょ?) もうちょっと場に合わせた選曲をした方がいいんじゃないかなあ、と思いました。
糸谷竜王誕生2014/12/06(土)
森内・糸谷の竜王戦、4勝1敗で糸谷が奪取。個性派のタイトルホルダーが誕生だ。これは来月の将棋世界が楽しみ。対局マナーがあまりよろしくないとのことで、アンチも多いようです。僕は棋士には美しい対局姿を見せて欲しいと思ってはいるけど、糸谷の破天荒な雰囲気も嫌いじゃない。アンチを沈黙させるような圧倒的な無双ぶりをぜひ見せて欲しいと思う。
偽ベートーヴェンのフルートソナタ2014/12/04(木)
いやいや、某サムラゴーチさんの話じゃなくて、ベートーヴェン作と伝えられてきたけど多分別人作、という(よくある)やつです。ヒメが友だちに伴奏を頼まれたそうで、ピアノパートを練習しているのだが、「なんか難しい!」とぼやいております。
うん、難しいというか、弾きにくいですね。10小節目、13〜15小節目の左手とか。この「まるで必然性のない弾きにくさ」がいかにも偽物っぽい。楽想そのものはなかなかおしゃれでいい感じなので、誰か翻案してまともな曲に仕上げてあげたらよかったんじゃないでしょうか。ランパル編の楽譜があるそうだけど、フルートパートは良くなってるだろうけどピアノパートはどうなのかな。
こんなことを書くとフルート吹きの人から反発を買いそうだけど、フルートのソロ曲のピアノパートってつまらんやつが多いんですよ。バッハのフルートソナタでも、ロ短調のチェンバロパートは弾いててほんとに楽しいのだが、ハ長調(偽作)なんて退屈きわまりない。他にも、フルート吹きの人が好む曲の伴奏を学生時代によくつきあったけど、つまらん曲が実に多かった。しかしながら、プロコフィエフのソナタとフォーレの幻想曲は別格だった。フォーレの伴奏を初見でインテンポでつきあって賞賛されたのはいい思い出です。