公開された記事を読んだ後
、昔、合板、アトメガ、はいラズベリー 、私は自分のクラフトを共有することにしました。
ボットの作成時に、次のタスクが設定されました。
- ワイヤレスボット管理
- オンラインカメラの存在
- プログラミングの利便性
オンボードコンピューター
オンボードコンピューターには、手元にあるデュアルコアアンドロイドミニコンピューターUG-802を選択しました。 オペレーティングシステムとして-完全なLinuxディストリビューション、LinaroからのUbuntuのアセンブリ。
最初に、問題のある組み込みのWi-Fiアダプターで何かをしなければなりませんでしたが、これは頑固に再アセンブルされたカーネルで実行したくありませんでした。 基本的な決定は、はんだ付けを解除し、2番目のUSBホストコネクタをインストールすることでした。このコネクタには、通常のusb wifi(または3Gモデム)を接続できます。 すぐに言われたように、内蔵のwifiボードははんだ付けされず、2台目のホストが代わりにはんだ付けされました。
内部USBホストの最初のチェック:

インストールされたUSBホストの最終ビュー:

ホイールプラットフォーム
Ardubotプラットフォームとモーター付きホイールを注文したが、手が届きませんでした。 ためらうことなく、それを使用することにしました。 店舗で特別に購入した車の充電器に取り付けられた12〜5ボルトのコンバーターボードが取り付けられました(使用される超小型回路の入力電圧範囲が広くなっています)。 11.1V / 1250mAのリチウムポリマーバッテリーは、過去に壊れたモデルからすでに入手可能でした。 Ardubotボードは、制御ボードの機能のために軽く変更する必要がありました(トラックはD9から切り離され、D7にはんだ付けされています)。 5ボルトの電力のみが出力されるusbコネクタもインストールされました。

ホイールエンコーダーからの配線は後ろに見えます:

エンジン、調光
ArdubotはもともとArduinoと共有するように設計されていたので、活用してみてください。 Arduinoの代わりに、コネクタと互換性のあるOLIMEX PIC32-PINGUINO-MX220を使用しました。 不快な些細なことが判明しました-モーター制御ピンの1つがPINGUINOボードのLEDに使用されていました。 すべては問題ありませんが、このLEDはファームウェアブートモードで点滅し、同時にホイールを回します。 したがって、上で書いたように、トラックを再はんだ付けする必要がありました。
デバッグを容易にし、汎用性を高めるために、制御ボードはUSB経由で接続されています。 PINGUINOファームウェアは、シリアルポート/ dev / ttyACM0としてユーザーに表示されるCDC-ACMデバイスをエミュレートします。 送信される制御コマンドは次のようになります。
モーターXY | X-モーター番号、Y-状態 |
ライトxy | X-ランプ番号、Y-状態 |
クリア | すべてをデフォルト状態にリセットします |
コミット | 適用する |
モーターの番号付け:0-左、1-右。
状態:0-停止、1-前方、-1-後方。
たとえば、プラットフォームの背面LEDをオンにするには、コンソールからコマンドを送信するだけで十分です。
echo "LIGHT 1 1" > /dev/ttyACM0 echo "COMMIT" > /dev/ttyACM0
先に進むには:
echo "MOTOR 0 1" > /dev/ttyACM0 echo "MOTOR 1 1" > /dev/ttyACM0 echo "COMMIT" > /dev/ttyACM0
カメラとハブ
オンボード(ボット)コンピューターの1つのUSBポートはwifiアダプターで使用され、もう1つはプラットフォーム制御ボードです。 カメラをどこに接続しますか? 解決策があります-ハブを使用します。 コンピューターの1つに、最も安価なWebカメラの1つが格納され、疑わしい種類のUSBハブが購入されました。
電子機器の配置
ボットが何を探すかを見つける過程で、IPOD TOUCHのプラスチックボックスパッケージが正常に見つかり、UG802と分解されたUSBハブが理想的に挿入されました。 3つのハブコネクタの側面にカットアウトが作成されました。 4番目の(内部)コネクターに差し込まれたカメラ(ケーブルが事前に短縮されている)。 ふたにもUG802のUSBコネクタの切り欠きがあり、閉じられませんでした。

すべてがPINGUINO-MX220-プラットフォーム制御ボードの上部にねじ込まれています。

最終組み立てとテスト
すべてをまとめるときです。

すべての配線が本来あるべき場所で止まっている-ハブのPINGUINO、ArdubotのUSBコネクタに電源供給されているUG802:

オンボードコンピューターはsshアクセス用に構成され、作業に必要なすべてのツール(コンパイラー、ライブラリー、mc)はLinaroリポジトリーからインストールされます。 入って、書いて、コンパイルして、デバッグしてください。 美人!
テストのために、ボットのカメラからオンライン画像を表示し、どこに行くか、ランプをオン/オフするコマンドを送信するコントロールコンソールが開発されました。 ソフトウェアボットはコマンドを受信し、オンラインビデオを管理コンソールに送信します。 現在のステータスはディープベータです。 ただし、すでにシステムを使用できます!
ビデオデモンストレーション
推奨事項
sparkfan ardubotを使用する必要はありません。より安価で優れたオプションがあります。
UG802は安価なアナログ(MK802、CX-01)に置き換えることもできますが、特定のデバイスクローンで動作するカーネルソースが利用できるようにする必要があります。 そうしないと、本格的なLinuxをインストールするのに問題が生じるか、まったく不可能になります。
参照資料
googolコードのプロジェクト(ソース)リナロOLIMEXのPIC32-PINGUINO-
MX220Sparkfunの
Ardubot