Arduinoでマイクロマウス
Arduinoの開発環境でマイクロマウスを動かす教材を考え中.基板の外形も以前作ったH8バージョンの寸法と同じで自作できるように片面で 設計中.
Arduinoのピン数が少ないのでDIP-SWもLEDも減らし,OPAMPも 無くしたのに,なぜか片面で収めることがかなり厳しいです.
H8バージョンは結構試行錯誤したから,今度も同じ位時間がかかるかも...
![Arduino-mouse.JPG](https://cpu4edu.net/imageR/img9b5805c9zik5zj.jpeg)
-追記-
片面,ジャンパー3本でなんとかできました. 幅がちょっと厳しいところがありますが. 来週再確認して基板を自作して組み立ててみます.
![arduino-micormouse-brd.JPG](https://cpu4edu.net/imageR/img463d966czik8zj.jpeg)
基板作製
エッチング,穴あけまでは上手くできたのですが,友人にレジスト塗った方が 良いって言われたの思い出して,初めて塗ってみました.塗る前↓
![CIMG1406.JPG](https://cpu4edu.net/imageR/imgbaf4f44dzik3zj.jpeg)
塗った後に電極部分を削ったもの↓
![CIMG1407.JPG](https://cpu4edu.net/imageR/img16a6709ezikbzj.jpeg)
グリーンレジストは普通の塗料と違ってなかなか綺麗に塗れません. また,はがすのも結構大変です.カリカリと削る感じじゃなくて,薄くてやわらか い皮膜をそぎ落とす感じです.結構根気のいる作業でした.
穴あけは最後のほうがいいみたいです.でないと穴あけの際のバリが邪魔になって レジストをはがすのが結構大変になります.
ハンダがブリッジしない点はいいんでしょうが作業は大変.部品実装終わった後 に保護皮膜として塗るのがいいかも.
製作
昨日作った基板に部品を集めてはんだ付け.![CIMG1413.JPG](https://cpu4edu.net/imageR/img7bdc0308zik3zj.jpeg)
ボディに乗せてこんな感じになる予定.
![CIMG1416.JPG](https://cpu4edu.net/imageR/img7a22aedfzik0zj.jpeg)
USB-シリアル変換を使って書き込みます.こんな感じで書き込み動作まで 確認.
![CIMG1419.JPG](https://cpu4edu.net/imageR/img2cab763fzikfzj.jpeg)
USB-シリアル変換はスイッチサイエンスさんから購入したものです.
5V動作Arduino Pro/Pro Mini向け小型USB-シリアルアダプタ
http://www.switch-science.com/products/detail.php?product_id=342
ハード完成
Arduinoマイクロマウス,ハードが完成しました. 使ってるマイコンATmega328PにArduinoのブートローダーが 乗ってますので,Arduinoの開発環境が使用できます.斜めから↓
![CIMG1424.JPG](https://cpu4edu.net/imageR/img01d516a0zik2zj.jpeg)
上から↓
![CIMG1429.JPG](https://cpu4edu.net/imageR/imgbb52f02czikczj.jpeg)
センサの値を読むには,シリアル通信でPCに値を表示させます.
![CIMG1422.JPG](https://cpu4edu.net/imageR/imgdceaa7fezik3zj.jpeg)
赤はリセット,
黄色いスイッチを使ってモード切替をして,
緑でスタート. (信号機を意識した配色)
Arduinoマイクロマウス,右90度ターンの動画
後は,センサやステップ数やしきい値の調整をして,H8から移植したプログラム のバグ取りをしたら完成.
ソフトが完成
最初は,原因不明の暴走が起こり,どうやら割込みを使ったモータの回転時の 空ループなどでArduinoのコンパイラが勝手に最適化して動作不具合が 生じてことが分かり,delay(1)を空ループ内に入れたら以前のH8版とほ とんど同じで動きました.主な変更点は、上記の通り,空ループにdelay(1)を追加,
初期設定をsetup()に移動,
main()内のループを,loop()に移動,
H8のTimerA割込みをMStimer2()に変更,
入出力をArduinoに合わせて書き換え,アナログ入力が簡単に書けました.
壁との距離の調整がもう少しですが,3×3迷路の探索と最短の動画をあげます.
Arduinoマイクロマウスの動画.
-追記-
以下のURLで書かれてることからも,Arduinoのコンパイラの最適化 オプションを何とかしようとするより,delay(1)を入れることで問題解決 したので,これでよしとします.
http://d.hatena.ne.jp/studio_k/20100306/1267865563
- 追記2 -
検索したら既知の問題のようで,割込み内で使う変数をvolatileで 定義しておけば良いことが分かりませいた. volatileで定義しないして,delay(1)は消して,本当に完成!
広告↓
![](http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F7898%2F78981850.jpg%3F_ex%3D128x128&m=http%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F7898%2F78981850.jpg%3F_ex%3D64x64)
電脳Arduinoでちょっと未来を作る
![](http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F8731%2F87311398.jpg%3F_ex%3D128x128&m=http%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F8731%2F87311398.jpg%3F_ex%3D64x64)
Arduinoをはじめよう
![](http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fauc-partsland%2Fcabinet%2F01375514%2Fimg56557679.jpg%3F_ex%3D128x128&m=http%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fauc-partsland%2Fcabinet%2F01375514%2Fimg56557679.jpg%3F_ex%3D64x64)
サンハヤト【GR-S304】ハンダマスキング剤グリーンレジスト 290ml
![]() ESP32 Wifi Bluetooth開発ボード |
![]() Arduino Nano Every |
![]() Raspberry Pi pico |
![]() FPGA XILINX Artix-7 |