OTTOロボット再び

先日、一年ほど放置していたOTTOロボットを再び引っ張り出した。
(クリスマスが暇で…)

ホントはM5Stackで制御できないかと考えたんだけど、ESP32はServoのライブラリがない…わけじゃないけど、現状のには対応してないらしく、簡単には移植できそうになかった。
なので今回のところは素直にArduino Nanoを使う。

 

※余談だけど、別にライブラリはある。
 https://www.arduinolibraries.info/libraries/esp32-servo
すでに使ってる人もいたんで、いずれこれも実験したい。

 

以前OttoDIYの中でもLEDマトリクス付きのOttoPLUSを作ろうとして止まってたんだけど、一年以上経ってすっかり忘れたのでもう一度基本的なやつを3Dプリンタで出力し直した。
 https://github.com/OttoDIY/DIY/tree/master/3D%20print
さすがバージョン8までアップデートしてるだけあって、以前と比べてすごく組み立て易い。
3Dデータはオプションもダウンロードできる。今回は猫のお面を付けてみた。

 

自分が持ってるサーボモータは格安の怪しいSG90なので、できるだけ問題なさそうなのを選りすぐって、中央のポジションを確認してからArduinoに配線&ボディに組み込む。
Arduino IDEでサンプルスケッチをインストールして、動作確認もOK。


エラーが出なかったのは必要なライブラリまで全て揃ってくれてたおかげ。
現在はロボットの基本的な動きや音をOttoライブラリにまとめてある。
 https://github.com/OttoDIY/DIY/tree/master/libraries
インストールはマニュアル通りにmBlockを使っても大丈夫だった。
(多少問題もあったけど、別にまとめる予定)

 

以前は1〜2時間でロボットが作れるという触れ込みに「嘘付け!」と思ったけど、細かい点が改善されたおかげでパーツさえ揃えばホントに1時間で組み立てられると思う。
公式で売ってるものを買えばさらにきっちり作れるんだろうな。
未だにArduino Nanoを使ったガジェットなんてと思ってたけど、まだまだ遊べそうだ。

Sponsered Link

Arduino Nanoの書き込みエラー

かなり久々にArduino Nanoを引っ張り出してきたものの、ちょびっと引っかかった件をメモる。

 

その前にずっとM5Stackばかりいじってたので、ボードの選択を間違えててコンパイルできなかった。

すぐに気付いてボードにArduino Nanoを選択し、再度コンパイル。

その後本体にUSB接続して書き込もうとしたところ、何の呪いかエラーが出た。

 

エラー内容は
 avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
 avrdude: stk500_recv(): programmer is not responding

…を繰り返している。見たことないな、これ。

 

しかし検索するまでもなく、ツールのプロセッサの選択を見てすぐに気付いた。

プロセッサの選択肢が増えてる。

今まで「ATmega328P (Old Bootloader)」という選択肢はなかったので、これはArduino側がバージョンアップしたのだろうと思い、古いほうで書き込みしたところ、エラーが出なくなった。

 

これに付いては公式にも記載されている。NOTEのところ。

 https://www.arduino.cc/en/Guide/ArduinoNano

もうだいぶ前に更新されてたんだな。最近Arduino本体をいじることがなかったから、全然知らなかった。

日本語でもわかりやすく説明されているところがあった。こちらがおすすめ。

 http://www.umek.topaz.ne.jp/mameduino/tag/atmega328pold-bootloader/

 

で、プロセッサについてはすぐにわかったんだけど、なぜかUSBシリアルが増えてるのは未だに不明。

ちなみに接続してるPCはMac。

Arduino Nanoしか接続してないのに、シリアルポートの選択肢が増える。

とりあえず今までと同じ「/dev/cu.wchysbserial1430」を選択したら書き込めたので、問題ないんだけど気になる。

こっちは保留。

 

こまめに情報収集してないと、いろんなものがアップデートしてるのに気付かないんだよなあ。

新しく買ってまだ積んであるボードもたくさんだけど、冬休みにArduinoも見直してあげるとするか。

(問題は冬休みが超短いことだが…)

Sponsered Link

UbuntuにArduino IDE(1.8.7)インストール

いつの間にバージョンアップしてたんだろう、気付いてなかった。
(ずっとM5Stackに構ってたからかも)
すでに1.8.7。1.8.6は飛ばしたみたいだけど、まあいいや。
 https://www.arduino.cc/en/Main/Software

 

さっそくMac用のをダウンロードして、アプリケーションフォルダに入れる。
古いやつに上書きされておしまい。
Mac用は楽で助かる。

 

問題のLinux版。
今回はUbuntuのバージョンが上がり、Ubuntu 18.04上でのインストール。
元のArduino IDE 1.8.5は入ったまま。
たまにトラブルになるので、今度は慎重にあちこち調べてから挑んだ。
が、まだあまり情報がなかった。バグ的な情報もなかったので、今回は特に問題はないと思われる。
なので今回は普通に公式の
 https://www.arduino.cc/en/Guide/Linux
を参照すれば大丈夫…のはず。

 

とにかく古いバージョンをアンインストールしなくても、解凍後に./install.shでシェルを起動すればOK。
以前はoptフォルダに解凍後のフォルダを持っていったけど、ダウンロードフォルダのままでも大丈夫そうだ。
あとはよけいなことをせずに、

 $ cd arduino-1.8.7
 $ ./install.sh
 

で、インストール完了。

インストール後、デスクトップに書類のアイコンが出てくるんだけど(arduino-arduinoide.desktop)、これはダブルクリック後「信頼して起動」を選択すれば普通のアイコンになるらしい。
(前も出たのかどうか覚えがない…)
が、自分はデスクトップにあるのは邪魔なので、削除してしまった。

 

USBドライバとかその辺りの設定は前に一度やったので、今回は行わない。
今までで一番スムーズにできて一安心。
正直使っていても1.8.5との違いが良く解らないので不要かもだけど、問題ないならバージョンアップしておいてもいいかなという感じ。
次はWebエディタにでも挑戦してみようかな。

Sponsered Link

ArduinoのI2C関連メモ

Mongoose OSからちょっと離れるけど、せっかくなのでArduinoのI2Cについて調べていた。
OLEDのアドレスで引っかかってた件で気になった。
そういえばArduinoとかでOLEDを表示させる際のスケッチは、普段何気なくコピペしてたので深く考えることがなかった。
というわけで検索して発掘したURLを、自分用にだけどちょっとだけメモっておくことにする。

 

基本はArduinoでI2C通信を使うためのライブラリ、Wire.h。
これについては公式を見たほうがいいかな。
 https://www.arduino.cc/en/Reference/Wire

ちなみにMongoose OSでもArduinoの一般的なライブラリを使ってる。
(全部ではないらしいけど、標準的なのはカバーしてるっぽい)
そもそもスケッチの互換性が一応あるみたい。
当然書き込むボードはESP32とかESP8266になるけど。
ついでに調べてフォーラム見てみたけど、ちと微妙…かな。
 https://forum.mongoose-os.com/discussion/253/arduino-compatibility-is-awesome

 

横道にそれたけど、デバイスのアドレスとかで検索してたら、ArduinoのI2Cに絞ってまとめられてて解りやすいところ。
具体的な使い方。
 https://qiita.com/MergeCells/items/20c3c1a0adfb222a19cd
上記の説明が自分的には一番しっくりきた。
というか、参考になる別サイトへのリンクもあって正直もうここだけで充分じゃんと思った。
しかしやっぱり自力でスケッチを作成してみるのが一番勉強になるよなあ。

 

デバイスのI2Cのアドレス確認は、Arduinoの以下のスケッチで確認できる。
 http://playground.arduino.cc/Main/I2cScanner
接続するとシリアルモニタで確認できる。便利。
ソフトは書けないんでいつもコピペばかりだけど、できるなら自分もこういうシンプルなのを目指したい。

Sponsered Link

USBシリアル変換モジュール(ちょっとまとめ)

冬休みに買い漁って、届いたものにUSBシリアル変換モジュールがある。
こういうやつ。

これ、意外といくつあっても足りない。自分の場合、失くしやすいという原因もある。PC回りがブラックホール状態なんで。
それ以外にトラブルがあったときに差し替えてみたり、端子形状で使い分けたりというのがよくある。
接続する怪しいパチもんArduinoもどきやESPなんちゃらのシリーズのせい。

 

まずドライバの件。過去にちょくちょくメモった記事が潜ってきたので、自分用まとめ。
●必須なのはFDTIのドライバ。以前はMacに合わなくて苦労したけど、昨年バージョンアップされて現状、トラブルはない。
公式サイトはときどきチェックしてる。
 http://www.ftdichip.com/Drivers/VCP.htm

 

●あと怪しいArduinoご用達、CH34xのドライバ。
自分は以前gitからダウンロードしたものを入れてそのままだけど、新しいものもどっかにあるかも。
 https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver

 

●MacとIchigoJamを接続するのに使ったのはCP2102のドライバ。
公式のものは以下。
 https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
ちとバージョンが古い感じがするけど、これで問題なく使えてる。

だいたい上記三種類のドライバを入れておくと、格安ボードやモジュールでも認識してくれてる。自分の環境では。

 

それとモジュール本体の件。
あんまり必要ないと思ってたけど、3.3Vと5Vの切り替えがたま〜に必要だったので、先日届いたボードと一緒にジャンパーではなくスイッチで切り替えられるやつを買ってみた。

これはいい!と思ったんだけど、USB端子がminiなんだな…。でもAliExpressから安く買うと、そういうの多い。
…とか文句が多いが、こういう収集自体も結構楽しんでる。安いし。

Sponsered Link