ついに、四足歩行ロボットを作ります。
楽しみです。今回は以前にお話ししたとおり、Aruduino Nanoを使って、四足歩行ロボットを作りたいと思います。ネットを見ていた時に思いました。
まあまあカッコよく、歩く理論も必要で比較的簡単に作れるという、四足歩行ロボットを作ろう!作ってみたいと思いました。最近では、四足歩行ロボットを作っているサイトも多いので参考にするのにも環境がよさそうということもあり、これに挑戦してみます。
こんなユルい感じですが、その中に、「何かオモロいこと」を混ぜていきたいと思っています。お楽しみに。では! 。
1.やっぱり、最初は動画。
これはスゴイ!の一言です。
・・というより、下のような感じの四足歩行ロボットを参考に作ってみようと思います。出来たら、カッコいいですよね。
フレーム部分は購入できるそうです。
https://make.dmm.com/item/946551/
<目標のスペック>
●四足で歩く。(駆動モーターは8個)
●電源は電池で、ワイヤレス。
●超音波センサーで障害物があれば、一定のアルゴリズムで避けて前進。
●何かを目指して歩くようにしたい。(センサー類をまだ、決めていない)
出来てから、追加で考えよう。←イイネ!(笑)
2.必要な部品
四足歩行ロボットを作って行きますが、今回は頭脳部分になるマイコン基板をロボットに搭載して、ケーブルレスで動かしたいので、マイコン基板を前回使用したArduino Uno R3より軽くて小さいArduino Nanoを使って動かします。但し、サーボモーターを制御するための信号を出すアウトプットピンの本数が6本しかないので、モータードライバー(拡張シールド)を追加します。今回のドライバは16CH(モーターを16個接続可能)にします。
Arduino Nanoは、基板のサイズで43.2×17.8mmでUnoと比べると下の写真のようになります。(右側がNano) 仕様については、もとの製造元がイタリアのArduino SRL社のArduino Nanoなのですが、互換品のスイッチサイエンス社のページの方が分かりやすいです。
・参考までに、回路図とピン配列です。←クリックするとジャンプします。後ほど出て来る、I2C通信では、NanoのA4ピン:SDA、A5ピン:SCLを使います。
・もし互換品でさらに古いタイプの基板を使う場合の注意は、
①ブートローダーの搭載が有る無しがあるので、パソコンとの接続設定でプロセッサ選択に注意が必要です。
②USB通信に使われているUSBシリアル変換用ICとして、正規品はFTDI社FT232RLですが、互換品では、CH340Gなどが使われていることが多いです。場合によっては、パソコンに繋いでも認識されないことがあり、その場合はドライバーのダウンロードとインストールが必要になります。スイッチサイエンス社のページをヒントにしてみて下さい。Windows10にはCH用のドライバがあるという情報もあり、私の場合も特にダウンロードせず、認識されました。
前置きが長くなりましたが、必要な部品をリストアップします。
品名 | 型名(製造元) | 個数 | |
1 | マイコン基板 | Arduino Uno Rev3 ATmega328 マイ コンボード A000066 | 1 |
2 | モータードライバー | PCA9685搭載16チャネル PW M/サーボ ドライバー ←個数注意 | 1 |
3 | サーボモーター | デジタル・マイクロサーボ SG90←個数注意 | 8 |
4 | 接続電線他 | 接続電線、USBケーブル、バルサ材、針金など | 1式 |
3.Arduino Nano を使ってみる~Lチカ~
四足歩行ロボットを作っていきますが、まずは、シングルボードのマイコンおなじみのLチカをやってみます。Arduinoのスケッチ(プログラムのこと)を使って、Arduino Nanoが動作出来ているかの確認も含めてLEDを光らせてみます。
<接続図>
<スケッチ>
一部だけですが、これの繰り返しです。
<動画>
何かを表してますが、分かりますよね♬
4.次はサーボモータを1台だけ。
サーボモーターのライブラリをつかって、まず、1台だけ動かしてみます。
<接続図>
9番ピン(D9)から、サーボモーターの回転角を決める制御パルスを出します(PWD)。サーボモーターの配線色は、茶 :GND、赤 :5V、PWM :オレンジです。
<スケッチ>
<動画>
左右のフェイントです。
【 コラム :USBのドライバーインストール】
USBデバイスをパソコンに接続するとプラグアンドプレイでドライバーが勝手にインストールされることがあります。
それは、デバイスが自分のカテゴリー(デバイスクラス)の情報を持っていることによります。ちつまり、WindowsなどのOSも持っているカテゴリーに対する情報が先ほどのデバイスのカテゴリーに対する情報に対応していれば、内部的に持っている標準のドライバーでそのデバイスを自分でインストールして使えるようにします。
5.I2C通信でつないで、サーボモーターを動かす
今回、少し長くなったので、詳しいI2Cの接続事例や具体的な説明は次回にします。予告編も兼ねて、サーボモーターをI2C通信で繋いで動かす動画を紹介します。通信で繋いだ状態で、違う動きが出来るようにしています。
<動画>
6.I2C通信の説明
最後に、I2C通信の説明をします。
<I2C通信とは>
I2C通信とはデバイス同士(今回で言うと、Nano :マスタ とモータードライバー :スレーブ)を接続し、同期を取りながら通信するシリアル通信の一つです。I2C通信の信号線は2本のみでよく、それですべてのデータの送受信を行います。そのため、他の通信(例えばSPI通信)に比べて信号線が少なくてすみます。
<信号線>
I2C通信は以下の2つの信号線を使って通信を行います。
①SDA(データ信号用)
②SCL(クロック信号用):マスター側がSCLをスレーブに出力し通信を行います。
あと、下の項目を見て頂ければなんとなく見えてくると思います。
・接続のしくみ
パーティーライン接続、プルアップ要、マスター/スレーブ
・データ転送のしくみ
通信のタイミング(マスター/スレーブ間、SCL/SDAの関係、データの送信と受信)
・通信フォーマット
・通信レジスタ
<参考>
I2C通信の使い方
今回は導入編で、基本的なところが多かったですね。次回、ロボットを動かしていきます。そのまた初めの四つ足で進む原理とかI2Cの具体的なところなども紹介していきます。
昔、実はFORTRANを少しやっていましたが、そのころはまだ、通信というものが無く、実際、通信はあまり詳しくないのですが、これをきっかけに勉強しているところです。私にとって通信は不思議です。インターネットも世界中に一瞬で届いてしまう。光の速度からいうとそうなんかな?と思いながら。???マークです。
こんな感じですが、よかったらまた遊びに来てください。アップデートしていく自信はあるので、少しづつ進化していきます。AI、IoT、Tecnogy、You Can Do It! です。つづく