2015年7月5日日曜日

arduinoのbluetoothのシールド



もともと

以前,RTCで寝ているArduinoを起こし,センサの値を読んで,BLEで他のホストに投げる端末を作ってみたが,プログラムサイズが大きすぎてUnoでは利用できなかった.

その原因は,USBホストシールドにBLEのアダプタを挿す形式のハードウェアを利用していたため,USBホストシールド+BLE用のライブラリが巨大だったこと.

そのため,USBホストシールド無しでBLEを利用すれば,Unoでも行けるんじゃないかということで手配してみた.(まだ未入荷)


以前のプロジェクト


ソース : https://github.com/houtbrion/Dht22RtcSpp
製作記事 : http://houtbrion.wiki.fc2.com/wiki/Dht22RtcSpp%E5%88%B6%E4%BD%9C

手配したシールド



予習


Seeed Studio BLE Shield

メーカのサイトを見ると,以下のwikiを見よと書いてある.




写真を見ると,シリアル通信に使うポートは選べる(シールド側にどのポートを使うか切り替えるショートピンが付いている)ように見える.


RedBearLab BLEShield


とりあえず,ライブラリや開発者ドキュメントはgithubにまとめられているらしい.




arduinoのEthernetシールド

会社でArduinoのEthernetシールドR3を発注していたが,Ethernetシールド2への切り替え時期にハマってしまい,お馬鹿な購買部門が手続きに時間を掛けている隙に売り切れとなり,購入不可となった.

他の部品とセットで発注していたので,発注取り消しだと.

品切れの部品以外だけを買うことはできんもんか.

馬鹿すぎる.

2015年7月4日土曜日

Arduino M0 pro購入

会社で発注していたArduino M0 Proが入荷したので触ってみた.

結論:
「arduinoのピン配置の基本などが同じなだけでまったく違うと思ったほうが良い.」

主な違い

気がついた主な違いは以下の点

  • 本体が3.3V駆動のため,いろいろな周辺機器の回路が動かない.
  • I2Cのピン配置が変わっている.
  • CPUの低電力モード
  • ライブラリの非互換
  • 開発ソフト

I2C

I2Cのピンは古いUNOでは,A4,A5(アナログピン4,5)だったのが,R3からデジタル側のピン数が増えて,そちらにもI2Cのピンが作られた.(参照 : "なんでも作っちゃう、かも。"さん)

M0 Proは,"きむ茶"さんの情報によると,アナログピンのI2C機能はない模様.


以前の工作ではA4,A5のI2C使っていただけに,今後はいろいろ考えないといけない.


CPUの低電力モード

今回から,コアがARMになったので,その点でもいろいろ違う.特に,気になったのがCPUのsleep機能がない.ATmegaの頃は,CPUに低電力モードがあって,それが使えたが,M0 proの開発環境を見ると,低電力モード関係の定義(sleep.h)がヘッダのディレクトリに見当たらない.


ライブラリの非互換

CPUアーキが変わったのだから,当然発生しうる問題なんだが,以前のプロジェクトで使っていたライブラリが開発環境組み込みのなにかのモジュールと喧嘩している.

具体的には,"きむ茶"さんのRTCのライブラリで使っている変数型が開発環境のどこかのインクルードファイル内の定義と喧嘩している.

開発ソフト

Arduinoの仲間割れのせいで,IDEも2分割されていることだけでなく,コンパイル,書き込み後の動作にも変化が.

IDEを使っていて,アプリをコンパイルして書き込んだ際,「書き込みが終了しました」まで待ってから,シリアルのウィンドウを開けた際,UNOやMEGAだと,IDEのシリアルのウィンドウを開くと,最初から実行されるが,M0 proはそのようなリセットっぽい機能はなく,人間が手でリセットボタンを押さないといけないのがめんどくさい.


参考文献


DELLのPC購入


会社でシステムの運用方針が代わり,ノートPCの持ち出しが一弾と厳しくなる予告があったため,windows10が出る直前だというのに,ノートPCを買うことにした. 
(せめてwindows10モデルが出るまでは現状維持したかったな~)

現状,毎日持ちだしているのに(ぶつぶつ).

持ち出せないと学会関係(宗教ではない)の仕事で困る.

自宅にもPCはあるが,家族と共用なので,持ち歩けない.

会社では,事情が許すかぎりthinkpadのxシリーズを使ってきたが,最近の品質低下(といっても,IBMだった時代の終わり頃からだからだいぶ昔からか.)などが酷いことと,そのわりに値段が高いことから,パス.

レッツノートもチェックはしたが,おじさんのお小遣いの残りを溜めたへそくりで買うには高すぎる.

macbookは一見安いように見えたが,よくスペックを見ると高い.特に,メモリが少ないわ.良い点はSSDを使ったラインナップが充実しているぐらいか.

安いこと,延長保証などの観点から今回はやむを得ず(本気でやむを得ず) Dellの Inspiron 13 7000 Series 2-in-1 (7348)にした.

BTOとはいえ,週末はライン動いてるのか?
今日(土曜日)一日,発注品の生産状況が変化していないところを見ると,お休みのように見える.(多分工場は中国だよね~)

3交代24時間体制にしろとは言わんが,もう少し,なんとかしろと思う.カスタマイズするところがなくても,在庫するモデル数が少なすぎ,BTOで時間がかかるのはイライラする.



arduinoの各種プロジェクト



wikiとgithubに以下のarduinoとraspberry pi関係の制作記事を公開


  • DHT22RTC : 温度・湿度計を測定してシリアルポートに出力するセンサ
  • Dht22RtcSpp : 一定時間間隔で温度・湿度を測定してbluetoothで送信するセンサ
  • DHTWebServer : HTTPのリクエストを受けると,温度や湿度を測定し,温度・湿度・ヒートインデックスをHTMLで返すwebサーバ
  • Pi-CoolingFan : Raspberry Piの本体の温度が高い時だけ冷却ファンを回す回路と制御プログラム

上記のプロジェクトはこのblogに書いたことがあるものばかりだけど,ソースや制作内容も最新のものに変更されている.


DHT22RTC


Dht22RtcSpp



DHTWebServer


CoolingFan

wikiとgitリポジトリ


blogだと,書いた記事が流れてしまって,あとからの参照が面倒なのと,ソースのリビジョン管理をやりたかったので,無料のwikiサービスとgithubのアカウントを作った.

githubにもwiki機能はあるが,そちらを使わなかった理由は,githubのwikiはユーザアカウントではなく個々のリポジトリにしか付けられないので,全体のまとめやメモの蓄積には向かないため.