RustでTessel2のLチカをしてみる #rust_jp

  • 3
    Like
  • 0
    Comment

こんにちは、 @n0bisukeです。 IoTLTというイベントをやってます。

今日はアドベントカレンダーということで、Rustな人にIoT周り布教の意味合いもこめて、Rustを使いつつTesselの紹介っぽい記事を書きます。

Tesselとは

Node.jsで制御可能なIoTプロトタイピングボードです。現行のTessel2になってからRustに対応しました。

Webの人が電子工作するならめちゃアツいです。

今回はRustでTessel2のLチカを試してみます。

環境

  • macOS Sierra
  • Node.js 7.2.0
  • Rust 1.12.0

もろもろ準備

Node.jsのインストール

いまアツいJavaScript!ゼロから始めるNode.js入門〜5分で環境構築編〜などを元にインストールします。

npmコマンドが使えるようになればOKです。

$ npm -v
3.10.9

Rustのインストール

Rustをインストールします。

curl -sSf https://static.rust-lang.org/rustup.sh | sh

これでcargoコマンドrustcコマンドが使えるようになります。

$ rustc -V
rustc 1.12.0 (3191fbae9 2016-09-23)

※ちなみに今(2016/12/17現在)だとRustは1.13が最新です

t2コマンドとSDKのインストール

t2はnpm経由でインストール出来ます。

$ npm install -g t2-cli

t2コマンドが使えるようになります。

次にcargo経由でtesselのRustSDKをインストールします。

$ cargo tessel sdk install

これで準備OKです。

Lチカする

プロジェクトの準備

t2コマンドでひな形を作成します。

$ t2 init --lang=rust
INFO Initialized Cargo project...
INFO Wrote "Hello World" to /Users/n0bisuke/dotstudio/1_blogsamplecode/dotstudio/tessel/rust/ledblink/src/main.rs

Cargo.tomlsrcディレクトリが生成されます。

$ ls
Cargo.toml src

lsすると分かりますが、Cargo.tomlsrcディレクトリが作成されます。
srcディレクトリ内にはmain.rsが生成されています。

この状態でt2 run blinkyを実行するとLチカができます。

$ t2 run blinky

INFO Looking for your Tessel...
INFO Connected to Tessel-xxxxxxxxxxxxx.
    Updating registry `https://github.com/rust-lang/crates.io-index`
   Compiling libc v0.2.18
   Compiling cfg-if v0.1.0
   Compiling unix_socket v0.5.0
   Compiling tessel v0.2.0
   Compiling blinky v0.0.1 (file:///Users/n0bisuke/dotstudio/1_blogsamplecode/dotstudio/tessel/rust/rust-sample)
    Finished release [optimized] target(s) in 3.64 secs
INFO Writing project to RAM on Tessel-02A3809D2F8B (338.432 kB)...
INFO Deployed.
INFO Running blinky...
I'm blinking! (Press CTRL + C to stop)

これでLチカできました!

※画像はGoogle画像検索のキャプチャです

実際にはTessel2はまだ技適問題などもあるので、「Tessel2でLチカを試す」にもあるように電波暗室などで試しましょう。

おわりに

けっこう簡単に出来ました :thumbsup:

Rust版のTesselコードはあまりまだ活発ではないみたいです。公式サイト側だとチュートリアルなどが整ってないのでtessel-rustのGitHubページを見にいくのがいいと思います。

Rustも書いてて楽しいのでTessel触りながらRust勉強とか面白いかもしれません。

2017/1/15にRust入門者向けハンズオンもあるので是非きてください :)

それでは。

This post is the No.17 article of Rust Advent Calendar 2016