さっそくGenuino101を触ってみた。 セットアップからNode.jsでLチカまで。


Genuino101が発売されましたね。

http://ascii.jp/elem/000/001/137/1137117/

![](https://i.gyazo.com/ffed69a019a36ea03fa93e4b1b9601fd.png)
アスキーさんでも紹介されてます。


http://jp.rs-online.com/web/p/processor-microcontroller-development-kits/9139999/
https://www.switch-science.com/catalog/2670/

IntelのCurieっていうCPUを積んだボードです。

## スペックや特徴

* Bluetooth搭載
* 加速度センサ
* Intel Edison (Kit for Arduino)の半額以下

などなど、結構注目ですね。

以下、RSより

```
Genuino 101開発ボードの特長と利点
•Intel® Curie™マイクロコントローラ搭載
-32ビットIntel® Quark™マイクロコントローラ
-384 kBのフラッシュメモリ
-80 kB SRAM
-DSPセンサハブ
-6軸コンボセンサ、モバイルでの使用に対応するための加速度計及びジャイロスコープ付き
-Bluetooth接続(GAP、GATT、DIS)
-Windows、MAC OS X、Linuxと互換
-継続的なIntel開発が行われるリアルタイムRTOSオペレーティングシステム(2016年3月にオープンソースとして使用可能)
-Arduino IDEにアクセスして開発サポート
•デュアルコアアーキテクチャでより高速にコンパイル
•デジタルI/Oピン x 14
•アナログピン x 5
•シリアル通信とスケッチアップロード用のUSB1.1ポート x 1
•JTAGデバッグポート
•過電圧保護
•電源ジャック
•SPI信号のICSPヘッダ
•I2Cピン
•ステータスLED
-D13の緑色LED x 1
-アクティビティ用の緑色LED x 1
-電源用の緑色LED x 1
-エラー用の赤LED x 1
•寸法: 70 x 55 x 20 mm
```

## 使ってみる

* Arduino 1.6.7以上じゃないとエラーが出るみたいです。
* 僕は最新のArudino 1.6.8を使いました。
* https://www.arduino.cc/

現状ではプリインストールはされてないみたいなのでGenuino向けのパッケージを追加します。

[ツール] -> [ボード] -> [Boards Manager]を選択しましょう。 
![スクリーンショット 2016-03-25 7.26.01.png](https://qiita-image-store.s3.amazonaws.com/0/35387/e18f1092-e6cb-dd03-9cf9-117b03c3a2a6.png "スクリーンショット 2016-03-25 7.26.01.png")

Typeのプルダウンを`Arduino Certified`にし`Intel Curie Boards by Intel`の項目の`Install`を選択しましょう。
![](https://i.gyazo.com/7ca9043a3b49960232c76f2f27125c11.png)


少し時間がかかります。

![](https://i.gyazo.com/d233477fbf79f0a572380c9aec66250a.gif)

無事にインストール完了です。


[ツール] -> [ボード] -> [Adruino/Genuino 101]が追加されているので選択しましょう。

![スクリーンショット 2016-03-25 7.35.03.png](https://qiita-image-store.s3.amazonaws.com/0/35387/47936e2e-9455-cf0d-c050-4702e13d198b.png "スクリーンショット 2016-03-25 7.35.03.png")


### メモ、最初エラーが出た

僕のArduino IDEはv1.6.5でした。

![](https://i.gyazo.com/d115aa8efc3b524ba424b78a2941fb5d.png)

```
ビルドオプションが変更されました。全体をリビルドしています。
In file included from sketch_mar25a.ino:1:0:
/Users/sugawara_nobisuke/Library/Arduino15/packages/Intel/hardware/arc32/1.0.5/cores/arduino/Arduino.h:33:2: error: #error IDE version incompatible with Arduino 101. Please upgrade to version 1.6.7 or newer.
 #error IDE version incompatible with Arduino 101. Please upgrade to version 1.6.7 or newer.
  ^
コンパイル時にエラーが発生しました。
```

![](https://i.gyazo.com/d6a641b27d241b58fbdd359f903c648c.png)

ArduinoIDEのバージョンを1.6.8にあげたら治りましたよ。

## Lチカしてみよう。

まずはArduinoで。以下をコピペして実行してみましょう。

```
const int LED = 13; // LEDはデジタルピン13に接続

void setup(){
  pinMode(LED, OUTPUT); // デジタルピンを出力に設定
}

void loop(){
  digitalWrite(LED, HIGH);  // LEDを点ける
  delay(500);              // 0.5秒待つ
  digitalWrite(LED, LOW);   // LEDを消す
  delay(500);              // 0.5秒待つ
}
```

`Try pressing MASTER_RESET button`って表示がでるので、Genuinoに物理的に付いているMASTER RESETボタンを押しましょう。

すると動いてくれます。
![](https://i.gyazo.com/a2730fcb435c7b214e4b9da34ce9731f.gif)

わーい。

## johnny-fiveを使ってNode.jsからGenuino制御

[Node.jsではじめるArduinoで人感センサ制御](http://codezine.jp/article/detail/9139?p=3)を参考にFirmata書き込みをしましょう。

`StandardFirmata`ってやつです。



* Node.jsバージョン確認

```
$ node -v
v5.7.1
```

* johnny-fiveのインストール

```
$ npm i johnny-five
```

```app.js
var five = require('johnny-five');
var board = new five.Board();
board.on('ready', function () {
  var led = new five.Led(13);
  led.blink(1000);
});
```

これで実行してみましょう。

![](https://i.gyazo.com/1a0021f8f9e7caa03666039c682158d8.gif)

わーい。

これでNode.jsからLチカができましたね。
Web技術の可能性が広がるなぁ

##まとめ

今回はとりあえずGenuinoをNode.jsでLチカするところまでを紹介しました。
他のArduino系のデバイスと同じ感じかもしれませんが、今後かなり期待したいと思っているので勢いで書いてみました。

もっと使ってみたいですね。