マナティ

発売直後からSNSで話題沸騰! 『基礎から学ぶ 組込みRust』

今回は技術書の中でもなかなか珍しい組込み開発の技術書をご紹介します。使用言語は組込み開発では定番のCでもC++でもなく…なんとRust!
普段はC++で組込み開発しているという方も、これから組込みをやってみたい方にも、ぜひお手に取っていただきたい一冊です。

はじめに

発売直後からSNSで話題沸騰中!『基礎から学ぶ組込みRust』をちょっとだけ紹介します!

どんな本?

組込み開発をRustを使って学ぶ書籍です。組込み開発を始めるために必要な機器や学ぶべき言語の仕様を一通り解説します。

どんな人におすすめ?

・組込み開発に興味がある方
・すでにC++を使って開発しているエンジニア
・とにかく新しい技術が大好きな方
・GW中めちゃくちゃ暇な方

組込み未経験でも大丈夫! 環境構築から基本的なRustの言語機能までしっかり解説

組込み開発を始めるのに必要な機器と使用方法がわかる

Manateeを普段からご利用いただいている方でも、アプリの開発は業務や趣味でよくやるけど組込み開発は未経験という方は多いのではないでしょうか。
たとえばWebアプリの開発なら、パソコンさえあればあとは言語をインストールして、必要ならnpmなどのパッケージマネージャを使ってフレームワークやライブラリをインストールすれば大体は始められます。ブラウザで手軽に実行できるサービスもたくさんありますよね。
しかし、組込みとなると組込む機器を用意して使用方法を覚える必要があります。
もちろん、本書では必要になるデバイスをすべて指定しています。機器の取り扱い方もバッチリ解説しているので初心者でも安心して始めることができます。
下記のリンクに本書を学ぶのに必要な機器をすべてまとめてみました。気になった方は是非とも本書とともに購入をご検討ください。

・Wio Tarminal
https://www.amazon.co.jp/dp/B08CHBV88D/
・DSD TECH SH-U09C USB
https://www.amazon.co.jp/dp/B07TXVRQ7V/
・ジャンパワイヤ(オス~オス)
https://www.amazon.co.jp/dp/B009ALH0H6/

Rustが初めてでも安心 基本的な言語機能を解説

もちろん、必要な機器だけ買っても開発はできません。本書では開発を始めるにあたり学んでおきたいRustの基本的な機能をまとめて解説しています。
内容は文字列を画面に表示する、分岐や繰り返しをする、といったどのプログラミング言語も備えている基本的なものから、Rust特有の機能まで幅広く取り扱っているので、ほかのプログラミング言語の経験はあってもRustはまったく触ったことがないという方でも始めることができます。
特に、所有権システムはRustで開発するうえで重要なのでしっかり読み込んでみてください。たとえば、Rustをブラウザで実行できるRust Playground(https://play.rust-lang.org/)で次のようにコードを書いて実行すると所有権の問題でコンパイルエラーになります。
struct Sensor {
    active: bool,
    latest: u32,
}
impl Sensor {
    fn new() -> Sensor {
        Sensor {
            active: false,
            latest: 0,
        }
    }
}

fn use_sensor(s: Sensor) {
    println!("latest = {}", s.latest);
}

fn main() {
    let sensor = Sensor::new();
    use_sensor(sensor);
    println!("latest = {}", sensor.latest);
}

これは、所有権を理解してuse_sensor関数とmain関数を次のように書き直すとコンパイルが通り、実行できます。
fn use_sensor(s: &Sensor) {
    println!("latest = {}", s.latest);
}
fn main() {
    let sensor = Sensor::new();
    use_sensor(&sensor);
    println!("latest = {}", sensor.latest);
}

比べてみるとuse_sensor関数の宣言と呼び出しの引数に&がついただけのように見えます。この&の意味は? そして、所有権システムは組込み開発においてどのような意味があるのか?
もちろん、本書でちゃんと解説しているので、気になった方はぜひお手に取ってみてください。

Wio Terminalに搭載されているデバイスを実際に動かしながらデバイスの制御を学べる

機器を用意して、言語も勉強したらいよいよWio Tarminalを使って楽しい組込み開発の始まりです!
Wio TarminalはLEDやディスプレイ、珍しいところで加速度センサや光センサなどさまざまなデバイスを搭載しているのでこれらを一つ一つRustで動かしながらデバイスを制御する方法を学べます。
本書でもっとも楽しいパートではないでしょうか。自由にLEDを光らせてみたり音を鳴らしてみたりしてください。
ソースコードだけではなく、回路図や動作原理まで解説しているので、Rustの書き方だけではなくデバイス自体への理解も深まります。
本書を最後まで読み終われば、機能を組み合わせていくつかのアプリケーションを作成することができます。
本書の中でも特に丁寧に一つずつ試してみていただきたいパートです。

まとめ

本書はRustを使用した組込み開発を基礎から丁寧に学べる一冊です。
アプリ開発はやってるけど組込みはよくわからない、という方でも普段はC++を使って組込み開発をしているという方でもじゅうぶんに理解できる内容になっています。
気になった方は、ぜひ以下のリンクから購入をご検討ください。

こちらもおすすめ

残念ながら、Manateeでは『基礎から学ぶ 組込みRust』以外にRustを取り扱っている書籍はありません。
そのため、書いてある内容をRustに読み替えて使える書籍をいくつかご紹介します。この記事をきっかけにRustや組込み開発にご興味をお持ちいただけたなら、一度目を通していただけると幸いです。

著者プロフィール