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はそのようなリセットっぽい機能はなく,人間が手でリセットボタンを押さないといけないのがめんどくさい.


参考文献


0 件のコメント: