PAGE.自分のためのメモ、気になったことなどを書いています。Edisonを使って、何か作ってみようと思います。実用性とかそういうことは考えずに、なんとなく思いついたものを出していければと思います。ソフトウェアというよりはハードウェアの面を前面に出していきたいと思います。Module」などは、インテル株式会社のご厚意により“さかきけい”個人に貸し出されたものです。このため私の勤務先等とは一切関係がありません。本記事は“さかきけい”が完全に自由意思で書いているもので、インテル株式会社からは何らの要請、制限等は受けていません。Arduino」を使用しています。本記事は“さかきけい”の作業内容を共有するためのものであり、何ら保証はありません。自己責任でのみ使用することができます。作ってみたもの今回はこんなものを作ってみました。Arduinoを搭載したブルドーザーです。※撮影時点で手に目立つ傷がある状態であったために手袋を着用しています。Plusに付属のもの)※VCC切断加工済み接続図パーツ特に難しいことはしていません。市販品を接続しているだけです。難しいのはブルドーザーを組み立てることだと思います。※2ポイントはGroveケーブルのVCCラインをカットする必要があることです。※3通常の単三電池と異なる電圧のリチウム・イオン電池を使用しています。誤って1.5V用の機器に入れると、かなりの確率でその機器を壊したり異常過熱させることになるので取り扱いには十分ご注意ください。Arduinoを固定します。ArduinoにはGroveベース・シールドを装着し、そこにVCCをブロックする加工をしたGroveケーブルでI2Cモーター・ドライバーに接続しています。USBコネクターに接続しています。ArduinoとGroveベース・シールドのジャンパーはすべてデフォルトのままです。Arduinoが乗っている状態がわかりやすいかと思います。UltraFire用バッテリーの電源ON/OFFや充電の際にも分解する必要がないように配置しています。I2Cモーター・ドライバーはブルドーザー後方に画鋲で取り付けています。別に画鋲でなければならないということはありません。仮組みでとりあえず画鋲を使ってみたのがそのままになっているだけです(これでも悪くないなぁ、と思いまして)。ブルドーザーのモーターとの接続は前述の接続図で示した色と一致するように接続しています。同様に単三電池ボックスからのコードも接続図で示した色と一致するように接続しています。単三電池ボックスの極性を誤るとI2Cモーター・ドライバーやそこに接続している各種機器を破損あるいは燃やす恐れがあるので十分ご注意ください。※I2Cモーター・ドライバーのジャンパーはすべてデフォルトのままです。Arduinoを親機(アクセス・ポイント)経由でLANに接続し、IPアドレス(v4)をDHCPで配布しています。この状態で使用することを前提としており、このメモでの動作もその状態で行っています。Arduinoを親機(アクセス・ポイント)として、そこへWindowsパソコンを接続させた状態でも動作することを確認しています。ArduinoのJ16側のUSBコネクターとWindows側を接続した状態では動作させないでください。設定によっては正常に動作しません。Arduino上で動作する専用スケッチにデータを送って操作する構成となっています。データはUDP/IP(ポート番号34567※4)で送信します。ArduinoからIPアドレスを知らせるための送信を行います。Arduinoで該当スケッチが動いている場合には、Windows側で一番最初に返信を受け取ったIPアドレスのターゲットが操作対象となります。2013を使用して作成しました。2、ゲーム用コントローラーはXInputに対応しています。Arduinoを搭載したブルドーザーをネットワークで検索します。検索中は進行状況を表示します:もしも見つからなければそのことを表示して終了します:取得したIPアドレスに対して、ゲーム用コントローラーから入力した情報を元にモーターの制御情報をUDP/IPで送信します。Windows側の表示内容と入力についてWindows側ではXInput対応コントローラーからの入力と設定に基づいた情報とコントロール・モードを指定するための表示と入力を受け付けています。Statusモーターに対する出力情報を表示します。マウスなどによる入力は受け付けません。左側がブルドーザーの向かって左側のモーター、右側が同右側のモーターに対する出力の大きさと方向を示しています。各モーターに対して、上側が前方向へ、下側が後方向への出力を意味しています。Mode)によってはコントローラからの入力がそのままモーターへの出力とはならないことを考慮して、コントローラーからの入力情報に基づいてどのようにモーターをコントロールするための値を決めているかを見るためのステータスです。Mode)は3モードがあり、それぞれ操作方法が異なります。Direct左右のアナログ・スティックの上下がそのままモーターの左右の強さとなります。上に入れると前進、下に入れると後進します。左右独立しているので、同じ強さで左・上、右・下と入れるとその場で回転します。本ページの最初に掲載した動画はこのモードで動作させたものです。Hand左のアナログ・スティックのみで操作する片手用のモードです。左のアナログ・スティックの上下で、左右のモーターとも前進および後進をすることができます。左のアナログ・スティックを左右に倒すことでそれぞれの方向に回転します。左のアナログ・スティックの上下を入れたまま左右に倒すと、その方向へ曲がります。Hands一般的なラジコンのコントローラーと同じように、左のアナログ・スティックは上下で前進と後進を操作します。右のアナログ・スティックの左右で左折と右折を操作します。前進および後進をしていない状態で、右のアナログ・スティックのみで左右に操作するとその方向に回転します。Arudino側で動作するスケッチのIPアドレスです。表示されている対象のIPアドレスに対してモーターの制御用パケットを送信します。アイ・スクウェアド・シー)でモーター・ドライバーへ流す動作と、Windows側からブロードキャストがあった際に応答する処理を実装しています。モーター・ドライバーへの値はWindows側で計算しているのでスケッチでは受け取った情報をそのままモーター・ドライバーへ流すだけです。ソースコードについて使用条件このソフトウェアは現状のままで提供される、一切保証のないソフトウェアです。作成者および権利者は一切の責任を負いません。これに同意する場合に限り、本ソフトウェアを使用することができます。IDE用スケッチのソースコード※6おことわりセキュリティーを一切考慮していません!!パケットの内容を一切検証せずにそのまま使用しています。Arduino側ではこのことによって特に深刻な影響があり、不正なUDP/IPによって最悪のケースではモーターを焼切る可能性があります。信頼できるネットワーク以外では絶対に使用しないでください。フェイル・セーフを一切考慮していません!!一定時間UDP/IPによる通信がない場合に圏外判定をして自動的に停止するといった、基本的なフェイル・セーフ機能を一切盛り込んでいません。稼働させる場合には十分ご注意ください。同じ構成でも動かない可能性あり!!今回の構成は筆者の環境では問題なく動作していますが、インテル株式会社の方が用意した同様の構成では正しく動作しなかったとの情報をいただいています。このため同じ構成にしたとしても相性などの原因によって動作しない可能性があります。Rev.1.1」では動きません!!今回の構成にI2Cレベル変換基板(秋月電子通商のAE-PCA9306)をJ2/J3オープン・J4/J5オープンとして「Eaglet(イーグレット)」を組み込んでみましたが、正常に動作したりしなかったりと安定しませんでした。実質的に動作しないと判断すべきかと思います。これ以外のジャンパー設定の組み合わせでは全く反応しませんでした。(MFTバージョン)」ではテストを行っていません。Arduinoで動作するスケッチを検索する処理が「疑わしい処理」としてブロックされることがあります。※7実際に疑わしいかどうかはソースコードをご覧になり、ご自身でご判断ください。Windows側からスケッチ側のIPアドレスを見つけることができない場合には、ネットワーク設定とともにファイア・ウォールの設定やウィルス/マルウェア対策ソフトウェアの設定を確認してみてください。まとめとりあえず動かしてみようと思って素直に組み立てたものです。使用しているパーツがすべてそのまま見えるようにするというのも目的のひとつでした。それを今回公開するにあたってプログラムを大幅に改良して、それなりに動くようにしてみました。当初はコンソール・アプリケーションでIPアドレスは決めうちで、操作モードはDirect相当のみで、といった感じでした。それだとあまりにもあんまりかな~ということで、GUIとネットワーク・サーチ機能を追加してみました。そんなこんなをプライベート・タイムにしていたらあっという間に3週間ほどたってしまいました。Arduinoを使用していて接続用の端子には余裕があるので、センサーをいろいろと取り付けて自律的に動けるようにするとさらに楽しくなるかともいます。できれば「Eaglet(イーグレット)」でも動作させることができないかと考えています...。私個人の感想としては、動かしてみて、またプログラミングをしてみて結構楽しかったです。動くもの系はいいですね。メモリ8GB(出荷時から4GB増量)※2時間があるときに気が向けばブルドーザーの組み立て方についても書いてみたいと思います。※3ほとんどのケースでカットしなくても問題なく動作すると思われますが、電気の流れの安定しないことになるのでカットすべきです。34567」の記述を変更してアプリケーションのビルドおよびスケッチのビルドと転送を実施することで変更できます。※5実行用のEXEファイルなどは含まれないため、別途ビルドをする必要があります。※6ビルドと実機への転送が必要です。PMKei様の本ページを拝見させていただきました。ありがとうございます。EDI1ARDUIN.AL.K)をお使いとのことですが、こちらは現在入手できないようで、「EDI2ARDUIN.AL.K」なら海外から入手できそうですが、ちなみに「EDI1ARDUIN.AL.K」と「EDI2ARDUIN.AL.K」の違いがお分かりでしたらご教授いただけますと幸いです。お忙しいところすみません。00に記載された改定によってRev2になるとありますので、それが型番の変化になっているのではないかと思います。変更の内容としては、Rev2ではEUへ輸入規則に適合するように付属の紙が改定されたとあります。それ以外の変更点はないと記載があります。Rev2のボックスに含まれるボードでも従来と全く同じように使用できるものと思います。コメントをキャンセルメールアドレスが公開されることはありません。