前文
ロボットを作るという考えは長い間ありましたが、十分な時間と知識がありませんでした。
そして、時間の経過とともに、私はさまざまな記事を読み、インスピレーションを受けて去っていきました。 それから私は表面的にマイクロエレクトロニクスとは何かを想像し、少しプログラミングすることができ、この知識で十分であると判断しました。
アイデアは、多かれ少なかれコンパクトなロボットを組み立てることでしたが、かなり手頃で機能的です。 特定のプラットフォームに接続したり、クジラキットを収集したりしたくなかったので、部品を個別に注文し、手元の手段を最大限に活用することにしました。
部品の選択
最初は、ロボットの「脳」を選択し始めました。 レゴマインドストームは私にとって非常に魅力的なようでした。必要な部品から任意のシャーシを組み立てることができたという事実に惹かれました。 しかし、既成のデザイナーは必要ありませんでした。配線を接続して準備はできていましたが、自分でマイクロコントローラーをはんだ付け、プログラミング、研究しました。レゴキットは高価です。 したがって、選択はArduinoファミリーに委ねられました。 そして、それほど高価ではなく、プログラムすることができます。 Arduino Unoを取ることを勧められましたが、コンパクトに行うことにしたので、Arduino Nanoを取ることにしました。
シャーシを選択し始めたとき、私は突然、クローゼットのどこかでLEGO SpyBoticsがほこりを集めていたことを思い出しました。これはマインドストームの先祖のようなものです。

すぐにナイフの下で、私の場合ははんだごての下でそれを与えることが決定されました。
小型、2つのモーター、追跡型シャーシ-これらはすべて私のニーズに最適です。 さらに、このモデルは長い間稼働していませんでした。データケーブルは完全に失われ、このモデルのプログラミングは地獄のような作業でした。
ボードからモーターを取り外し、そのままにして、ボード自体をキャビネットに戻すことにしましたが、さらに実験するために、さまざまなセンサーをドロップすることもできます。
それで、基本的な詳細が整理されたので、今は残りです。 そして、私はあなたが一般的にスペアパーツを選択して購入できる場所を探し始めました。 私は中国から物を注文する少女を見つけました。彼女は購入を手伝うことを約束し、o宝網へのリンクを与えて、配送料を安くするために1人の売り手から部品を買うように勧めました。 数日間の分析の後、サプライヤーを決定し、注文しました。
そして、1か月待った後、ついに荷物が到着しました。

内容:
1)Arduino Nano V3.0 ATMEGA328P

2)モータードライバーL298
モーター制御モジュールを選択したとき、特にNano- Feedback Controlアドオンの興味深いオプションに出会いました
しかし、中国ではこのモデルを見つけられなかったため、通常のモデルを注文しました。

3)Bluetooth HC-05

このモジュールを通じて、PCと通信します。 将来的には、Android用のコントロールを作成する予定です。
4)LM2577 DC-DC調整可能ステップアップ電力

SpyBoticsシャーシには3本の単三電池のみのデッキがあり、十分な電力があるかどうかわからなかったため、念のためこの電圧コンバーターを注文することにしました。
さて、プラスささいなこと:回路基板とさまざまな配線。
私はダイオード、抵抗、その他のささいなものを注文しませんでした。古いボードから削除できると判断しました。
ロボット組立
さまざまなオプションを試して、段階的にアセンブリを行うことにしました。
大まかな計画はこれでした:
1)モータードライバーをArduinoに接続します。実際にはモーター自体を接続します。
2)頭脳をシャーシにねじ込み、バッテリーを取り付けます。
3)リモコンをロボットにねじ込みます。
そして、ロボットの近代化があり、可能な限り自律的にしようとします。
主要部品が届く数日前に、私は古い脳からモーターを外し、システム全体がどのように取り付けられるかを考え出しました。

ボードはケースにしっかりと固定されているため、これはそれほど単純ではないことがわかりました。
そして、ここで最初の驚きは、モーターがボードに取り付けられていることです。 そのため、さらに便利なように、それらを接着して配線接点にはんだ付けしました。

シャーシ自体については、これまでのところ、あまり実験をせず、標準スキームに従って組み立てることに決めました。

ロボットから部品を簡単に取り外せるように、回路を柔軟にしようとしました。 詳細をLEGOに添付する方法を理解する必要がありました。 見た目よりも簡単であることがわかりました。 最初は、手首を軽く振ってエンジンドライバーを取り上げ、それをLEGOパーツに取り付けました。 確かに、古い建物を少し近代化する必要があり、とても興味深い構図を得ました。

問題なくロボットのシャーシに取り付けられます。

次に、bluetoothモジュールとarduinoを取り上げました。 Bluetoothモジュールを部品の1つに接着して、どこにでも簡単に取り付けられるようにしました。 そして、arduinoの場合、コネクタを使用することを決定し、LEGO部品の1つに接着し、必要なワイヤをそれにはんだ付けしました。

arduinoを接続するには、コネクタにプラグを差し込み、電源コネクタを接続します。
ロボットプログラミング
最後に、組み立てられた回路を接続し、モーターを回転させます。
ロボット自体でテストするのは不便であることが判明したため、ブレッドボード用に回路全体を再構築してテストする必要がありました。 将来のために、私は常にブレッドボードから始めることに注意しました。

テストには、Bluetoothが搭載されているため、スマートフォンが使用されました。 インターネットで調べてみると、面白いプログラムがいくつか見つかりました。 Blue Arduinoは私にとって非常に快適に思えました。 これ以上、arduinoとの通信用の通常の端末。 Arduino Bluetooth Controllerプログラムにも興味がありました。制御インターフェースがジョイスティックの形で表示され、任意のコマンドを任意の制御要素にすばやく割り当てることができるので便利です。 すでに組み立てられているロボットをテストするには、非常に便利です。
Arduinoのプログラミングには、公式サイトの標準パッケージを使用しました。 最も単純なプログラムは、テストケースから取られたもので、テストするためのものです。
char incomingByte; // void setup() { Serial.begin(9600); // Serial.println("Robot online..."); } void loop() { if (Serial.available() > 0) // { incomingByte = Serial.read(); // if(incomingByte == 'w') // w, { digitalWrite(DR, HIGH); digitalWrite(DL, HIGH); digitalWrite(MR, LOW); digitalWrite(ML, LOW); Serial.println("Forward"); } if(incomingByte == 's') // s, { digitalWrite(DR, LOW); digitalWrite(DL, LOW); digitalWrite(MR, HIGH); digitalWrite(ML, HIGH); Serial.println("Backward"); } if(incomingByte == 'a') // a, { digitalWrite(DR, HIGH); digitalWrite(DL, LOW); digitalWrite(MR, LOW); digitalWrite(ML, HIGH); Serial.println("Left"); } if(incomingByte == 'd') // d, { digitalWrite(DR, LOW); digitalWrite(DL, HIGH); digitalWrite(MR, HIGH); digitalWrite(ML, LOW); Serial.println("Right"); } if(incomingByte == 'f') // f, { digitalWrite(DR, LOW); digitalWrite(DL, LOW); digitalWrite(MR, LOW); digitalWrite(ML, LOW); Serial.println("Stop"); } } }
そして、ここに問題があります
最初に、Bluetoothモジュールが接続されているとき、ファームウェアがフラッディングしないという事実に出会いました。 しかし、これはbluetoothからの電源コードがarduinoから簡単に切断されるという事実によって決定されました。
最大の問題は、適切な電源であることが判明しました。
最初は、長い間電源スキームを決定できませんでした。 インターネットで、脳とエンジンドライバーの2つの別々のソースを持つ回路を見つけました。 私はすぐにそれを拒否し、さまざまな方法をテストし始めました。

Arduinoとエンジンドライバーの両方を介して回路全体に電力を供給することが可能であることが判明しました。

最初の回路では、Vin入力でArduinoに電圧を印加し、エンジンドライバーに5Vを通過させましたが、この方法ではエンジンに十分な電圧がありませんでした。

私の2番目の回路はエンジンドライバーを直接供給し、すでにarduinoを供給しました。このスキームでは、エンジンはうまく回転していましたが、脳は鈍り始めました。 プログラムサイクルは正常に動作しなくなりました。

その結果、私は同時に電源を投入し、すべてが正常に機能し始めました。
テスト段階では、USBワイヤを使用していたため、すべてが正常でした。 無駄に、私は最初に3つの単三電池のデッキに出くわしました。

コンバーターを使用しても、3つのバッテリーではロボットを動かすことができませんでした。 その結果、コンバータは回路から削除されました。 買い物中、私は素晴らしい単三サイズのリチウムイオン(li-ion)バッテリーを見つけました。

完全に適合します(電圧3.7V)。 これらのバッテリーの最初のテスト中に、私のロボットは大きな速度で壁に突入しました。それを止める時間はありませんでした。 3つのバッテリーが多すぎました。 結局、私は2つのバッテリーだけを残しました。
これらのバッテリーを充電するために、次のモジュールが購入されました。

おわりに
そのようなロボットのモデルが判明しました。

その後、シャーシは非常に不器用な痙攣、またはむしろ後ろ足で立って運転したため、再構築する必要がありました。

私が望んでいたように、結果のモデルは非常にコンパクトです。 通過性はまだ確認していません。メインモデルは柔軟性があります。必要に応じて、arduinoボード自体を簡単に取り外して、他のプロジェクトで使用できます。 また、デバッグのためにUSBアクセスを自由に利用できます。
確かに、私のモデルは非常に荒く回転し、トラックは回転しています。シャーシを再構築するために、もう一度試す必要があります。
その結果、プログラミングでまったく逸脱せず、アセンブリ自体により多くの時間を費やしたことがわかりましたが、将来的にはそれを補うと思います。 最初に、さまざまなモジュールを最大限にテストし、それらがどのように機能し、何ができるかをテストしてから、システムを自律的にします。
ご清聴ありがとうございました! 次の記事では、超音波距離計や太陽電池など、ロボットへの追加ユニットの接続について説明します。
UPD
ご希望の方のリクエストに応じて、ロボットをテストするビデオを追加します。