電子工作
mbed
Kindle
IoT
mbed-os

はじめてのMbed OS 5【前編】: Mbed OS 5で始めるIoTプロトタイピングの紹介と書いたワケ

最近になってセルフでKindleの本を出版しました。

はじめてのMbed OS 5【前編】: Mbed OS 5で始めるIoTプロトタイピング
Top_logo.jpg

Kindle本を書いた経緯

今まで、mbedに関する紙の本を数冊(Amazon著者ページ)書いてきましたが、Webに絡むサービスは更新が頻繁でどうしても数か月で内容が古くなってしまいます。下手をすれば本が出るころにはWebページのデザインが変わっていて、本に書いた内容と合わないこともありました。それと合わせて出版社経由で出版するとどうしても出版や増版で更新するまでに時間がかかってしまうので、変わりゆくWebサービスを扱うのは難しいものとなっています。(出版社を否定しているわけではありません)
もちろん出版社経由で出版することは著者にとって日本語の間違えを直してくれたり、販促してくれたり、世の中の需要に合うように内容をレビューしてくれたり、挿絵等も絵師さんに頼んで用意してくれたりと良いことがたくさんあります。

だがしかし

どうしても動的に更新に追いつけないのです・・。

いまだに2011年に初めて出版した本がAmazonのカテゴリ別ランキングで1位になるのが不思議です・・。
(内容的には数世代前のWebページのイメージで解説されています。そこらへん、買ってくれた方にはもうしわけなく・・。)

ということで1日あればに出版ができる且つ電子書籍で更新もすぐできるAmazonのKindleでの出版をすることになりました。

Kindle本の出版の仕方

出版の仕方はWebにたくさん情報が出ているので多くは語りません。
とにかく簡単です。執筆が済んでいれば、出版の準備に半日かからず、Amazon KDPの審査が通るまでに1日ぐらい。すぐに出版することができます。
執筆の方法はいくつかありますが、Amazon KDPの場合はさまざまなフォーマットで記事をアップロードすることができます。その結果、Kindleで読める形に自動変換してくれます。
私の場合は、まずMarkdownでテキストファイルに書いてそれをMS Wordに変換し、体裁を整えてからAmazon KDPにアップロードしました。そうするとWordからKindle形式に変換してくれます。若干フォームが変わってしまうので、プレビューを見ながら微調整しました。

価格の根拠

一番悩ましいのが本の価格です。セルフ出版なので価格を決めるのは自分次第です。
0~100円とかかなり価格を低くしても良いですが、さまざまな資料を見つつ、実験しながら自分の時間を使って書いているので、そこを付加価値として加えるのは当然です。とはいえ高すぎてもだれも買ってくれないので、それなりの価格にする必要があると思います。
今回書いた本の価格は本を書くために使った工数と予測販売数から1000円と決めました。
セルフで出版されているKindle本の中では高価な方に入ります。ただ、本の内容からそれなりの数は出ると思ったからです。ある一定以上売れれば元は回収できますし、それ以上売れれば儲けとなります。
(出版してから一か月、予測販売数には達していないため、販促のためこの記事を書いてますw)

本の内容

本の題材はMbed OS 5です。
そもそもMbedとはマイコン向けのプログラミングがブラウザ上で行えるサービスで、開発環境がオンラインでも用意されています。導入が簡単なオンライン開発からデバッグも行えるオフライン環境、本格的な開発が行える製品版の開発環境まで、プロトタイピングから製品開発まで用途に応じてシームレスに移行できるようになっている仕組みです。
Mbed OS 5とはarm社のマイクロコントローラ向けのアーキテクチャを使用したマイコン上で動作するコンパクトなOSで、IoTを意識して作られてます。
WindowsやmacOS、Linux等のOSとはかなり違うイメージのOSです。標準ではGUIやCUI等もありません。OSと言ってもリアルタイムスレッドや通信、IO等APIを集合したフレームワークに近いです。
使い方も一般的なOSと異なるので、解説が必要だと思い、執筆しました。
ただの解説本ではつまらないので、初めて扱う方でも簡単に導入することができる且つIoTに向けたプロトタイピング⇒製品化が行えるように意識して書きました。
コンパクトなOSと言えど、一般的では無い知識が必要となるため、前編後編に分けて出版することにしました。

前編の目次

前編の目次は次のようになっています。

〇はじめに
 導入部分です。
〇Mbedとは
 そもそもMbedとはを書いてます。
〇Mbed OSとは
 Mbedを知ったうえで、Mbed OSの立ち位置を書いてます。
〇Mbedプラットフォームを使ったオンライン開発手順
 オンライン開発環境の扱い方を解説しています。
〇リポジトリを理解する
 オンライン開発環境におけるリポジトリについて解説しています。
〇プログラム(リポジトリ)をパブリッシュする
 ソースコードを全世界に公開する方法を解説しています。
〇C++の話
 Mbedの開発言語であるC++について、クラス等の機能の解説をしています。
〇オフライン開発手順
 オフライン開発環境の扱い方を解説しています。
〇オフライン開発環境でプログラムをテストする
 オフライン開発環境に置いて、プログラムの自動テスト方法について解説しています。
〇エディタの話
 ソースコードを書くためのエディタの紹介をしています。
〇マイコンプログラミングの予備知識
 マイコンプログラミングなりの予備知識を紹介しています。
〇セクションの話
 マイコンプログラミングにおけるセクションについて解説しています。
〇Mbed OS 5 タスクマネージメントAPIを使用する
 Mbed OS 5のタスクマネージメントAPIの使用方法を解説しています。
〇デバッグ方法
 マイコンのデバッグ方法について紹介しています。
〇Mbed OS5 IoTエッジデバイスのプロトタイピング
 Mbedを使ったプロトタイピングの実例の手順を紹介しています。
〇部品の入手先
 プロトタイピングに使う部品の入手先について紹介しています。

後編の目次

後編は2017年11月中の出版を目指して執筆中です。
Top_logo.jpg

まだ確定ではありませんが、目次は次の予定です。

IoTエッジデバイスプロトタイピング
 アップロードしたデータの取り扱い方法
  enebularの紹介
  Infomorsionの紹介
 センサー追加
 製品化への対応方法
 異常処理の追加
 デバック環境を整える
 MDK ARMに移行
Mbed OS 5の詳細
 フォルダ構成
 ブートストラップシーケンス
Mbed OS 5 APIリファレンス
Mbed コミュニティの紹介

最後に

Mbed OS 5の後編が書き終わったら、近々一般公開される予定のIoT向けサービスであるMbed Cloudについての本を執筆したいと思います。
ご興味あれば、まずははじめてのMbed OS 5【前編】: Mbed OS 5で始めるIoTプロトタイピング」をよろしくお願いします。