2013年03月一覧

さくら ☆になる

 先週くらいから体調を落としていた、金魚の桜東錦のさくらちゃん。一昨日夜から治療水槽にいれたりしていたのだが、環境がかわってかえって状態が良くなくなってしまった。
 今朝起きてみたら、もう動きませんでした。残念だ、


キーボード配列変換機テスト

20130330_01

 手持ちのデバイスでテスト。Sparkfunの新しい方のUSB HOSTシールドとArduino microにて。
なんかうまく動かない。
 Arduino microをやめて秋月のArduino互換機で試してもおかしい。キーボードを変えてみたら文字コードを受信するようになった。それまでは場所が狭いからテンキーレスのUSキーで試していたのだった。
 でも、Arduino microに戻すとうんともすんとも。なんでだ?

20130330_02
 今朝方緊急発注しておいたArduino Leonardoと、白い基板の本家と同じ回路であろうUSB HOSTシールドが届いた。SparkfunのUSB HOSTシールドは電源周りとか微妙なのです。で、届いたこいつらで試したらUSキーボードのキーコードをサクサク受信。同じように会社から日本語キーボードのノートPCを貸与されて困っていた人の記事のコードもサクッと動いた。一安心。

 あとは、自分用のカスタマイズ。自分がいじれるPCではのどかをインストールしてCAPSロックをIMEのトグルに、SHIFT+CAPSLOCKをCAPSLOCKにしているのでその対応をすればOK。しかしうちにはキーコードを検証する日本語キーボードはツレのPCにしかないのだった。
 完成まではもう少し。で、ツレから日本語キーボードを借りて、キーコードを調べてとかして、なんとか自分の使えるようなものができたっぽい。

 明日は早朝か日曜なのに仕事です。っかなんでこんなことしないといかんのかなぁ。しっかりしてくださいよ>親会社。手に馴染んだ万年筆を使いたいけど、会社が文具量販店のボールペンの配給だけでなく使用を強要するというような感じなのですかね。
 うまく行ったら、基板起こして小型化して頒布とかするかも。ってか同じようなことはMakeTokyoMeeting2012の時にやったらしい方が要るんだよね。その時は我が身にこんな事が振りかかるとは思ってなかったのでスルーしてたのに。今だったら速攻で頒布受けてる。

 まぁ、英語キーボードを使おうなんて、プログラムを書かない、最初から日本語キーボードしか使ったことが無い人ならまったく気にもならないことですから。海外旅行して気づくくらいかな。



sanguinoマスタコントローラ化の下準備

20130328_01

 家のいろんなデバイスのデータを集中的に取得してネットにアップロードする自作デバイスを「マスターコントローラ」と呼んでいます。現状、mbedで動かしているのですが、mbedも高いので他のマイコンにしたいかなとか思って。

 sanguinoでのwiz820io動作が見通しがついたので、他にGLCDやXBeeを配置したプロトタイプをブレッドボードでやってみます。今夜は配置しただけです。GLCDはむかーし買ってあったTG12864B-02WWBVを今回初めて使います。センサー類のデータを何処かに(i2cのEEPROMとか?書き換え回数的にEEPROMは無理だなぁ、SPIなSRAMか。)保存しておいて、時系列グラフ表示するとか考えてます。当然各センサの現在値も表示させます。ATmega644(SRAM 4Kbyte)でやるつもりなのだけど、やっぱATmega1284P(SRAM 16Kbyte)かなぁ。

 ブレッドボード上のGLCDの置き方がだいぶもったいない置き方ですが、まぁこれでも想定の回路は作れますので。はみ出してると引っ掛けてピン曲げたりとかもありますから。

 wiz820ioは0x2000バイト以上の受信をするとハングするバグが有るようですが、その前にソケットをcloseすれば良いとか。TCP/IPに関してはこのガジェットはクライアントなので、都度開け閉めするから大丈夫ですかね。

 オプショナル開発として、今XBeeで無線経由でデータを取得しているガイガーカウンタとエーハイムフィルターは有線接続に切り替えるかも。インターフェイスはi2cかな。wiz820ioとは当時に使わないだろうからSPIでも良いけど、SSが必要になるから躊躇している。


切れてたかき醤油を補完

20130327_01

 自宅では使いきってしまって、最初に購入したルミネの地下の「スーパーザ・ガーデン自由が丘」では在庫切れになって手に入らなくなっていたかき醤油。
 本日は、雨模様予報だったので公共交通機関通勤。なので帰りに探してみた。kinokuniyaには無かった。で、立川グランデュオの「北野エース」に行ったらありました、かき醤油。しかも1リットルペットボトルも。1リットルペットボトルをお買い上げして帰宅しました。
 画像は3/28夜のものなのでちょっと減ってますw。


sanguinoでのLANテスト

20130326_01

 sanguinoにWiznetのWiz820ioを接続して、DHCPで取得したIPアドレスをオクテット単位でLEDに表示する実験。
 まずはLEDは使わずに、シリアルコンソールに出力するプログラムで。
 DHCPで取れない。
 おなじWiz820ioをArduinoにつないだらちゃんとIPアドレスがとれるのでWiz820ioの動作不良ではない。

 sanguinoのSPIのライブラリのソースを読んでみても、MISO,MOSI,SCKは大丈夫そう。ただどうもSSが怪しい。どこで指定してるのか?固定か?
libraries/Ethernet/utilityのw5100.hが原因でした。

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  inline static void initSS()    { DDRB  |=  _BV(4); };
  inline static void setSS()     { PORTB &= ~_BV(4); };
  inline static void resetSS()   { PORTB |=  _BV(4); };
#elif defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB162__)
  inline static void initSS()    { DDRB  |=  _BV(0); };
  inline static void setSS()     { PORTB &= ~_BV(0); };
  inline static void resetSS()   { PORTB |=  _BV(0); }; 
#else
  inline static void initSS()    { DDRB  |=  _BV(2); };
  inline static void setSS()     { PORTB &= ~_BV(2); };
  inline static void resetSS()   { PORTB |=  _BV(2); };
#endif

こんな感じでAVRのタイプ別でマクロになってる。sanguinoでもdigital2のピンをssに接続すれば動いたわけですが(あとで再現テストしたらちゃんと元のcodeでもdigital2ピンなら動きました)。SPIのMISO,MOSI,SCKの3セットのピンの横のdigital4を使いたかったのでちょっと書き換え。
最初の行を

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__)

に変えて無事目的を達成しました。さすがArduino非公式のsanguinoなのでこういうことは多々あるでしょうね。

 あとはLEDに渡すようにIPアドレス文字列から数値に変換しつつフォント配列を引っ掛けつつで完成。

 ただ、Sanguinoでネットが使えるなら、現在mbedにやらしてるセンサーマスターコントローラをSanguinoに変更しても良いかなと思う。RTCがないとかシリアルが2つしかないとかありますけど、XBeeはSoftwareSerialでも何とかなるし。どうせなら液晶を20×4のキャラクタ液晶から128×64のグラフィック液晶に変えてみたりとか。ARMでなくてAVRだけどムチ打ちますねぇ。ちょっと検討してみます。


今日はsanguinoのテスト

20130324_01

 14:00くらいまでは、昼ごはんを買ってきて食べたり、エーハイムのサブストラットを洗ってみたりしてた。

 その後、Sanguinoのテスト。

 まず配線図をFritzingで描く。実物で配線してみる。Lチカを送る。動かない・・・。

 一旦ATmega644Pのブートローダの焼き直しにかかる。ArduinoIDEが1.0.4に上がっていたのでそれを落として環境を作って、その後sanguino環境に変更。ArduinoUNOでArduinoISPを作成してブートローダを焼き込もうとするのだがエラー。AVRISPmk2とAtmelStudioで同じ事をやってみてもエラー。
 ここで以前失敗した時の記憶がよみがえる。外部クロックをつなげてみたらAtmelStudioがATmega644Pを認識した。そのままArduinoISPに繋ぎ直したら無事ブートローダ書き込み完了。せっかくなのATmega1284Pもブートローダを書き込みしておいた。

 で、再度試してみたがLチカアップロード完了。無事動作。ATmega1284PでもOK。というわけでsanguinoを試せる環境はできました。チップに貼ってるピン記載シートはOpenCVで遊ぼう!別館さんから毎度頂いてます。ありがとう。


全部見せます北斎冨嶽三十六景

 江戸東京博物館で3/15-3/31開催の特集展「全部見せます北斎冨嶽三十六景」に行って来ました。三十六景っても追加の十景があるので作品は四十六点。

 両国についたらツレが腹が減ったというので駅近辺をうろついて、ガード下のとんかつ専門店「いちかつ」に入りました。
20130323_01
 ふたりともヒレカツ定食。890円でした。ロースカツ定食だと690円。お腹いっぱいになりました。

 で、江戸東京博物館。エスカレータで6Fにあがって日本橋をわたって5Fへ直行。直接5Fにいければ良いのにね、入場ゲートが6Fにあるから仕方ない。ずりずりと全46点を見終わって、7階の資料館に初めて行ってみた。
 なんか面白い本やら雑誌がある。そして、ビデオライブラリーで「浮世絵の摺師」「東京・街あるき1」を観た。ここのビデオライブラリー良いね。ちょっと(だいぶ?)古い映像素材もあるけども、観たいものが山のようにある。朝一9:30で来て閉館17:30まで居ても観きれないだろう。何度か通わないと。こういうのは東京都がライブラリーとしてネットで配信してくれると都税を納めるのも納得できるですけどね。

 つづいて、ツレご希望の水上バスにて両国の船着場から水上バスで浅草へ。ツレは本当は違うコースが良かったようなのだが、花見の時期で今日はそのコースは休航でした。30分くらい隅田川の川沿いをぶらぶらして水上バスが到着するのを待つ。時間が来て、乗る水上バスがちょい遅れて来たが、超満員。なんとか階上の場所を陣取ってカメラ撮影とかしてました。動画もあるので気が向いたら編集します。

20130323_02

20130323_03

 水上バスを降りた所は浅草の隅田公園。さくらが満開でにぎわってました。

20130323_04

 その後は浅草寺に行きたいというツレの要求は却下して(すでに16:00だし)、途中でお茶しつつ、インド雑貨屋やら、サンマルクを寄り道して、総武線浅草橋駅まで。そこからJRで自宅へ。立川駅で電車を降りたら外気が冷えてて寒かった。


集合抵抗に変えました

20130322_02

 7セグLEDのアノード側の電流制限抵抗を集合抵抗にしました。スッキリ。aitendoさんでちょうどコンデンサマイクを買う必要があったので、ついでに。
 他は更に小さめな4桁の7セグLED@150円とか。74HC595@50円もいくつか追加。

 この集合抵抗、8抵抗のDIPが5個で100円なので秋月などのの100個100円の抵抗と比べるとコスパは悪いのですが、ブレッドボードでの取り回しが楽なので買ってみました。残念なのは抵抗値のバリエーションが少ないことかな。
 ふと、16ピンのDIPのICソケットを使って好きな値の抵抗を固定すればええじゃんと思った。確かに。出来れば丸ピンのソケットが良いですね。


sanguinoの準備

20130321_01

 準備ってか並べただけですね。

 ブートローダは焼いてあったはずなので、配線とIDE環境の準備をすれば試せるはずです。

 最初はDHCPで取得したIPアドレスをUARTに流すとか、httpクライアントとしてどっかのhtmlをUARTに流すとかかな。デジタルピンはSPIとUARTを除くと20本。アナログピンをデジタルに回せばさらに8本なので12桁の7セグLEDをシフトレジスタ無しでまかない切れるはずですね。