ロボットには35ドルと2日間の休暇が必要でしたが、彼の最初の動きから得られた喜びにはさらに多くの費用がかかりました。 興味があれば-カットをお願いします(たくさんの写真)。
買い物リスト
- 段ボールはロボットの主要な材料です。 多くの家には機器の箱が横たわっていると思います-私たちはそれらを必要とします
- Arduino-私たちのロボットの頭脳になります。 私の指先には、Arduino Unoの中国のクローンだけがありました。 約20ドルの配送価格。
- 超音波距離計HC-SR04。 価格は4ドル前後で変動します。
- 3つのマイクロサーボ(誰かが探している場合は「9g」とラベル付けされています)。 価格は約3.5ドルです。
- (オプション)はんだ付けおよびはんだ付けアクセサリ用のブレッドボード。 単純にすべてをワイヤで接続することでこのアイテムなしで行うことはかなり可能ですが、すべてが少なくとも信頼性のヒントを得るには、はんだ付けする必要があります。
- 粘着テープ、接着剤、はさみ、ペーパーナイフ、シンプルな鉛筆、定規。
実際、上記のすべてがあなたの手の届くところにあるとき、あなたは組み立てを始めることができます。
ロボットの本体を作りましょう
まず、カバーのない段ボール箱を空にします。 主なものは、Arduinoがボックスの底部に配置されていることです。 私のベースは、両側に約5 mmのマージンがありました。これらは、必要に応じて、操作の許容範囲です。
あなたの人生を簡素化し、段ボールを平らな線に沿って曲げるために、将来の曲げの場所でカットを行う必要があります。 主なものは、一片を切ることではありません。 たとえこれが起こっても、特に心配する必要はありませんが、粘着テープは私たちを救います。
ロボットの裏側がどこにあるかを判断し、この側のArduinoポートの開口部(電源用とUSB用)をカットする必要があります。 穴を開けないために、ボード自体を取り付けて鉛筆でマーキングすることをお勧めします。 すべての穴は、実際の寸法よりもわずかに小さくする必要があります-取り付け中に、段ボールはもう少し折りたたまれ、これにより部品をしっかりと固定できます。
さらに、ハンドサーボ用の穴を開けて、Arduinoのリセットボタンにアクセスできるようにします。
ワークピースを接着する価値はありません。後で何かを取り付けるのは困難です。 最後にそのままにしておく方が良いでしょう。
これで、タスクはさらに簡単になりました-カバーを作成します。 ここでの主なことは、サイズを把握することです。 壁の幅が追加されているため、カバーはベースよりわずかに大きくなります。 蓋には、サーボ用の穴を開けて、前端に移動します。 また、カバーの背面に近い小さな穴を作成します-ワイヤーを敷設するのに便利です(写真では、サーボドライブ用の穴のみが作成されています)。 強度を与えるために、蓋の角に紙テープを貼り付けました。
推奨事項:サーボ用のすべての開口部は、最適に補強されています。 これは、ボックスの内側に、サーボドライブ用のスロットを備えた追加のボール紙インサートを接着することで実行できます。 このようなインサートは3つだけで、非常に簡単に作成できますが、これにより構造がさらに強化され、段ボールを破ることなくサーボドライブをネジに固定できるようになります。
手
私たちの手は単なる長方形の箱になります。 段ボールを準備してカットします。
必要な形に接着してください。
サーボに手を固定するために、スイングの1つ(含まれている)が段ボールの長方形にownれ、ナイフの入ったロッカーの形状を事前にカットしました。
このデザインを紙テープでテープに貼りました。 それは薄っぺらなままですが、そのタスクに対処します。 手自体は落ちません。
再び手を組み立てるためのすべてのステップを繰り返し、マウントを手自身に接着します。 指も追加しました-これはロボットに魅力を与えます。
頭全体
ヘッドは、超音波センサー用の穴のある単なる箱になります。 過去の要素に手を加えたことは、簡単かつ単純に進んでいます。 主なことは、(センサーの下のスロットの反対側の)後壁を接着することではありません-自由に開く必要があります。 このまさに壁を保持する舌用の上部のスロット。
別の角度からの頭の眺め。
さらに、後壁に穴を開ける必要があります。ベースカバーにも同じことを行いました。 この穴に、センサーからのワイヤを通します。 裏表紙の一番上まで、一片の段ボールを接着する必要があります-それは一種のロックとして機能します。
その後、サポートされているワイヤを使用してセンサー自体をインストールします。 これにはカラーループを使用します。 頭は完成した外観を取り始めます。
再び、反対側からの外観。
ヘッドをサーボドライブに固定するために、手で行ったのとまったく同じことを行います-別の段ボールの別のロッカーの下に凹部を切り取り(ベース領域よりわずかに小さい)、ロッキングテープをテープで密封します。 結果の要素は、下から頭に接着されます。
写真を撮るのを忘れましたが、何をする必要があるかがはっきりしていることを願っています。 前に接着した舌の上で頭を閉じ、箱の上部のスロットに挿入します。
すべてをまとめる
ベースのカバーにサーボドライブを取り付け、付属の2本のネジで固定します。
ロボットが前方を見て頭を回すことができるように、頭を取り付ける前に、サーボの2つの極端な位置の中間を見つけることをお勧めします。 これは、残りのロッカーで行うことができます。 サーボ軸は中間位置に設定する必要があります。 結果のベースに頭を設定します。
自分の好奇心を温めるために、ベースに頭を付けて蓋を取り付けることができます。 その後、削除する必要がありますが、関心は関心です。
底部で、前壁と側面を接着します。 次に、ベースの壁にサーボを挿入して、軸がボックスの中心近くにオフセットされるようにします。
ロボットの後ろから見ると、写真はおよそ次のようになります。 ところで、ここで、サーボ用の段ボールの挿入物をはっきりと見ることができます。
すべてがどのように見えるかを確認し、同時に作業の将来を評価するには、蓋をして、手を取り付けて、両側のロボットをもう一度見てください。
おなじみの写真? はい、実際に彼から投稿を始めました。 はい、ロボットはまだ準備ができていませんが、どのように見えるかはすでに明らかです。 反対側からの眺め。
脳に関する章、またはコントローラーの準備と挿入。
これらすべてが機能するためには、これらすべてを何らかの形でArduinoに接続する必要があることは明らかです。 私はセンサーシールドを持っていないので、手元にある手段から抜け出す必要がありました。 そこで、次のスキームが生まれました。
非常に失礼な場合、それは一種の倒錯したArduinoシールドと呼ぶことができます-それはコントローラに直接挿入されるためです。 しかし、どういうわけか私の言語はあえて盾と呼ぶことはせず、単なる図表にしましょう。
主なアイデアは、Arduinoの+ 5V出力からサーボとセンサーを接続することにより、サーボとセンサーを接続しやすくすることです。 これにより、コンピューターのUSBポートからでもロボットが動作できるようになります。 反対に、それはさらに悪く見えます。
コントローラーにインストールします。
ご覧のとおり、8日から13日までのポートは引き続き使用できるため、将来使用することができます。 もちろん、すべてのポートの拡張を行いますが、2つのArduinoブロック間の非標準のステップのため、ブレッドボードでこれを行うことはできません。
インストールはもうすぐ終わります。 サーボとセンサーをボードに接続します。
これは特に重要ではなく、別の方法で接続することもできますが、個人的には次のポートとモジュールの対応があります。
- 2-右手のサーボドライブ。
- 3-左手のサーボドライブ。
- 4-サーボヘッド;
- 6-エコー距離センサー、7-トリガー。
Arduinoをすべてのワイヤでベースのボックスに押し込み、このボックスの背面カバーを密閉します。 接着剤が乾いた後、Arduinoを押して、ポートがそのために作られた穴に落ちるようにします。
喜ぶだけです-アセンブリは完全に完了します。
ソフトウェア部
すべてのメカニズムの操作性を確認するために、ファームウェアをロボットに書き込みます。
#include <Servo.h> #include <Ultrasonic.h> #define RIGHT_HAND_PIN 2 #define LEFT_HAND_PIN 3 #define HEAD_PIN 4 #define TRIGGER_PIN 7 #define ECHO_PIN 6 Servo rightHand; Servo leftHand; Servo head; Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN); void setup() { Serial.begin(9600); rightHand.attach(RIGHT_HAND_PIN); leftHand.attach(LEFT_HAND_PIN); head.attach(HEAD_PIN); } void loop() { head.write(90); delay(1000); float cmMsec; long microsec = ultrasonic.timing(); cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM); Serial.print("CM: "); Serial.println(cmMsec); head.write(135); delay(1000); head.write(45); delay(1000); head.write(90); leftHand.write(0); rightHand.write(0); delay(500); leftHand.write(180); rightHand.write(180); delay(500); }
コントローラーにフラッシュした後、ロボットは生き返ります。 はい、通常のUSBポートで十分です-その中のサーボはそれほど消費せず、距離センサーは、仕様を信じているなら、もう少しLEDを消費します。 ビデオで何が起こったのか見てみましょう。 事前に謝罪しますが、ビデオについてはファームウェアを少し変更して、少し見栄えを良くしました。 私がしたことは、いくつかの手の動きを追加することだけでした。 ただし、上記のファームウェアは、ロボットの操作性を確認するのに非常に適しており、ナンセンスでますます散らかっていません。
現時点では、コンソールで次のように表示されます。
結論と計画
さて、私が伝えたかったのはそれだけです。 将来的には、このロボットをわずかに改良し、おそらくいくつかのセンサー(光と温度など)を挿入して実際に棚に置くことを計画しています。これはまだ私の最初のロボットです。 ご清聴ありがとうございました。