私たちは視野を広げ、一緒にロボット工学に没頭します

画像

エレクトロニクスは非常に興味深いです。 ある種の電子デバイスを開くと、非常に心地よい感覚になります。「ここにダイオード、ここにトランジスタがあります!」 。 しかし、多くの人はそれを恐れて、奇妙な波線と不可解なアセンブラコードを含む巨大な配線図を提示します。 エレクトロニクス、特にロボット工学を始めるのが簡単であることを皆に見せたいです! 簡単なロボットは、わずか数時間で作成できます。

いくつかの言葉


これらの記事では、最も簡単なものから始めて、徐々に複雑になり、さまざまなニュアンスを説明しながらロボットを作成し、途中で遭遇する問題を解決します。
まず、これらの記事は初心者向けに書かれており、この分野での最初の経験を前向きで楽しい方法で得ることができるようになっています。これにより、すべてがうまくいき、絶望に陥ることはありません。
理解している人は、何かをより合理的かつ合理的に行うことができるいくつかのポイントについてはあまり批判しないでください。
読書をお楽しみください。

歌詞からアクションまで


最初の目標は、ロボットの基礎を収集し、ロボットに乗せることです。
以下が必要です。
•マイクロコントローラー(以下、MK)
•片面グラスファイバー
•2つの電気モーター
•車輪のようなもの
•ファームウェアmkのプログラマー
•オプションで、便宜上、プログラマをボードに接続するためのコネクタ

Atmel AVRコントローラーは非常に一般的でシンプルなため、勉強し始めました。それらを使用します。 この場合、私の選択はATMega16Aでした。

写真Atmegi 16およびAtmega 8
(写真はATMega16AとATMega8Aです)

40本の脚と16 kbのメモリがあります。 これは私の実験と貪欲なCコードにとっては十分です。はい、Cでプログラミングするのはまだ簡単なので、Cでプログラミングしますが、アセンブラーの基本を正直に学びました。 atmega8など、他のmkを使用できます。
120mAの電流で定格2〜8Vのモーターを使用しました。

ステップ1.ベース

メインボードを作成する必要があります。 テキソライトをエッチングします。 これを行う方法は何度も説明されています。
まず、プログラマーのためにトラックを分ける必要があります。 事前にGromovの設計プログラマーを作成しており、com-portを介して動作します。

プログラマーグロモフの写真

ところで、彼はすぐに私のために働きませんでした。 その理由は、ダイオードの極性が守られていないことにあります。これに注意してください。
I / Oポートの場所を確認します。

ポートスキームI / O atmega16

このように脚を接続する必要があります(プログラマコネクタの順序で)。

私はレーザープリンターを持っていないので、通常の黒のマーカーを使用します。 そのマイナスは、部分的に洗い落とされることであり、このため、細いトラックを作成することは不可能です。 もちろん、すべては手で描かれます。 私たちは描く:

マーカーPCBマーキング

配線は完璧ではありません、ジャンパーが必要ですが、まあです。 また、ミクロンのすべてのレッグからコンタクトを引き出したので、将来それらにはんだ付けするのがより便利になり、貴重なPCB金属を無駄にしないために、ボード上にトラックを作成すると便利かもしれません。

硫酸銅と塩化ナトリウムの溶液に漬けます。 アクセシビリティ、価格、はるかに少ない毒性のプラス。 プロセスの速度に潜在的なマイナス。
混合物を広げ、そこにボードを置きます。 移動することをお勧めします。そのため、プロセスは高速になります。 アクアリウムコンプレッサーのアトマイザーをそこに配置できます。

今回の迫害は非​​常に長い時間、2〜3時間続いた。 溶液中の濃度が弱かったためです:数週間私と一緒にいて、ゆっくりと沈殿しました。 ボードは非常に失敗し、トラックの大部分が洗い流されてピットインされました。

失敗する

したがって、2番目の試行。
少し異なる方法で、マーカーを使用してトラックを慎重に数回トレースします。 しかし、最も重要なことは(!)、この前にボードを壊します。これは最初の試みで忘れていました。

新しい

しかし、微妙な点:非常に迅速に毒する方法。 ボードをソリューション付きの密閉容器に入れます(すべてをカバーする必要はありません)。 閉じます。 そして、私たちはこのコンテナを非常に積極的に揺さぶり始めます。 その結果、このようなアクションのわずか3分でボードが破損しました。 結果は次のとおりです。

エッチングボード

今回は非常に高品質であることが判明しました。
錫メッキ後、ジャンパーをはんだ付けし、電気テープを使用してトラックを重ねます。

錫メッキされたトラックの写真

プログラマ用の超小型回路とコネクタをはんだ付けします。 完了:

完成したボードの写真

ステップ2.移動

可動部分を整理します。 このシステムは3つの車輪に搭載され、そのうち2つはエンジンで駆動されます。 それらをPCBに貼り付けることにしました。
綿棒とアルコールを含む液体でボードにマークを付け、脱脂します。
エンジンを接着し、乾燥させます。

画像

3番目のホイールを思い付きます。 古い子供用の機械デザイナーを見つけました。これは理想的で、そのようなデザインを組み立てました。

画像

また、接着剤の上に置き、乾燥させます。

次に、車輪自体が必要です。 私は同じセットからそれらを取ることを決めました。 しかし、それらの穴はエンジンのシャフトの直径よりもはるかに大きいです。 そのため、ワイヤーとゴムを使用したクリエイティブが使用されました。

ホイール付き写真ソリューション

モーターの接点とワイヤの脚をミクロン単位ではんだ付けします。 左をPB3とPB4、右をPA3、PA4としましょう。
ロボットの最初のバージョンの準備ができました:

ロボットの最初のバージョンの写真

ステップ3.プログラムとファームウェア。

エンジンを起動するだけの簡単なCプログラムを作成しました。

#include <avr/io.h> //      - int main(void) { //    DDRB |= (1<<2); //  PB2 DDRB |= (1<<3); // PB3 DDRA |= (1<<2); // PA2 DDRA |= (1<<3); // PA3 //    //  PORTB |= (1<<2); PORTA |= (1<<3); //  PORTB &= ~(1<<3); PORTA &= ~(1<<2); return 0; } 


私はuniprofで点滅しています。
mkを接続し、電源を供給します(コンピューターの電源から5vを取りました)。

接続されたプログラマーとロボットの写真

Mkはすぐに応答しました。

uniprofスクリーンショット

HEXファームウェアファイルを取得して縫製します。 最初は1ビットは点滅したくありませんでしたが、ブレーキボタンがすべてを決定しました。
できた プログラマの電源を切り、指でリセットをリセットします...何もしません。

ステップ4.残酷な現実

これが最初の突然の問題です。

足の電圧の問題

なぜそうですか? 結局、5Vの高レベルと0の低レベルがあります。マテリアルとフォーラムの調査を開始します。
そして、ここで、ミクロンは最大40〜50mAの電流強度しか与えられないことがわかり、これは120mAのエンジンには十分ではありません。 したがって、たとえばトランジスタを適用できます。

トランジスタkt315の写真

ただし、既製のエンジンドライバー(以降ddと呼びます)を使用する方が簡単です(私たちは初心者です)。
人気のl293dを購入しました。

l293d写真

モーターは、出力レッグと、入力レッグの対応する(番号で)出力出力を制御するマイク入力レッグに接続する必要があります。 Enable1およびEnable2では、プラスの電力を適用する必要があります。

ポートスキームI / O L293D

毒、トリック、はんだ付けdd:

はんだ付けされたl293dの写真

ボードをロボットに接着します。
配線をミクロンからエンジンにはんだ付けし、ドライバーの対応する接点にはんだ付けします。

画像

それだけです!

プログラマーに接続し、動作するはずです。 そうでない場合は、はんだ点に欠陥や不要な接点がないか確認してください。 (すぐに機能しませんでした。電源を接続すると、システムが非常に暖かくなり始めました。l293dのヒートシンクの問題は、2本のはんだワイヤをはんだ付けすることにもつながりました。 0.1マイクロファラッドのセラミック)を電源に並列しても効果がないため、PSUの電源コネクタのプラスとマイナスを間違えただけでした。

稼いだ? 素晴らしい。 プログラムを受け取り、フラッシュし、リセットをリセットし、歓声を上げます! エンジンは安定して作動します!
古いホイールが落ちたので、新しいホイールを木材から切り取りました。 丸みを帯びた形ではなく、素晴らしい電気テープで少し滑らかにしました。
結果:

画像

今すぐ荘厳な瞬間!



はい!

ムーブメントで少し遊んでみましょう:
 #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB |= (1<<2); DDRB |= (1<<3); DDRA |= (1<<2); DDRA |= (1<<3); unsigned char i= 0; while(i<3){ //   PORTB |= (1<<2); PORTA |= (1<<3); PORTB &= ~(1<<3); PORTA &= ~(1<<2); _delay_ms(700); //  PORTB &= ~(1<<2); PORTA &= ~(1<<3); PORTB |= (1<<3); PORTA |= (1<<2); _delay_ms(1100); i++; } while(1) { // ,   PORTB |= (1<<2); PORTA &= ~(1<<3); PORTB &= ~(1<<3); PORTA |= (1<<2); _delay_ms(3000); // ,   PORTB &= ~(1<<2); PORTA |= (1<<3); PORTB |= (1<<3); PORTA &= ~(1<<2); _delay_ms(3000); } return 0; } 




あとがき


ご覧のとおり、単純なロボットの作成は簡単です。 さらに、すべてはあなたの想像力によってのみ制限されます。

何か新しいことを始めることを恐れないでください-すべてが確実に機能します。

ご質問がある場合は、お問い合わせください。

読んでくれてありがとう!

関連するコメントへの返信からのFAQ



原価について:


合計:〜349r +オプション:はんだ、ワイヤー、ホイール、接着剤。
エンジンを搭載することができ、他のエンジンは少なくとも20r安くなります。

UPD:

投稿自体は何らかの不思議な方法で公開されましたが、まだ修正されていない多数の失敗がありました。 正解。
コメントありがとうございます。 とてもいい。

Source: https://habr.com/ru/post/J128793/


All Articles