Arduinoで初めおのロボットロボット「ハンタヌ」䜜成䜓隓

もしもし

この蚘事では、Arduino を䜿甚しお最初のロボットを組み立おるプロセスに぀いお説明したいず思いたす。 この資料は、私のような「自走カヌト」を䜜りたいず思っおいる初心者にずっおも圹立぀でしょう。 この蚘事は、さたざたなニュアンスに぀いお私が远加した䜜業の段階を説明したものです。 最終コヌド (最も理想的ではない可胜性が高い) ぞのリンクは、蚘事の最埌に蚘茉されおいたす。

Arduinoで初めおのロボットロボット「ハンタヌ」䜜成䜓隓

可胜な限り、息子8歳も参加させたした。 正確に䜕が機胜し、䜕が機胜しなかったのか - 蚘事の䞀郚をこれに捧げたした。おそらく誰かの圹に立぀でしょう。

ロボットの抂芁

たず、ロボット自䜓に぀いお少し説明したす (アむデア。 最初から暙準的なものを組み立おたくはありたせんでした。 同時に、シャヌシ、゚ンゞン、超音波センサヌ、ラむンセンサヌ、LED、ツむヌタヌなどのコンポヌネントのセットは非垞に暙準的でした。 圓初、瞄匵りを守るこの「スヌプセット」からロボットが発明されたした。 圌はサヌクルラむンを越えた違反者に向かっお運転し、その埌センタヌに戻りたす。 ただし、このバヌゞョンでは、線を匕く必芁があり、さらに垞に円内に留たるように远加の蚈算が必芁でした。

そこで、考えた結果、少し発想を倉えお「ハンタヌ」ロボットを䜜るこずにしたした。 開始時に、近くのタヌゲット (人) を遞択しお、軞を䞭心に回転したす。 「獲物」を発芋するず、「ハンタヌ」は点滅ラむトずサむレンを点灯し、それに向かっお走り始めたす。 人が遠ざかる/逃げるず、ロボットは新たなタヌゲットを遞択しお远跡するなどの動䜜を行いたす。 このようなロボットは限られた範囲を必芁ずせず、オヌプン゚リアで䜜業できたす。

ご芧のずおり、これは远い぀きゲヌムによく䌌おいたす。 最終的にはロボットは十分な速さは埗られたせんでしたが、呚囲の人々ず誠実に察話したす。 特に子䟛たちはこれを奜みたすただし、時々螏み぀けられそうになっおドキドキしおしたうこずもありたす 。 これはテクニカルデザむンを普及させるための良い解決策だず思いたす。

ロボットの構造

アむデアは決たりたしたので、次に進みたしょう レむアりト。 芁玠のリストは、ロボットが実行できる必芁があるこずから圢成されたす。 ここでの内容はすべお非垞に明癜なので、すぐに番号を芋おみたしょう。

Arduinoで初めおのロボットロボット「ハンタヌ」䜜成䜓隓

ロボットの「頭脳」は Arduino uno ボヌド (1) です。 䞭囜から泚文したセットに入っおいたした。 私たちの目的にずっおは、これで十分です (䜿甚するピンの数に泚目したす)。 同じキットから既補のシャヌシ (2) を取り出し、その䞊に 3 ぀の駆動茪 (4) ず 5 ぀の埌茪 (自由回転) (04) が取り付けられおいたす。 キットには既補のバッテリヌコンパヌトメント (6) も含たれおいたす。 ロボットの前方には超音波センサヌHC-SR2987、埌方にはモヌタヌドラむバヌL8N9、䞭倮にはLEDフラッシャヌXNUMX、そしお少しだけ偎面にはツむヌタヌ (XNUMX) がありたす。

レむアりト段階では次のこずを確認したす。

- すべおが収たるように
- バランスをずるこず
- 合理的に配眮される

䞭囜人の同僚がすでにこれを郚分的にやっおくれおいたす。 そのため、重いバッテリヌ収玍郚が䞭倮に配眮され、駆動茪はそのほが䞋に配眮されたす。 他のボヌドはすべお軜量なので、倖呚に配眮できたす。

ニュアンス

  1. キットのシャヌシには工堎出荷時の穎がたくさんありたすが、そこにどのようなロゞックがあるのか​​はただわかりたせん。 ゚ンゞンずバッテリヌパックは問題なく固定され、基板を固定するために新しい穎を開けるこずから「調敎」が始たりたした。
  2. 保管堎所にある真鍮のラックやその他の留め具がずおも圹に立ちたした時々、それらを取り出さなければならないこずがありたした。
  3. 各ボヌドのバスバヌをクランプに通したしたこれも保管庫で芋぀けたした。 非垞に䟿利で、すべおのワむダヌがきれいに配眮され、垂れ䞋がるこずはありたせん。

個々のブロック

今、私は通り抜けたす ブロック それぞれに぀いお個別に説明したす。

バッテリヌコンパヌトメント

ロボットには優れた゚ネルギヌ源が必芁であるこずは明らかです。 オプションは異なる堎合がありたすが、私は単䞉電池 4 本のオプションを遞択したした。 合蚈で玄 5 V が埗られ、この電圧は Arduino ボヌドの 5V ピンに盎接適甚できたす (スタビラむザヌをバむパスしたす)。

もちろん、ある皋床の譊戒はしおいたしたが、この解決策はかなり実行可胜です。

電力はどこでも必芁なため、䟿宜䞊、ロボットの䞭心に 5 ぀のコネクタを䜜成したした。XNUMX ぀はアヌス (右偎) を「分配」し、XNUMX 番目は XNUMX V (巊偎) を「分配」したす。

Arduinoで初めおのロボットロボット「ハンタヌ」䜜成䜓隓

モヌタヌずドラむバヌ

たずぱンゞンの搭茉に぀いお。 マりントは工堎で補造されおいたすが、公差が倧きく䜜られおいたす。 蚀い換えれば、゚ンゞンは巊右に数ミリメヌトルぐら぀く可胜性がありたす。 私たちのタスクにずっお、これは重芁ではありたせんが、堎所によっおは圱響を受ける可胜性がありたす (ロボットが暪に動き始めたす)。 念のため゚ンゞンを厳密に平行にしお接着剀で固定したした。

Arduinoで初めおのロボットロボット「ハンタヌ」䜜成䜓隓

モヌタヌの制埡には、䞊で曞いたようにL298Nドラむバヌを䜿甚したす。 ドキュメントによるず、各モヌタヌに 5 ぀のピンがあり、XNUMX ぀は速床倉曎甚、もう XNUMX 組のピンは回転方向甚です。 ここで重芁な点が XNUMX ぀ありたす。 電源電圧が XNUMX V の堎合、速床制埡はたったく機胜しないこずがわかりたす。 ぀たり、たったく回転しないか、最倧たで回転したす。 これは、私が数晩「死ぬ」こずになった原因です。 結局、フォヌラムのどこかで蚀及を芋぀けたした。

䞀般的に蚀えば、ロボットが空間をスキャンする時間を確保できるように、ロボットを回転させるずきは䜎い回転速床が必芁でした。 しかし、このアむデアからは䜕も生たれなかったため、別の方法で実行する必芁がありたした。぀たり、小回りをしお停止し、方向転換しお停止するなどです。これもあたり゚レガントではありたせんが、実行可胜です。

たた、远跡のたびに、ロボットは新しい方向にランダムな方向 (時蚈回りたたは反時蚈回り) を遞択するこずも付け加えおおきたす。

超音波センサヌ

Arduinoで初めおのロボットロボット「ハンタヌ」䜜成䜓隓

もう XNUMX ぀のハヌドりェアでは、劥協的な解決策を探さなければなりたせんでした。 超音波センサヌは、実際の障害物では䞍安定な数倀を生成したす。 実際、これは予想されおいたした。 理想的には、滑らかで平らで垂盎な衚面がある競技䌚のどこかで機胜したすが、誰かの脚がその前で「フラッシュ」した堎合は、远加の凊理を導入する必芁がありたす。

そのような凊理ずしお私が蚭定したのは メディアンフィルタヌ XNUMXカりント。 実際の子䟛に察するテストに基づくず (テスト䞭に子䟛に危害が加えられるこずはありたせんでした!)、デヌタを正芏化するには十分であるこずが刀明したした。 ここでの物理孊は単玔です。信号が反射されたす。 必芁な 必芁な距離を䞎える物䜓や、より遠くにある物䜓壁などからの反射。 埌者は、圢匏 45、46、 230、46、46、45、45、 310, 46...メディアンフィルタヌがカットするのはこれらです。

すべおの凊理が完了するず、最も近いオブゞェクトたでの距離が埗られたす。 それが特定のしきい倀未満の堎合、譊報をオンにし、「䟵入者」に向かっおたっすぐに運転したす。

フラッシャヌずサむレン

おそらく、䞊蚘すべおの芁玠のうち最も単玔な芁玠です。 それらは䞊の写真で芋るこずができたす。 ハヌドりェアに぀いおはここでは特に曞くこずはないので、次に進みたしょう。 コヌド.

制埡プログラム

コヌドを詳しく説明する意味がわかりたせん。誰がそれを必芁ずしおいるのでしょうか。リンクは蚘事の最埌にあり、そこにあるものはすべお非垞に読みやすいです。 しかし、䞀般的な構造を説明するのは良いでしょう。

私たちが最初に理解する必芁があったのは、ロボットはリアルタむム デバむスであるずいうこずです。 より正確に蚀えば、以前も今も私はただ゚レクトロニクス関連の仕事をしおいるからです。 だから私たちは挑戊のこずをすぐに忘れおしたいたす ディレむこれはサンプル スケッチで奜んで䜿甚され、指定された期間プログラムを単に「フリヌズ」したす。 代わりに、経隓豊富な人々のアドバむスに埓っお、ブロックごずにタむマヌを導入したす。 必芁な間隔が経過したした - アクションが実行されたした (LED の明るさの増加、゚ンゞンの始動など)。

タむマヌは盞互接続できたす。 たずえば、ツむヌタヌはフラッシャヌず同期しお動䜜したす。 これによりプログラムが少し簡玠化されたす。

圓然のこずながら、すべおを個別の機胜 (ラむトの点滅、音、方向転換、前進など) に分解したす。 そうしないず、どこから䜕が来おいるのかわかりたせん。

教育孊のニュアンス

䞊蚘のすべおを倜の自由時間に行いたした。 ゆっくりず、XNUMX週間ほどロボットを䜜りたした。 ここで終わるこずもできたしたが、子どもずの関わりに぀いおも話すず玄束したした。 この幎霢で䜕ができるでしょうか

指瀺に埓っお䜜業する

たず、LED、ツむヌタヌ、モヌタヌ、センサヌなどの各詳现を個別にチェックしたした。既補のサンプルが倚数あり、開発環境にあるものもあれば、むンタヌネットで芋぀けるこずができるものもありたす。 これは確かに嬉しいですね。 コヌドを取埗し、郚品を接続し、それが機胜するこずを確認しおから、タスクに合わせおコヌドを倉曎し始めたす。 子䟛は私の指導の䞋、図に埓っお接続を行いたす。 これはいい。 たた、指瀺に埓っお厳密に䜜業できるこずも必芁です。

䜜業の順序「特定のものから䞀般的なもの」

これは難しい点です。 倧きなプロゞェクト (「ロボットを䜜る」) は小さなタスク (「センサヌを接続する」、「モヌタヌを接続する」...) で構成されおおり、それらはさらに小さなステップ (「ロボットを芋぀ける」など) で構成されおいるこずを孊ぶ必芁がありたす。 「プログラム」、「ボヌドを接続する」、「ファヌムりェアをダりンロヌドする」...)。 䞋䜍レベルの倚かれ少なかれ理解できるタスクを実行するこずによっお、䞭䜍レベルのタスクを「終了」し、そこから党䜓的な結果が圢成されたす。 説明したしたが、すぐには実珟しないず思いたす。 おそらく思春期たでのどこかで。

むンストヌル

穎あけ、ネゞ山、ねじ、ナット、はんだ付け、そしお束脂の匂い - これなしではどうなるでしょうか? 子䟛は「はんだごおを䜿っお䜜業する」ずいう基本的なスキルを受け取りたした - 圌はなんずかいく぀かの接続をはんだ付けするこずができたした私は少し助けたした、私はそれを隠したせん。 安党性の説明も忘れずに。

パ゜コン䜜業

私はロボットのプログラムを曞きたしたが、それでもある皋床の良奜な結果を埗るこずができたした。

最初英語。 孊校でそれを始めたばかりだったので、私たちはピシャルカ、ミガルカ、ダヌコスト、その他の音蚳が䜕であるかを理解するのに苊劎しおいたした。 少なくずも私たちはこれを理解したした。 私たちはただそのレベルに達しおいないので、ネむティブの英語の単語を意図的に䜿甚したせんでした。

XNUMX぀目は効率的な仕事です。 ホットキヌの組み合わせず、暙準的な操䜜をすばやく実行する方法を教えたした。 プログラムを曞いおいるずき、定期的に息子ず私は堎所を亀換し、私は䜕をする必芁があるかを蚀いたした (眮換、怜玢など)。 「ダブルクリックしお遞択」「Shift キヌを抌したたた」「Ctrl キヌを抌したたた」などを䜕床も繰り返す必芁がありたした。 ここでの孊習プロセスは速くありたせんが、スキルは埐々に「皮質䞋」に蓄積されるず思いたす。

隠しテキスト以䞊のこずはほが自明のこずであるず蚀えるでしょう。 しかし、正盎に蚀うず、この秋、私はある孊校で 9 幎生にコンピュヌタヌ サむ゚ンスを教える機䌚がありたした。 それはひどいですね。 孊生は、Ctrl + Z、Ctrl + C、Ctrl + V、Shift キヌを抌しながらテキストを遞択する、単語をダブルクリックするなどの基本的なこずを知りたせん。 これは、圌らがコンピュヌタ サむ゚ンスを孊んで XNUMX 幎目だったずいう事実にもかかわらずです... 結論は自分で決めおください。

XNUMX぀目はタッチタむピングです。 コヌド内のコメントは子䟛に入力しおもらいたした緎習させたした。 私たちはすぐに手を正しく眮き、指がキヌの䜍眮を埐々に芚えおいきたした。

ご芧のずおり、私たちはただ始たったばかりです。 これからも生掻に圹立぀知識や技術を磚いおいきたす。

さお、今埌のこずですが 

さらなる発展

ロボットが䜜成され、駆動し、点滅し、ビヌプ音が鳎りたす。 今は䜕ですか これたでの成果に觊発されお、さらに改良を加えおいく予定です。 月面探査車のようなリモコンを䜜るずいうアむデアがありたす。 リモコンの前に座っお、たったく別の堎所を運転しおいるロボットの動きを制埡するのは興味深いでしょう。 でもそれはたた別の話になりたす...

そしお最埌に、実際、この蚘事の䞻人公たちですクリックするずビデオが衚瀺されたす。

Arduinoで初めおのロボットロボット「ハンタヌ」䜜成䜓隓

ありがずうございたした

→ コヌドリンク

出所 habr.com

コメントを远加したす