ラベル Intel Edison の投稿を表示しています。 すべての投稿を表示
ラベル Intel Edison の投稿を表示しています。 すべての投稿を表示

2015年10月24日土曜日

Intel Edisonと温度センサ(I2C)で温度取得 node.js編

Intel Edisonと温度センサ(I2C)にnode.jsを利用して温度取得をやったのでメモ

使用したセンサは秋月のコレ(M-06675)。

付属の細ピンヘッダを半田付けしてブレッドボードにさして使用した。

今回の回路図は下図の通り。


「J20pin2」を「M-06675」のVDD、「J17pin7」を「M-06675」のSCL、
「J17pin9」を「M-06675」のSDA、「J19pin3」を「M-06675」のGNDに繋ぐ。

今回のコードは以下の通り。

温度取得

var m = require('mraa'); //require mraa
console.log('MRAA Version: ' + m.getVersion()); //write the mraa version to the

x = new m.I2c(0);//「0」で「I2C-6」、「1」でI2C-1っぽい
x.address(0x48);//M-06675のバスアドレス

var buff = new Buffer(2);//16ビットのバッファを用意

periodicActivity();

function periodicActivity()
{
        buff = x.read(2);
        var tmp = buff[0] * 256 + buff[1];
        console.log(Math.floor(tmp/128) + "." + Math.floor(tmp%128*100/128));
        setTimeout(periodicActivity,1000);
}

実行すると1秒毎に温度が取得できる。

実行

>node i2c.js
MRAA Version: v0.7.2
24.81
24.81
24.81
25.25
26.50
27.0
27.37
26.87
26.31
26.12
25.93
25.75
25.62


1秒周期で温度を取得する。

温度センサに指を当ててみたところ、「24.81」から上昇し、
指を離すと「27.37」から下降したので上手く温度が取得できてるはず。

2015年9月16日水曜日

【Intel Edison】Intel Edison Breakout Board KitでLチカ node.js編

Intel Edisonでnode.jsを利用してLチカをやったのでメモ

回路図はココ(C言語編と同じ)を参考。

node.jsの環境構築は初期化した際に入っていたので省略。

ソースコードはサンプルがあったのでMRAAのポートを変更するだけですんだ。

サンプルを保存して、MRAAのポートを書き換え

MRAAのポートを書き換え

var myLed = new m.Gpio(48); //J20のpin7は48番

実行する。

実行

>node Blink-IO.js


1秒周期でLチカする。

2015年8月25日火曜日

【Intel Edison】Intel Edison Breakout Board KitでLチカ C言語編

Intel EdisonでC言語を利用してLチカをやったのでメモ

回路図は前回を参考。
Intel Edisonに入れてるLinuxは「Release 2.1 Yocto* complete image」
(こっちで初期化した際にいれたやつ)

Intel作成のMRAAライブラリを利用することで
プログラミング言語からIntel EdisonのIOポートが使えるようになる。

Intel提供のLinuxをインストールしている場合は標準で入っているので
インストール手順は省略。

ココとかココとかココを参考に作ったソースがこちら


Lチカのソース
#include <stdio.h>#include <unistd.h>#include <mraa.h>
int main(int argc, char *argv[]){
// MRAAの初期化 mraa_init();
// MRAAのバージョンを出力 fprintf(stdout, "MRAA Version: %s\n", mraa_get_version());
// MRAAでGPIOとして使用するポートを初期化 // 今回は48番ポート(J20-7ピン) // echo "15" > /sys/class/gpio/export みたいなもの mraa_gpio_context gpio; gpio = mraa_gpio_init(48); if (gpio == NULL){ return 1; }
// ポートを出力に設定 if (mraa_gpio_dir(gpio, MRAA_GPIO_OUT) != MRAA_SUCCESS){ return 1; }
int i; for (i = 0; i<10; i++){ fprintf(stdout, "num: %s\n", mraa_get_version()); // echo "1" > /sys/class/gpio/gpio15/valueみたいなもの mraa_gpio_write(gpio, 1); sleep(1);
// echo "0" > /sys/class/gpio/gpio15/valueみたいなもの mraa_gpio_write(gpio, 0); sleep(1); }

// MRAAの終了処理 mraa_deinit();
return 0;}

作ったソースを今回は「test.c」という名前で保存してコンパイル&実行

コンパイル&実行

>gcc -lmraa test.c

>./a.out


「gcc -lmraa test.c」でコンパイル。
 「-lmraa」で「mraaライブラリ」をリンクするの意味。
 「./a.out」で実行。

実行した様子がこちら


とりあえず今後は他の言語でのLチカやセンサーとかをつないで見る予定。
後、ソースコードを綺麗に表示したい。

2015年8月14日金曜日

【Intel Edison】Intel Edison Breakout Board KitでLピカ

Intel EdisonでLピカをやったのでメモ

Breakout BoardのGPIOの電圧は1.8v ドライブ能力3mAらしいので、 直接LEDを繋ぐと故障の原因になるらしい。

そのため、トランジスタを利用して電流と電圧を増幅してやる必要がある。

やってみた際のメモは以下。

  1. 回路図
    1. いろいろ調べて作成した回路がこちら。
      エネループ2本を電源としてLEDへの抵抗は1.0kΩ、トランジスタのベースに繋がる抵抗は10kΩのモノを選択し、Edisonから制御のための信号を送るGPIO(汎用のIOのことらしい)は「GPIO15」を選択した。

      実際に組んでみた写真はこちら


     
  2. GPIOの設定
    1. 「/sys/class/gpio/gpio15/value」に値を書き込む事で制御できるが、起動した段階では「/sys/class/gpio/」に「gpio15」が存在しないため、以下のコマンドで追加しアウトプットとして設定してやる。

      GPIOの設定#echo "15" > /sys/class/gpio/export
      #echo "out" > /sys/class/gpio/gpio15/direction

      「echo "15" > /sys/class/gpio/export」で「gpio15」を使用すると宣言し、
      「echo "out" > /sys/class/gpio/gpio15/direction」で「gpio15」を出力として使うと宣言する。


  3. Lチカ
    1. 「/sys/class/gpio/gpio15/value」に「1」を書き込むことでON、「0」を書き込むことでOFFにすることで制御する。

      GPIOの設定#echo "1" > /sys/class/gpio/gpio15/value#echo "0" > /sys/class/gpio/gpio15/value

      「1」を書き込むとLEDが光る




とりあえず次はLチカと今回作成した回路やGPIOについてのメモをあげる予定。

2015年7月26日日曜日

Intel Edisonの強制初期化

intel edison のファームアップデートを行ったが、boot領域が少ない?らしく
起動時にsystemdのkernel modulesの起動に失敗し

  • ホストPCでUSBとしても認識しない
  • 「reboot -ota」等のコマンドが効かない
という自体に陥ってしまった時に強制的に初期化する方法


  • 環境
    • Surface Pro 3 256GB PS2-00016
      • OSはWindos8.1
      • 自作機のWindows7マシンだと「xfstkFlashTool」がエラーを吐いて失敗
    • ドライバ・ソフト等
      • Windows Standalone Driver 1.2.1 
      • Intel® Phone Flash Tool Lite
      • Release 2.1 Yocto* complete image
        • 何れもここからダウンロードしてインストール
  • 手順
  1. 環境に記載したドライバやソフトをインストール。Yoctoは解凍する。
  2. Intel® Phone Flash Tool Liteを起動
  3. 「Browse」ボタンを押下して、1で解凍したYoctoのフォルダにある「FlashEdison.json」を選択。
  4. 「Start to Flash」ボタンを押下。
  5. intel edison の接続を求められるので繋ぐ。
  6. 暫く待つと初期化が完了した旨のポップアップがでるので初期化完了。
  • memo
    • 一回目は失敗したのでもう一回やったら成功した
    • 時間は15分くらいかかった。