CHIRIMENに載せるための構造を検討

このボディはモータ2つで車輪をそれぞれ回すタイプです。
CHIRIMENからは、制御信号をi2c経由でMotorDrive(単体用)に送る作戦。
最初から、面倒なのはいやなので贅沢にもモータ右左それぞれにi2cのポートを割り当て。
Driveボードのアドレスは、ハードで変更可能であるが、ポートを分けたので、同じアドレスで扱えます。
電源は本体とドライバで分けています。なのでi2cの線は3本。これでよいかもトライアル。
モータの線は右と左で逆になっています。モータは車輪にギヤー経由でつながっており、
同じにするとややこしいので、右のモータで前進となるように極性を合わしてあります。

DRV8830

DRV8830を基板化したもの。各社からでています。ここでは秋月電子のものを利用。
http://akizukidenshi.com/catalog/g/gK-06489/
これ1枚でモータ1台を制御。複数扱うものでも良かったけれど、ボディに載りそうな手持ちがあったのでこれを利用。ちなみに3㎜のネジ穴はボディにあらかじめ空いている穴と合致。

BODY

秋月電子扱いの以下のキットを利用しています。
http://akizukidenshi.com/catalog/g/gK-08456/
左右の車輪ごとにギアー付モータがついたもの。右のモータ単体に電源を繋ぐと左に回ります。モータ自身は右も左も同じものなので、極性を逆にして利用しています。
前の方にでている赤黒の線はバッテリの線。
2つの車輪があって、ボディの下に支柱になる突起があって、合わせて3点で床の上におけます。http://www.robotzone.com/

Softwareの実装

とりあえず、HDMIのDisplay上ににボタンを出して、これをクリックすることで操作しようと考えています。
画面のfowardをクリックすると両輪が動作。
leftは右車輪のみが動作。
backwardは両輪が逆転なのですが、ICの制約で、stopをかけ、速度を落として、両輪逆転としています。

index.htmlにボタンを定義

       <button id="submitButton-f">forward</button>
       <button id="submitButton-b">backward</button><br /><br />
  ...
(index.html)
とりあえずボタンに機能をまとめる方針

i2cとPortの実装 (main.js)

navigator.requestI2CAccess().then(
    function(i2cAccess) {
    var port = i2cAccess.open(0);
    var port2 = i2cAccess.open(2);
   port.setDeviceAddress(0x64);  // c8*1/2
   port2.setDeviceAddress(0x64);  //
...
port,port2で左右分け!

onkeydown event

document.onkeydown = function (e){
    if(!e) e = window.event;
    // for debug
    console.log(e);
}
HDMIの画面にクリックは、リモコンカーとして現実的でないので、基板のUSBにkeyboardを繋いで、制御したい。このための準備

CHIRIMEN & Frizing

配線図を描いているソフトウェアです。特定の部品だけ回転させたり、配置を変えても結線はそのまま。実物で実際に作成している雰囲気です。回路図も書いてくれます。

Frizing:
http://fritzing.org/download/

Frizing data for CHIRIMEN
https://github.com/MozOpenHard/CHIRIMEN-tools/tree/master/Fritzing