クロウラー準備

 無限軌道のクロウラー。ホントは上にものをつかむギミックが乗るののだけど、そこは省いた形。

 今夜は2階建てにして、XBee、モータドライバと電池を載せて遊んでみた。動画は無し。
DSC_0447

 この週末お休みで、XBeeとモータドライバの間にATmega328Pを挟んだ感じでコマンドコントロール系に変更します。ついでに、加速度・地磁気センサの値を受信してログ保管。
 XBee&ATmega328Pは2011年12月のMake: Tokyo Meeting 07で仕入れてきたアルシオーノを組み立てて使ってみます。せっかく買ったので使わないと。制御系の電源は3.3Vで行くのでクリスタルは手持ちの8MHzに取り替えます。距離センサは手持ちに3.3V対応のVCNL4000が1つだけあるので搭載してみようかな。という感じです。
 コンデンサマイクを複数置いて、”手を叩いた方向へ進む”とかもやってみたいです。

 他は、多分自宅のリビングでは走行不可能な、ボールキャスターとタイヤ2つによるメカも仕入れました。でも、やはりキリムの床では進まないかも知れない。

XBeeリモコンの寄り道

20130530_01
(コントローラが埃っててすみません。すっかり弾幕系STGをプレイしていないので。)

 こんな感じでPC用のUSBゲームコントローラのジョイスティック部分での操作も検討中。モータの回転をPWM調整すればアナログジョイスティックが有効活用できる。

 最初はPCにコントローラを接続して、DirectInput経由でC#あたりでなんとかという妄想をしてたけど。PC使うならkinectで操作するくらいでないと面白く無いなと。kinectも本格的にいじる前に次のfor Windowsが来年出そうですが。

LSM303DLHC正常動作しました。

 サンプルソースをちゃんと読んだら、ちゃんと書いてあるじゃん。


// Calibration values. Use the Calibrate example program to get the values for
// your compass.
compass.m_min.x = -364; compass.m_min.y = -291; compass.m_min.z = -336;
compass.m_max.x = +265; compass.m_max.y = +345; compass.m_max.z = 180;

 X,Y,Z軸のMAXとMINの値を表示させるスケッチをつかって、自分のLSM303DLHCの計測値の範囲を取得。ブレッドボード接続のままぐるんぐるん・くねんくねんとセンサーを手で動かすのは難しい。
 昨日作った360度方位をLCDに表示するスケッチに書き換えて、正常動作を確認できました。
 実は、二軸方位センサHMC6352も手に入れていて、こいつもやはりキャリブレーションがいる。こっちはセンサーをキャリブレーションモードにしてぐるぐる回せばOKみたい。二軸なのでくねんくねんは要らないw。で、この値がセンサ内に保存されるのかどうか?調べておこう。じゃないと毎回ぐるぐるしなくては。

地磁気&加速度センサLSM303DLHCテスト

20130529_01

 ストロベリーリナックスの地磁気&加速度センサLSM303DLHCをテスト。
 簡単にArduinoUNOに液晶シールドを載っけたものに電源はエネループ。LSM303DLHCは電源2.16Vから3.6Vで、IOは1.71Vから電源+0.1V。5VのArduinoUNOのI2Cとは直結出来ないので、自宅に3つくらい在庫してある秋月電子のI2C専用レベルコンバータAE-PCA9306を介して接続。

 で、動かしてみるとなんかの影響を受けているのか、キャリブレーションしていない所為なのか値が偏る。地磁気による方位を表示させてても、グルっと回ると確かに360度分の数値が動いて戻ってくるのだけども、90度単位で動いても数値が90単位で変わるわけでもなく。原因を調べないと。ライブラリの問題なのか、キャリブレーションの問題なのか?ただ、決まった方向を向いてれば数値は同じなので地磁気はとれているはずだ。地磁気以外の磁気的要因だったりするとモータ使った機器に載せるのは無茶だろうか?

結局のところ

 モータのオンオフとLEDのオンオフも似たようなもんに見られがちですが・・・。
扱う電流の量が違うので回路的に簡単なのはLED。モーターだと結構いろいろ面倒です。

 自律行動をさせるのにどんなセンサーをつけるか検討中。まずは、室内で自分の位置が把握できるように方位は必須。GPSは室内では使えないし、民間向けのデバイスではそれほど精度は出ないだろう。
 掃除をさせたいわけでもなく、適度にうろちょとしててくれればいいかな。それってAIBOだなぁ。ツレに踏まれないように近接センサだけは頑強にしておこう。

XBeeラジコンを基板で作成

 この週末はXBeeのシリーズ1を手に入れたので、こいつで先週作ったタミヤのインセクトのラジコンの本格化をしていた。

 シリーズ1なのでPWMでモータの速度調整も可能かと思っていたが、なんか使いづらい。PWMのタイマーは外しているのだが、微妙にほどける感じで。詳細は詰めていかないとわからん。

 こんな基板を作成して、
20130526_01

 こんなふうになりました。PWMはVCC直結とXBee出力を切り替えられるように3ピンでジャンパ。
20130526_02

 走行動画。撮影しているスマフォのmicroSDがぼろいのでカクカクするのは了承願います。

 キャタピラのこの子も待機中です。こいつはいろいろ載せられそうなので、マイコンと各種センサを投入して自律行動も可能にしたいですね。
20130526_04

 キャタピラに載せる、方位センサを試してました。3.3VのArduinoが死亡した様で5VのArduinoにて。地磁気センサ+加速度センサの本命モジュールは3.6Vまで5Vマシンとは繋げられないので待機中。3.3VのArduinoは自前で作れるのでそっちの方向かなと思いながら。いろいろ探してたら、SwitchScienceさん名義でAmazonでまだ売ってたので手に入れば楽と思って発注してみました。手に入ればラッキー。まぁ、ProMiniはI2Cのポートがピンに出てないので、引っ張る必要はあるものの小型で良いArudinoです。

今週末の工作予定

 土曜はツレがお出かけなようなので、工作。

 キャタピラのクロウラーの作成と、秋月で買ったXBeeのシリーズ1でのラジコン化。更に、加速度センサと方位センサをのせて自律行動に向けてのセンサのログ取り。

 別案件として、垂直風車をペットボトルで作る件。ロータリーエンコーダで回転を計測できるようにして、風力計のベースとしたい。

 植物系は朝顔の植え替え。

 ロードバイクのメンテナンスもしたい。

 あと、仕事の下調べとしてC#でT4テンプレートをテストしておきたいかな。

 こんなトコロです。

 キャタピラのクロウラーとかなかなか進まないのはこれ↓
20130524_01
 子供の頃は、スイスイ作っていた記憶があるのだが、今ではタッピングビスとかあるとちょっと待ってしまうなぁ。年とったよ。否、昔はギアボックスは金属だったよ。素材の発達のお陰で自分で作るようになったかね。

 20130524_02

 とりあえず出来た。ボディに付けるのは明日。

pinMode(Pin, INPUT_PULLUP);

 朝、なにげにRSSリーダでチェックしていたら、スイッチサイエンスさんのブログにこんなエントリーが

 はい、知りませんでした。先週作ったXBeeラジコンの送信機も、同じような回路。内部プルアップ抵抗を使って、ボタンを押してないときはHIGH,ボタンを押すとGNDに直結してLOWという感じ。
 自分が書いたコード自体も、

pinMode(LeftUP, INPUT);
digitalWrite(LeftUP, HIGH);

昔からある手法の、ピンをINPUT指定しておきながらdigitalWriteでHIGH出力すると、内部プルアップ抵抗がオンになるというもの。
これが、

pinMode(LeftUP, INPUT_PULLUP);

の1行にまとめられるので、お得です(笑)

システム修復完了

 帰宅後、マイPCのシステムドライブの修復。

 イベントログにSecurity-SPPのエラーが30秒おきに出ているのを修復してからと思ったが治らなかった。タスクスケジューラ周りを見ても該当なし。
 
 では、mSATA SSDを投入。mSATAのスロットはmini PCI Expressと共用なので、まずBIOSでmSATAでの利用に切り替え。そしてmSATA SSDをセット。誤挿入防止のためか六角ネジが入っているので一旦抜いてmSATA SSDのネジ止め位置に移動して差し込み。ネジ止めして終了。Windows 8が起動するのを確認してTODO BackupでSATA SSD→mSATA SSDへのディスククローン。SATAが3Gb/sのH61 Expressとは言え、SSD→SSDなので速い速い。さくっと終わって、BIOSで起動を入れ替えて無事起動。Windowsの認証も通って入る。壊れかけのSSDを抜いてHDDに入れ替え。今度はmSATA SSDからHDDへ現在のバックアップとしてパーティションクローン。サイズが違うのでディスククローンではないです。

 で、まだイベントログのエラーはでてたけど、試しにコンパネから認証でWindows8の認証キーを入れてみたら、キーが違います(MediaCenterも去年の年末大サービスの時に入れてるので)と表示されたものの、なんか認証済みに表示が変化。よくわからんが問題無くなった。イベントログのSecurity-SPPの30秒おきのエラーも出なくなった。・・と思ったらまだ出てるなぁ、なんだろう?

 ひとまずこれで様子見です。

[翌朝]別のディスクにバックアップしたシステムパーティションから、C:\Windows\System32\Tasks\Microsoft\Windows\SoftwareProtectionPlatformのSvcRestartTaskというファイルをタスクスケジューラにインポートしたら、治った感じです。

またSSDがやられて

 朝PCを起動したら、no system drive boot toとか言いやがる。

 パーティションバックアップしてあるHDDをSATAに接続するととりあえず1ヶ月前の状態だが起動は可能であった。一安心。
 SkyDriveにArduinoなどのソースは保存してあるから大丈夫かな?と確認したら同期されてないじゃん。やっぱSugarSyncじゃないとダメだよ。ジャンクション張ってもダメみたいだなぁ。同期先のフォルダを任意に出来ないタイプのクラウドストレージはいちいち気を使ってデータをコピーしないといけないので使いにくいのだ。
 
 で、帰宅後、usb接続のHDDケースに今朝起動しなかったSSDを入れてつないでデータを休出。なんとかArduinoのソースフォルダはアクセスできて1ヶ月のソースを救出。試しにSSDをSATAにつないで起動してみたら一応立上がる。でも、まだDISKのエラーはEventlogに出るので再度HDDに戻してみて・・・とか試していたら、Windows認証の回数を超えたらしい。また、電話して長い番号を貰わないと。
 というか、移行準備として128GのMSATA SSDを昼休みにポチッとしたので、それが明日届いて、パーティションコピーしてから新しいキーを発行してもらったほうが良いかな。仕方ないとはいえ面倒ですね。起動HDDの構成が変わったからっていちいちカウントされるのもねぇ。

 その後Webを漁っていると、LANカードのMACアドレスの変更もアクティベーションが必要になるシステム構成の変更らしい。そういえばさっきLANケーブルの接続を変えたなと。今のPCははLANポートが2つあって、BIOSでそれぞれON/OFFできるし。試しにその辺を戻してみたら認証済みに戻ったように見える。でもライセンス認証の詳細を確認すると認証されてないとか表示される。なんじゃこれ?状態。