Arduino Spybot
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 4 | ||||
| × | 8 | ||||
| × | 2 | ||||
| × | 8 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
|
このプロジェクトについて
簡単な紹介
これは、Bluetooth接続を介して制御可能なシンプルな4輪車です。車はIPカメラとして使用できる任意の携帯電話を保持できます。ロボットの行き先を監視できるノードWebサーバーを使用して、JavaScriptでこのロボットを作成することにしました。
図1に主要部品の回路を示します。
サーバーを実行した後、制御に関する概要とカメラビューのウィンドウを含む画面が表示されます(図2)。
はい、このレイアウトはレスポンシブです。
シャーシ
このバージョンのボットでは、自分でシャーシを作成することにしました。掘削機をお持ちでない場合、またはより簡単なソリューションが必要な場合は、さまざまなプラスチック製の車体から購入できます。
自分でシャーシを作る方法を試しましたが、それほど簡単ではありませんでした。最も重要なルールは、方向転換のためにディファレンシャルステアリングを選択したい場合は、タイヤをできるだけ近づける必要があるということです。次のリンクで主な間違いと基本的な物理規則を読むことができます:
http://www.rakeshmondal.info/4-Wheel-Drive-Robot-Design
もう1つの課題は、DCモーターをシャーシに取り付ける方法でした。私の場合、これに特別な部品はないので、タスクにいくつかのケーブルタイ(150 / 3,5)を選択することにしました。タイヤを正しく取り付けるために、できるだけ正確に穴を開け、1つのDCモーターに2本のケーブルタイを使用する必要がありました。残念ながら、モーターが十分に真っ直ぐにフィットせず、前後に制御すると車が少し左または右に動く可能性があります。
電池
ボードとモーターに電力を供給するために、私はタスクに単一のDC電源を選択することにしました。シャーシには8x AAバッテリーホルダー用のスペースがないため、カスタマイズを行う必要があったため、2本の4 xAAホルダーを2本のネジで互いに取り付けました。このために、私もプラスチックに穴を開けなければなりませんでした。
電力供給
私の場合、ArduinoUnoボードに8xAA充電式バッテリーで電力を供給しています。これは、モーターシールドにも役立つのに十分な電力です。このシールドには取り外し可能なジャンパーが付いているので、モーターシールドはArduinoから電力を得ることができません。この場合、シールドの電源ピンを使用して、シールドに個別に電力を供給することができます。次のリンクでさまざまな電源オプションについて読むことができます:
https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino/powering-motors
ワイヤレス接続
HC-06 Bluetoothモジュールを使用して、車とコンピューター間の接続を確立しました。できるだけ少ないケーブルを使用したかったので、Bluetoothモジュールを空のプロトタイプシールドに配置してカスタムArduinoシールドを構築し、シールドの下に配線を行い、正しい取り付けメカニズムのためにいくつかのピンヘッダーをはんだ付けすることにしました。図3と図4で結果をすばやく確認できます。
良い点は、Bluetoothモジュールがボードにはんだ付けされていないため、いつでもシールドからBluetoothモジュールをドッキング解除できることです。
Bluetoothモジュールのセットアップについては、次のサイトの指示に従ってください。
https://github.com/rwaldron/johnny-five/wiki/Getting-Started-with-Johnny-Five-and-JY-MCU-Bluetooth-Serial-Port-Module
動き
ロボットは、差動ステアリングを使用して前進、後退、回転することができます。カメラホルダーは連続回転サーボに取り付けられているので、車自体を動かさずに携帯電話で見回すことができます。次のビデオで短いデモを見ることができます。
携帯電話
プロジェクトにはNokiaLumia 520を使用し、ストアにあるWin IPCameraアプリケーションを使用しました。
https://www.microsoft.com/en-us/store/p/win-ip-camera/9nblgggz4xb1
コードについて
javascript開発者として、私はコントロールページ用のノードWebサーバーを作成し、ルックアンドフィールとコード構文の強化のためにいくつかの豪華なライブラリを使用することにしました。完全なリストは、私のgithubページと次のセクションで確認できます。
フロントエンドとバックエンドの両方でモジュール化を選択することにしました。アプリケーションのエントリポイントは次のとおりです。
var boardModule =require( './ src / boardModule')、servoModule =require( './ src / ServoModule')、motorModule =require( './ src / motorModule'); boardModule.initBoard()。then(function(){motorModule.initMotors(); servoModule.initServo();});
フロントエンド側では、モジュールごとに分離も使用します:
import {moveWheels、stopWheels} from './ wheelsControl'; import {moveServo、stopServo} from './ servoControl'; document.onkeydown =checkKeyDown; document.onkeyup =checkKeyUp;関数checkKeyDown(e){moveWheels(e.keyCode); moveServo(e.keyCode);} function checkKeyUp(e){stopWheels(e.keyCode); stopServo(e.keyCode);}
完全なコードベースについては、上記のgithubリポジトリを確認してください。
ソートウェアライブラリ
- express.js-Nodejsアプリケーションを強化するため
- johnny-five-ArduinoJavascript制御APIを使用するため
- socket.io-ウェブソケットを使用してバックエンドとフロントエンド間の通信を確立するための
- susy-レイアウトとレスポンシブデザインを作成するため
- Googleマテリアルデザイン-マテリアル要素を使用するための
- gulpJS-タスクの自動化用
- BabelJS-EcmaScript6をトランスパイルするため
- Browserify-モジュールサポート用
最後の言葉
私はこのIoTの世界の初心者であり、これが私の最初のプロジェクトです。私が最適なソリューションを使用したことを伝えたくありませんが、このガイドからいくつかの有用な情報を見つけることができれば幸いです。
コード
Github
https://github.com/dominikfilkus/arduino-spybot-V2 回路図
arduino-spybot.fzz 製造プロセス