技術書典14で新刊『マイコンさんに知らないプロトコルを喋らせる技術』を出します!

技術書典には、3からサークル参加をして新刊を出し続けています(12回目)。

当初は VS Code 関連本でしたが、ここ2回はハマっている電子工作の本を出しています。

74th.booth.pm

74th.booth.pm

今回も電子工作の本を出します。

74thの電子工作の課題意識

電子工作を楽しんでいますが、いくつか課題意識がありました。

  • NeoPixel を光らせるにも CPU で GPIO を制御しようとしても上手くいかず、そしてどうやれば上手くいくかの見当が付いていない。
  • Arduino で制御は書けるが、Arduino のサポートがないとどう書けばいいのかわからない。
  • マイコンのデータシート、レファレンスマニュアルには多くのページがあるが、その内容を読み解けるほど理解していない。
  • Timer、DMA など、マイコン特有の機能を理解していない。
  • RP2040 のプログラマブルIOは良いと聞くが、どう便利なのかわかっていない。

NeoPixel を制御したい、それだけなのに、簡単に思いつく GPIO のH/Lのセットと、delay の組み合わせでは実装できず、ならばどうやれば制御できるのか理解していませんでした。

多くのモジュールは I2C、UART をプロトコルとして持っており、それを利用するファームウェアであれば、Arduino で実装できるくらいのスキルです。しかし、I2C、UARTではないとわかった途端、マイコンにはそれ以外にも機能はあるようですが、どうやって取り組めば良いのかわかっていませんでした。

また、マイコンにはデータシートとリファレンスマニュアルがあり、多くのことが書かれています。しかし、Arduino で触るだけではこれらの内容を必要としたことがなく、一体どういうことが書かれていて、それをどのように使ったら良いのかわかっていませんでした。

RP2040のプログラマブルIOは優れているという記事をいくつか見て、良い機能なのだろうなと思っていましたが、その機能をどうやって使えば良いのかわかっていませんでした。是非使いこんでみたいとおもっていました。

これらの課題意識から、本書の執筆を通して克服し、それをフォローアップするような本を作りたいと思いました。

本書の内容

これは、NeoPixel と呼ばれたりするフルカラーLED WS2812 の制御する方法を、様々なマイコンの機能を使って紹介する内容になっています。制御の仕方の説明ですが、違うマイコンで遭っても通用するように、各機能の「概念」をわかることを目標に書いています。

制御のやり方は、最初は CPU をフル回転させて制御する所から始まり、CPUを使わずにできるマイコンの機能 DMA を使ったり、SPIを流用したりします。すこしだけですが、ESP32のRMTにも触れています。CPUフル回転のところでは、CH32V003という20円で買えるマイコンも使っています。

また、RP2040 のプログラマブルIOについては、プログラマブルIOの概念を理解できるように紹介し、実際にプログラマブルIOで実装した WS2812 の制御コードを記載しています。

なお、32ページのサクッと読めるサイズの本になっています。

目次

目次は以下の通りです。

  1. フルカラー LED の仕様
  2. CPU を使って制御する
  3. タイマーと DMA を使って制御する(STM32F103)
  4. SPI を使って制御する
  5. RP2040 の Programable IO で制御する
  6. その他の方法
    • PWM を使った方法
    • ESP32 の RMT を使った方法

本書で扱わないこと

STM32 等のマイコンの持つ DMA の機能や、タイマーの機能は多彩であり、それを全て説明するものにはなっていません。

また、NeoPixelを制御するためにアウトプットすることを目標にしており、他のモジュールからデータをインプットすることについては触れていません。

プログラマブルIOの機能も使っているのはほんの一部であり、全てを使い込んだ説明があるわけではありません。

内容のサンプルは技術書典マーケットサイトで公開中

既に技術書典のマーケットプレイスには本書の情報をアップロード済みです。 また、目次、およびサンプルページも掲載しています。

techbookfest.org

技術書典14オフラインにて

技術書典14 は 5/20(土)からですが、オフラインイベントも5/21(日)に池袋サンシャインシティ 展示ホールD(文化会館ビル2F) にて開催されます。入場無料ですが、入場券が必要です。

techbookfest.org

当日は、見た目は一緒ですが、制御方法の違うマイコンが動作する様子を展示する予定です。 ぜひ立ち読みだけでもしていただければと思います。

ブース番号は「お07」です。

利用した開発ボードもグッズとして販売予定

なお、今回利用した ProMicroサイズ開発ボードキットも、少数ですが販売予定です。是非良ければこちらも見ていってください。 (そのため、在庫確保のため一時的に Booth から引き上げています)

74th.booth.pm

74th.booth.pm

74th.booth.pm

なお、こちらはオフライン限定です。オフライン終了後に Booth に在庫を戻しますので、オンライン参加の方は5/22以降にboothより購入を検討ください(すぐ発送します!)。

お品書き

最後にお品書きを載せておきます。技術書典オフラインとオンラインではよろしくお願いします。