材料を供給するための産業用ラインフォロワー
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 3 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 4 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
必要なツールとマシン
> ![]() |
| |||
![]() |
| |||
![]() |
|
アプリとオンラインサービス
> ![]() |
| |||
![]() |
|
このプロジェクトについて
組立ラインで部品を輸送するこれらの豪華なロボットがどのように機能するのか疑問に思ったことはありませんか?ここポーランドのオペル工場でそのようなロボットを見て、たくさんの質問をして、それがどのように機能するかを説明してくれました。これは本当に高度なラインフォロワーであることがすぐにわかりました。黒いテープの代わりに磁気ストリップがあり、光センサーの代わりに磁気センサーがあり、安全機能やその他のスマートなものもたくさんあります。しかし、この時点で、物をスマートに運ぶことができるようなロボットの、より小さく、より安価な、Arduinoベースのオープンソースバージョンを自分で構築できるのではないかと考え始めました。大きな挑戦のように聞こえます、それが私が好きなことです!
デザイン
まず最初に私はそれをデザインしました...紙の上で!はい、鉛筆を手に持った紙に:)素晴らしいCADソフトウェアがあるのに、なぜ紙にデザインするのですか?他の人から聞いて自分で確認したメリットがいくつかあります。あなたは本当に自由です、紙に制限はありません、ただ空白のスペースと物事を本当に簡単にする鉛筆だけで気を散らすものはありません。また、描画したものが気に入らない場合は、寸法や最終的な形状を気にする必要がなく、もう一度描画するだけで、すべての描画を一度に表示したら、それらを組み合わせて作成することができます。新しいアイデアで:)紙に描いて全体の形を見つけ、CADにジャンプして、図面にいくつかの寸法を追加するのは非常に簡単でした。本当にみんなにこのテクニックをお勧めします!これが私の絵です(右側のカラフルな線は私の兄の息子の創造性です)
<図>
もちろん、私の絵はあまり良くありません。あなたが描くことができれば、5分で何かが良くなるでしょうが、私は以前は絵を描くのが本当に苦手で、上記の例は私にとって有望に見えます。次に、その図面に基づいてCADデザインを作成しました。このロボットの一部が3Dプリントされることは最初から知っていましたが、100%3Dプリントにしたくなかったので、(いつものように)新しいことを実験して試してみたかったのです。最後に、レーザーカッターでいくつかの部品を切断することにしましたが、私はそれを持っておらず、レーザー切断用の何かを設計したことはなく、その方法を学び、オンラインで注文しました。素材としては4mm合板を選びました(プレキシなども使えます)。ロボットの前部は3D印刷されており、すべてのセンサー、電子機器、バッテリーを保持しています。これが私の意見では素晴らしく見える私のデザインのレンダリングです!
<図>
<図>

次のステップは、それらの木のプレートのレーザー切断を注文することでした。私はポーランド出身なので、輸送費を節約するためにそれを行うポーランドの会社を見つけました。あなたがあなたの周りの何かを見つけたいのなら、グーグルのレーザー切断とあなたの街の名前だけであなたはあなたの周りの何かを簡単に見つけるべきです。指の関節が完全にフィットするように、これらのパーツのオフセットを調整できるかどうかを会社に確認することを忘れないでください(kerfと呼ばれるものがあるため、これを行う必要があります。詳細については、こちらを参照してください)。幸いなことに、私のためにそれを世話してくれる会社を見つけました、ありがとう!
<図>
私はレーザー切断用に設計したことがなく、レーザー切断部品を使用したことがないので、かなり恐れていましたが、きれいになりました:)レーザー切断用のDXFファイルは以下の添付セクションにあります。
シャーシを完成させるために、3Dプリンターでフロントパーツを印刷する必要がありました。これは私が持っているツールなので、問題はありませんでした。3Dプリンターをまだお持ちでない場合は、購入を検討してください。最近は安い。あなたは学校や図書館でそれを見つけることができるかもしれません、あるいはあなたの友人の一人は3D印刷愛好家です。 STLファイルは以下の添付ファイルセクションにあります。 3D印刷の特定の設定はありません。私は、30%の塗りつぶしと0.2mmのレイヤーの高さで2つの周囲を使用しました。この部分を印刷するには、サポートを使用する必要があります。約8時間かかりますので、しばらくお待ちください。
印刷が終わったら、それをきれいにして合板の部品にねじ込むことができますが、私はそれにもう少し作業を加えることにしました。繰り返しになりますが、これまでに行ったことのないことです。プリントを紙やすりで磨いてペイントし、もう一度紙やすりで磨いてペイントしてから、車のフィラーを使用して表面を完璧にし、さらに紙やすりで磨いてペイントしました。かなりの時間がかかりましたが、私もたくさんのことを学び、この光沢のある表面を見てください!それは完璧です、それが3Dプリントされたとはまったく言えません! 2日間の塗装とサンディング、間違いなく価値があります。
<図>
そして、これが組み立てのために準備されたレーザーカットパーツと3Dプリントパーツです。
<図>

Arduino、センサー、モーター、PCB ...
<図>

しかし、このプロジェクトはもちろんデザインだけではありません。すべては、Fritzingで設計したカスタムPCBに接続されているArduino pro miniによって制御されます(PCBレイアウトと設計ファイルは添付ファイルにあります)。人の入力なしでそれを単独で動作させるために、ラインセンサーとラインの隣に配置されたタグを検出するRFIDモジュールもあります。安価で人気のあるギアモーターを制御するHブリッジはL293Dで、小型で使いやすいです。また、特定のRFIDタグが検出されたときにロボットがビープ音を鳴らすことができるように、回路にブザーを追加することにしました。すべてが2セルLiPoバッテリー(7、公称電圧4V)で駆動されます。 RFIDモジュールは3、3Vで電力を供給される必要があるため、モジュールに適切な電圧を供給するために、PCBに電圧レギュレーターを追加する必要がありました。彼らが言うように、安全第一に障害物を検出するための超音波センサーもあります! 1つ問題がありました。HC-SR04での読み取り距離はマイクロコントローラーの観点からかなり時間がかかるため、このセンサーで障害物を簡単かつ迅速に検出できる別のプロジェクト(詳細はこちら)を設計しました。必須ではありませんが、間違いなく非常に簡単になります。
PCBを構築するには、いくつかのツールとコンポーネント(Arduino、L293D、いくつかの分離ヘッダー、バッテリーコネクター、ブザー、3、3V電圧レギュレーター)が必要です。自宅でPCBを作成する方法と、必要なツールの種類について詳しくは、こちらをご覧ください
<図>

当初はCNCフライス盤でPCBを粉砕したかったのですが、慣れ親しんだトナー転写という方法を使うことにしました。上に、銅板に転写されたトナーがあります。次に、PCBをエッチングし、トナーを清掃しました。また、THC(スルーホールコンポーネント)を内部に配置するには、ドリルで穴を開ける必要があります。
<図>
DIY PCBの場合、はんだ付けは非常に簡単でした。通常、はんだマスク*がないため、はんだ付けがはるかに困難です。
<図>
PCBの下部に5本のジャンパー線があります(FritzingのPCBビューでは、青いケーブルとしてラベル付けされています)。ジャンパーを使用するのは本当に好きではありませんが、より複雑な回路と単層PCBでは、それらを回避する方法はありません。 。
<図>
このロボットに電力を供給するために言ったように、2セルのLiPoバッテリーを使用します。同様の電圧の他のバッテリーを使用できます。バッテリーの特定の容量を使用する必要はありません(容量が大きいほど、ロボットの動作時間が長くなります。シングルチャージ)。また、バッテリーを簡単に接続できるように、PCBにソケットをはんだ付けしました。
<図>
すべてがはんだ付けされたら、バッテリーを接続して動作するかどうかをテストします。 Arduino LEDが点灯し、煙が出ないはずです:)
<図>
すべてが正常に機能する場合は、PCBで最後のはんだ付け作業を行うことができます。ケーブルをはんだ付けする必要があります。このケーブルは、後でモーターにはんだ付けします。必要以上に長くして後でカットすることをお勧めします。短くしすぎないようにしてください。
<図>

PCBの準備ができました! PCBの作成経験がない場合は、PCBを作成してみてください。それほど難しくはありません。ケーブルやプロトボードで接続したい場合は、遠慮なく接続してください。ただし、ロボットの前部に取り付けるのは難しい場合があります。 PCBを使用すると、簡単にそれを行うことができます!それでもすべてのセンサーをPCBに接続する必要がありますが、最初にシャーシを組み立てて、すべてのセンサーをPCBに取り付けます。
組み立て <図>

レーザーカットされたパーツのフィンガージョイントは完璧にフィットしますが、それを本当に剛性と耐久性のあるものにするためには、接着剤を使用する必要があります。それは合板なので、どんな木の接着剤でもうまくいきます。接着剤を使いすぎないように注意し、漏れが発生した場合に備えて清掃してください。休憩できるように数時間乾かしてください。すべての部品が適切に配置されていることを確認してください。接着剤が乾いたら、それを変更する方法はありません。
<図>

<図>

<図>

数時間後、ロボットの組み立てを続けることができます。 3Dプリントされたフロントパーツを合板に取り付ける時が来ました。 CITインターンシップで教えてくれたので、接着剤は使用しません。接着剤の使用は専門家ではないので、忘れてください(ただし、木材で問題ないことを願っています)。ロボットの下部から配置されたネジを使用し、3D印刷されたパーツ内の回路に短絡が発生しないように、ネジが短い(たとえば、長さが6mm)ことを確認します。前部を合板に取り付けるこの方法の良いところは、上から見ることができないことです。ロボットの下を見る必要があります。これにより、ロボットが大幅に改善されます:)保護のためにワッシャーを使用することをお勧めします変形による合板。
<図>
<図>

これまでのところ、このように見えるはずなので、きれいで完璧です!
<図>
次に、モーターと後輪をシャーシに取り付けます。そのためにいくつかのM3ネジが必要になります。また、合板を保護するためにここでいくつかのワッシャーを使用しました。
<図>
センサーに戻り、ロボットを裏返してM3ネジとドライバーをつかみます。
<図>
組み立て完了!まったく難しくありませんでした、純粋な喜び。これで、すべてのセザーとモーターが配置されたロボットの形状を確認できます。完成間近ですが、最終テストの前に、すべてのセンサーをPCBに接続する必要があります。
接続
<図>

この手順には時間がかかる場合があります。難しいことではありませんが、3Dプリントされた前面部分の小さなスペースにすべてのケーブルを通すのは非常に難しい作業です。最良の方法は、すべてのセンサーとモジュールにケーブルを接続し、それらを前部の穴に通してから、最後にPCBに接続することです。
このプロジェクトのすべての電子機器を3D印刷された部分の左側に配置したかったのですが、残念ながら、バッテリーが宣伝よりも少し大きいことが判明し、左側にバッテリーを配置し、電子機器を装着する必要がありました。右側。しかし、それは大したことではありませんでした。すべてがそれに完全に適合します。
また、超音波センサーを設置することを忘れないでください。
ロボットのオンとオフを簡単に切り替えるために、このようにバッテリーコネクタにスイッチを追加しました。背面パネルには、スイッチを入れるための穴もあります。
<図>
<図>

コード
<図>

前部の後ろを閉じる前に、Arduino prominiにコードをアップロードする必要があります。 PCBからArduinoを取り出し、USB-UARTコンバーターでコンピューターに接続する必要があります。 Arduinoのコードは以下にあります。コードに関するすべては、コメントとビデオで説明されています。コードはWebエディターにもあります
このロボットのタスクを生成するためにC#で作成した特別なプログラムもあります。これは、タスクプランナーと呼ばれます(以下の.exeファイルを参照してください)。ロボットのタスクを簡単に生成し、コピーしてArduino IDEに貼り付けてから、Arduinoにアップロードできます。ロボットのタスクを生成するには、RFIDカードのIDを知っている必要があります。それを取得するには、ここで簡単な回路を構築できます。
<図>
ほぼ完成しました... <図>

これで、2つのフラップで前部の背面を閉じて、ねじ込むことができます。すべてのコンポーネントを内部に収め、それらを再配置し、フラップを閉じるために異なる位置に配置するのは難しい場合があります。
<図>

<図>

それをねじ込むために、あなたはいくつかの短いM3ねじを使うことができます、そしてあなたはそこにワッシャーを必要としません。それが私たちがしなければならなかった最後のことです。私たちのロボットはついに最終テストの準備ができました!私はそれを構築するのにとても多くの時間を費やしました、私は今それが私がそれが機能することを意図したように機能するかどうか見ることができることを本当に嬉しく思います:)
<図>
これは、すべてのコンポーネントがその場所にあり、電子機器が前部に隠されており、センサーがロボットに取り付けられている状態の様子です。唯一の欠点は、バッテリーを取り出すためにバックフラップを開く必要があるため、バッテリーの充電が難しい場合があることです。そのための簡単な解決策は、3Dパーツに穴を開け、この穴からバッテリーのバランサーケーブルを突き出すことです。
<図>
最終試験!
このロボットがどのように機能するかをどのように示すかがわかりませんでした。このプロジェクトの主な目的は、組み立てラインや工場内で物をスマートに輸送できる安価なオープンソースロボットを構築することです。そこで、簡単な組み立てラインを設置し、父と弟の息子に助けを求めました。私たちの目標は、アイテムをロボットに入れ、別のステーションのロボットからアイテムを取得し、すでにステッカーが貼られているものを置き、最後のステーションでステッカーが貼られたアイテムを倉庫に移動することでした。組立ラインを模倣し、それがどのように機能するかを簡単にテストできるようにする単純なタスク。
床に黒いテープを貼りたかったのですが、センサーが反射しにくいので、段ボールを使いました。そして、テストを開始しました。これはビデオで確認できます(このプロジェクトの最初にあります)。
<図>
このプロジェクトではうまくいかないことがたくさんありましたが、すべてが完璧になりました。それは私が意図したとおりに機能し、すべてのステップで、設計と組み立ての最初のアイデアはスムーズかつ信じられないほどうまくいきました。うまくいかないことがたくさんあると言ったとき、私は本当にそれを意味します。私は3D印刷、プログラミング、Arduinoの経験が豊富ですが、プロジェクトを紙に描いたのはこれが初めてでした。これは素晴らしいアイデアであり、これからも頻繁に行います。これまでレーザー切断用に何かを設計したことはありません。私はC#プログラマーの証明書を持っていますが、そのマスターではありません。そして、私はそれらすべてを接続して、このようなクールなロボットを作成することができました:)私のプロジェクトが気に入っていただけたら幸いです。コメントでそれについていくつかの言葉を忘れないでください、私はあなたがそれについてどう思うか本当に興味があります。ご不明な点がございましたら、お気軽にお問い合わせください!読んでくれてありがとう。
ハッピーメイキング!
コード
- 産業用ラインフォロワーArduinoコード
- タスクプランナー
- タスクplanner.exe
産業用ラインフォロワーArduinoコード Arduino
これは、Industrial LineFollowerプロジェクトのArduinoスケッチです/ *** C by Nikodem Bartnik * http://NikodemBartnik.pl * https://www.youtube.com/user/nikodembartnik**/#include#include //ピン定義。回路図で何かを変更した場合は、以下の値も変更する必要があります。#define LINESENSOR1 6#define LINESENSOR2 7#define LINESENSOR3 8#define BUZZER A0#define MOTOR1A 2#定義MOTOR1B3#define MOTOR2A 4#define MOTOR2B 5#define RFID_SDA 10#define RFID_SCK 13#define RFID_MOSI 11#define RFID_MISO 12#define RFID_RST 9#define DISTANCESENSOR A1 //定数値definition#define STOP_TIME 3000#define BEEP_LENGTH 200# MOTOR_SPEED 110#define MINIMUM_TIME_BETWEEN_CARDS 2000MFRC522 mfrc522(10、9); long int last_card_read; //ここで、プログラムから配列を貼り付けて、C#で記述したこのロボットの計画を生成できます。ILFPlanner.exe#defineCOMMANDS_LENGTH 4char * Type [4 ] ={"Stop"、 "Beep&stop"、 "Beep&ignore"、 "Stop"}; int Value [4] ={3000、1000、0、5000}; char * CardID [4] ={" 12 14 B1 2F "、" F6 34 F9 25 "、" ED B9 E0 2B "、" 83 87 3B 2E "}; void setup(){// RFIDモジュールのSPIをセットアップSPI.begin(); mfrc522.PCD_Init(); //必要なすべてのピンを設定しますpinMode(LINESENSOR1、INPUT); pinMode(LINESENSOR2、INPUT); pinMode(LINESENSOR3、INPUT); pinMode(BUZZER、OUTPUT); pinMode(MOTOR1A、OUTPUT); pinMode(MOTOR1B、OUTPUT); pinMode(MOTOR2A、OUTPUT); pinMode(MOTOR2B、OUTPUT); pinMode(DISTANCESENSOR、INPUT);} void loop(){//プログラムのこの部分は、次の行の機能を実現しますif(digitalRead(LINESENSOR1)==LOW &&digitalRead(LINESENSOR2)==HIGH &&digitalRead(LINESENSOR3)==LOW) {Forward();} else if(digitalRead(LINESENSOR1)==HIGH &&digitalRead(LINESENSOR2)==LOW &&digitalRead(LINESENSOR3)==LOW){Left(); delay(20);} else if(digitalRead(LINESENSOR1 )==LOW &&digitalRead(LINESENSOR2)==LOW &&digitalRead(LINESENSOR3)==HIGH){Right(); delay(20);} //最後のカードがMINIMUM_TIME_BETWEEN_CARDSを超えて検出された場合、別のカードがあるかどうかを確認できますif (millis()-last_card_read> =MINIMUM_TIME_BETWEEN_CARDS){//ここでは、カードがセンサーの近くにあるときに、カードを待機する必要がありますif(!mfrc522.PICC_IsNewCardPresent()){return; } //その値を読み取ることができますif(!mfrc522.PICC_ReadCardSerial()){return; } //カードの値を処理して編集可能にするStringcontent =""; for(byte i =0; i タスクプランナー C#
ロボットのタスクを生成するために私のC#プログラムでZIPを実行します。以下に、.exeもあります。プレビューなし(ダウンロードのみ)。タスクplanner.exe C#
インストールせずに、Windowsマシンで簡単に実行できますプレビューなし(ダウンロードのみ)。
カスタムパーツとエンクロージャー
すべてのセンサーと電子機器を保持するシャーシのフロントパーツ。白いPLAで印刷し、次に砂を落とし、数回塗装して光沢を出しました。印刷には約8時間かかります。サポートを使用する必要があります。前部の左側を閉じるためにこれが必要です。前部の左側を閉じるためにこれが必要です。4mm素材(合板、プレキシ)のレーザー切断用のDXFファイル 回路図
何かを編集したい場合のフリッツファイル
製造プロセス