Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@n0bisuke

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

こんにちは、 @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入門者向けハンズオンもあるので是非きてください :)

それでは。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?