mbed一覧

mbed HRM1017

20140719_01

 平日に届いていたのでいじれず。今朝いじりました。ってもサンプル記事まんま。i2cセンサもちょうどTMP102があったので利用。なので、mbed側のコードもまんま。BLEの親側はNexus7(2013)を使用。「nRF Toolbox」はAndroid版もあるのでラッキー。
 最初ペアリングしてなくて、温度が取れないなぁとかやってましたが、ペアリングさせたらOKでした。


風センサ1号機ひとまず仮完成

20140517_01

 今朝は4:30頃に目がさめたので、風センサーの半田付作業を開始。7時位には完成していた。8ピンDIPのATiny85なのでスッキリ。その後、データを実測しつつ、ソフトウェアを調整。ここで一度ハマった。加速度センサの値が期待値より低い。ブレッドボードのプロトタイプでは期待値通り。なんだろう?と思ってたけど解決しました。加速度センサのVDDが未接触。しっかり半田付して予定通りの値になりました。今どきのICセンサだと他の端子から電源が廻ってある程度動いてしまうのですよね。
 今回の基板も仮本番機的で、swichscienceさんのXBee片側変換基板を付けてます。デバッグ時にデータをモニタリングできるので。ソフトウエアが安定したら、ATtinyや加速度センサをソケット経由ではなく基板に直付してしまうともう少し薄く作成できるのです。

20140517_02

 午後は風センサのデータをXBee中継する、ベランダの気象センサー機の変更。まずUSB端子を増設。USB規格では使わないですが。で、風センサとつないでみてもどうもデータが取れない。テスタで調べたらUSBケーブルのD-D+が導通してませんでした。USB充電用のケーブルだったのかも。取り替えてOK。
 その後SanguinoでのSoftwareSerialでチョッとハマった。うちのsanguino用のpins_arduino.hに必要なマクロが書かれてなかったため。書き足してOK。

 中継のSanguino機がOKになったので、mbedのアップローダを変更。まぁ、これは難なく終了。無事に風データがアップロードされ始めました。
20140517_03

 さて、そろそろこの自宅データ類を分析して表示する様なページを作らないとなぁ。現在250万レコードくらい。

 


mbedでhid

20130408_01

 mbedを使ってキーボードのふりをさせるテスト。

 mbedのサイトのUSB HIDのサンプルがよくわからず、USB Keyboadの方をベースにした。このUSBKeyboardクラスは既に文字コードからの変換までしてしまっているので、ちょっと改造。8byteのHID Reportのbyte配列を渡して送信するメソッドを追加。さくっと動作を確認できました。

 あとは、これとMAX3421E with AVRをシリアル通信で接続してってところですが、mbedに渡すには5V→3.3V変換が必要なのでまたあとで。変換はFXMA108を使う予定。


電光掲示板 mbed版マイコン基板初期型完成

20130317_01

 mbed版の基板出来ました。

20130317_02

 mbedとLANコネクタを載せるとこんな感じ。

20130317_03

LED基板と合体させるとこう。

20130317_04

 電源を入れるとこんな感じ。(正面からなので眩しくて程よく文章が潰れて著作権的に良い。)

 実は、マイコン基板の電源レギュレータ部分を作成する前に、mbedのvoutの3.3Vを使ってテスト表示してみたのだけども。

 文字がおかしい。

 調べてみたら、ブレッドボードのテスト回路の行の接続が間違ってた。1行目と6行目が逆。
プログラム側でカソード側のシフトレジスタに渡す値を1行目と6行目で入れ替えて修正完了。

 次は、LEDの2ユニット目です。正直3ユニット・12文字まで作る気力がもつだろうか?(苦笑)。
そして、秋月の切り取れるピンソケットが手持ち在庫が1本になってしまったので、発注しました。プロトタイプ用の小さいマトリックスLED基板で使ってしまったからなぁ。

 マイコン基板の方は「mbed版」と書いてあるように、別のバージョンも検討中。フォントデータをprogmemに置けたらですがATmega1284が有力候補。ただ、チップがデカいのだよね、mbedほどではないけども。i2c接続のEEPROMにフォントを置いてATmega328Pでやる荒業もあるかな。どちらにせよATmegaでやる時はネットワークはWiznetのW5200チップのモジュールWiz820ioにお任せ予定。他のパターンだと、XBeeの無線LAN版とか、ROHMのBP3591とか。データ持ってきてもATmega328Pじゃ2kbyteのメモリ内に保存できないから、i2cSRAMとかに置かないと。そうなるとチップが増えて実装面積食ってしまうから、やっぱATmega1284が限度かな。


マトリックスLEDでニュース表示


 (カクカクするのはうちの撮影してるスマフォのmicroSDの性能の所為です)

 午前でスクロールが出来たので、午後はまずLANに接続。NTPで現在時刻をRTCにセットしたり。
 で、プチ問題発生。最近、mbedの新しいライブラリをいじってなかったのであるが、Ethernet周りやそれに付随するプロトコル周りのドライバが新しくなってて、それの把握と対応でちと時間かかった。(mbed2.0のやつなのか?スレッドまで要らないしタイマー割り込みで良いと思ってるのだが。)

 とりあえず、NTPとhttpは喋れるようになったので、自鯖の中継PHPを作成。いまのmbedのソフトはSJIS専用だし、今後もUTF8に対応する気はない。UTF8→SJISのコンバート配列かUTF8ベースのフォントデータが有れば違いますが。
 google newsを拾ってきてSJIS変換するようにして完了。

 mbed側も、保存バッファが1024byteだと妙なので4096byteに拡張。サイズチェックは入れてるので、はみ出したら表示されないだけで、メモリを壊す事はないだろう。ニュースは3回まわったら次を取りに行くようにしてみた。

 大体こんなかんじで、あとはニュースサイトを増やしていけば良いかな。天気情報取得の為にWeather Undergroundも登録しました。

 次はスイッチによる割り込みでの表示内容変更だ。ニュースとか、時刻表とか、天気とかを優先表示させるとか。でも、この辺りのソフト系は平日でもできるから、それよりハードよりの音声、音楽系を明日やろうと思う。
 でも、実際にニュースとかをみてみると・・・。1文字16×16にしたい気がする。今の8x8LEDを4個使えば1文字表すことが出来る計算。行の方向の電力量がキビシーし、財布にも厳しい。8×8で100円のでも、10文字だと4,000円ですよ。無理無理。それよりSBCSを半分幅でDBCSと同時表示できるソフトにするのが先だ。

 ともあれ回路も固まってきたし、ソフトの改造と並行して本番のパーツで作りはじめましょうかね?1日2こ程度で。


マトリックスLEDで枕草子

 昨日の予定どおり、バッファ入りのスクロールにしました。

 文字列は、起動時にシリアルコンソールから投入できます(但し2byteのSJISのみ。1024byteまで。)。素直にLocalFileSystemのフラッシュメモリにSJISファイルを置いて読み込んだほうが、fgetcしつつEOFになったら巻き戻せば良いので楽だったと思われる。

 ベース動作が確認できたので、表示するネタ文章をネットから取ってくる部分を作成します。