ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
EdisonのBreakout Boardは持っていないのでよく分かりませんが、アナログ入力ができるのはArduinoボードだけらしいです。
まあそりゃEdison自体にADCの機能がないのだからBreakout Boardにもないか。
ちなみにArduinoボードにはADS7951というADCを搭載しているみたいです。
一応、MCP3002にSPIで通信して電圧値を取得するプログラムを作ってはみました。
ここからダウンロードできます。
まあとりあえず試してみると言う事で作ってみただけなので実用性はないです。
ライブラリにしておいた方が便利かもしれません。
ついでにPythonでも作成してみました。
ここからダウンロードできます。
完全に余談ですけど、I2CやSPIのプログラムを作っているとバイナリデータからint、floatへの変換をする必要があると思います
たとえばC++で記述すると、
int x = (x_h << 8) | x_l;
のように記述できると思います。
これをPythonで記述すると、
b = chr(x_h) + chr(x_l)
x = struct.unpack('h', b)[0]
これで一応同じ動作にはなります。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
まあそりゃEdison自体にADCの機能がないのだからBreakout Boardにもないか。
ちなみにArduinoボードにはADS7951というADCを搭載しているみたいです。
一応、MCP3002にSPIで通信して電圧値を取得するプログラムを作ってはみました。
ここからダウンロードできます。
まあとりあえず試してみると言う事で作ってみただけなので実用性はないです。
ライブラリにしておいた方が便利かもしれません。
ついでにPythonでも作成してみました。
ここからダウンロードできます。
完全に余談ですけど、I2CやSPIのプログラムを作っているとバイナリデータからint、floatへの変換をする必要があると思います
たとえばC++で記述すると、
int x = (x_h << 8) | x_l;
のように記述できると思います。
これをPythonで記述すると、
b = chr(x_h) + chr(x_l)
x = struct.unpack('h', b)[0]
これで一応同じ動作にはなります。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする