2012年08月12日

夏休みの工作 〜Androidに接続して温度と湿度がわかるアイテムを作ってみる

お子様でもお手軽に出来る夏休みの工作でAndroid端末と繋がる機器を作ろう!

-----

どこにでも売っている、何の変哲も無いフリスク・スペアミント味。
P1120126resized.jpg

なんとなく裏側を見てみると、まぁ、普通にフリスク。

P1120133resized.jpg

・・・しかし開けてみると・・・チャキーーーン!!
P1120134resized.jpg
なんか出てきた。

そして反対側をみると、チャキーーーン!!
P1120136resized.jpg
なんか出ていた。

なんだかわかんないけど、たまたま、ツイート画面を出して「暑いよ〜」と書いてただけのAndroid端末に突っ込んでみた。

P1120138resized.jpg

Screenshot_2012-08-12-19-02-51.png

お、ツイートしやすい形で、温度と湿度の文字列が、愛用するTweetDeckの入力枠内に表示された!!ツイートしちゃおう。定量的で伝わりやすいネ!

っていう、工作です。

ニッパーとホットボンド使って、30分くらいで出来ます。^^;

---
以前@ksksue氏に教えてもらったGroveの温湿度センサー(http://www.switch-science.com/products/detail.php?product_id=818)をばらしたセンサー単体と、スイッチサイエンスの「ATmega32U4搭載マイコンボード」(http://www.switch-science.com/products/detail.php?product_id=865)、USBコネクタをフリスクに入れたものです。Android端末のUSBホストポートと接続されるようになっているので、Android端末から電源をもらい、測定したデータをUSB HID Keyboard相当の動作でAndroid側に返します。USB On-the-Go対応のAndroid端末を使用します。とはいえ、USBホストポートがついている端末なら何でもきっと動くでしょう。例えば、W-ZERO3[es]とか。USBホスト対応のアプリを作っていたので、ネタを探していて、これを作ったというわけです。

USB端子は、100均のマイクロUSBコネクタをぶった切って使用しました。単にコネクタをぶった切って接続するだけでは、Android のUSB OTGポートは「デバイス」としてしか振舞わないので、ホストになってもらう為、USBのIDピンを接地しちゃいます。(普通のケーブルのままでは、IDピンは無接続)

というわけで、メリメリメリとニッパーでコネクタを無理矢理開けていきます。
IMG_20120812_092659_r.jpg

で、IDピンに線をつないだ様子です。
IMG_20120812_092724_r.jpg
この茶色の線を接地すればAndroid側はホストに、無接続にすればデバイスになります。

しかし今回は、Android端末はホストになってくれさえすれば良いので、そのままGNDピンとつないじゃいます。
IMG_20120812_094141_r.jpg
これで、Android端末がホストの通信をできるようになります。もちろん、Android側が5V電源を出力してくれます。

最初、PICのUSBデバイスポートを使用して作ろうと思ってました。AndroidアプリでUSB Host APIを叩いて独自の通信手順でにて連携するものを作ろうと思っていたので、USB HIDは考えてませんでした。専用のツイッタークライアントに文字を埋め込むアプリを作っていたのですが、、、先に紹介しましたATmega32U4ボードが積み基板になってましたので、方針を変えてPICではなく、このボードにすることにしたんです。

そしたら、このボードですとライブラリでUSB HIDはめちゃめちゃ簡単なんですが、汎用USB通信するのにファームに仕込んで行くのがとっても面倒に見えて、やっぱり面倒なのでひとまずHIDにしちゃいました^^;
その内、独自の通信にして、専用アプリと繋がるようにしたいです。
(その時、もしかしたらPICにしちゃうかもしれませんが)なお、HIDキーボードで日本語入力ON状態になってしまう場合、文字がローマ字として解釈されると変な入力結果となってしまいます。

中身はこんなかんじ。

P1120139resized.jpg

ファームは、ここに上げときますのでよかったらどーぞ。
(公開するほど、大したものではありませんが...)



usb dac 内蔵小型 パソコンスピーカー(25W+25W) KS-1HQM
株式会社クリプトン
売り上げランキング: 7322

ラベル:ATmega32u4 GROVE android
posted by いしいっち at 20:13| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2012年08月10日

STM32F4-discoveryデバッグ環境にOpenOCDをセットアップ

前回の記事(STM32F4 DiscoveryをUbuntuから試食してみました)で、書き換え&デバッグ用にstlinkというOSS(Open Source Software)のモジュールを使用していました。

確かに、LEDチカチカとかprintfでわーいとか、そんな程度のテスト時のバイナリ(数十キロバイト)はうまーく書き換えも、gdbでのデバッグも問題なさそうだったのですが、ではーと準備した400キロバイトのバイナリファイルをgdbから読み込ませようとしたら、大量のlibusbのエラーが発生・・・

stlinkはOSSですからソース見たら対応出来るのかもしれません、が、やはりOpenOCD試したほうが良いかなと思い返し、OpenOCDをセットアップしました。結果的には、420kバイト程度のROM書き換えが発生するデータでデバッグ含めてうまく動いています。なのでOpenOCDに乗り換えます。

実は、ちょっとOpenOCDに乗り換えて時間が立ってしまいましたので、本記事に詳細な記述ができてませんが、以下の手順に沿って実施いただければセットアップ可能のはずです。

なお、今回も、環境はUbuntu 10.04LTS(64bit)です。私は、MacOSXのVMware Fusionで動かしています。

●準備物
・OpenOCD 0.6.0のソース一式(http://www.freddiechopin.info/en/download/category/10-openocd-dev)(注:20121031リンク間違ってました)
こちらからダウンロードしました。
http://sourceforge.net/projects/openocd/files/openocd/

・ねむい様公開のWindows用OpenOCD一式
http://nemuisan.blog.bai.ne.jp/?cid=7947
のOpenOCDのところで公開されてるファイル(ocd.tar.gz)

1. OpenOCDを展開・コンパイル
展開した直下にあるINSTALLに従い、configure&make&make installしましょう。
私は/usr/local/bin/以下に配置しました。パス通しました。

2. ねむい様のocd.tar.gzを展開
Windows用のバイナリ一式部分はUbuntuでは使用しません。使用させていただくのは、スクリプト一式になります。
私は~/ocd以下に展開しました。

では、gccが吐いたelfをターゲットに書いてみましょう。STM32F4-Discoveryを接続し、以下のコマンドを実行します。
$ openocd -s (2.で展開したディレクトリ/tclへのパス) -f target/stm32f4x_stlink_flash.cfg -c "mt_flash 書き換えるバイナリ.elf"


私個人の環境の場合ですと、例えばこんな感じで。
$ openocd -s /home/yishii/ocd/tcl -f target/stm32f4x_stlink_flash.cfg -c "mt_flash /home/yishii/STM32F4/main.elf"


デバッグしたいなら、
$ openocd -s (2.で展開したディレクトリ/tclへのパス) -f target/stm32f4x_stlink_flash.cfg

ポート番号はデフォルトは3333です。

あとは普通にarm-none-eabi-gdbから接続して下さい。これは
http://projectc3.seesaa.net/article/283806921.html
に記載したst-linkでのデバッグ時のgdbの操作と変化なしでーす。

STM32マイコン徹底入門 (TECH I Processor)
川内 康雄
CQ出版
売り上げランキング: 86815




Netduino(Arduinoピンコンパチ.NETマイコンボード)
Secret Labs LLC
売り上げランキング: 47073

ラベル:STM32F4 OpenOCD GDB
posted by いしいっち at 12:11| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

STM32F4-discoveryデバッグ環境にOpenOCDをセットアップ

記事URL移動いたしました。こちらご参照下さい。

http://projectc3.seesaa.net/article/285823341.html
ラベル:STM32F4 OpenOCD GDB
posted by いしいっち at 12:08| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする