Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

shellでTDDするshunit2 その1:とりあえず導入

シェルコマンド は思いついた事をすぐ実装できる手軽さ、移植性が高いなどのメリットがある反面、
多人数開発という観点ではあまり嬉しくない状況がありました。

そんなお困りごとはTDDで解決!
一時ほど聞かなくなりましたが、それでもテストの重要性は今尚知られている事実です。
……やっつけ仕事だと思うと、つい流したくなりますけどね……。

実際のところ

では、早速shunit2を導入します。
macOSでもDebian系でもあるようです。
名の通ったツールなので、導入はパッケージ導入コマンドで一発。

$ apt install shunit2

つかってみる

導入した状態で、いかのようなファイルを

#! /bin/sh
# file: examples/testsample.sh

testEquality() {
  assertEquals 1 1
}

# Load shUnit2.
. shunit2
$ ./testsample.sh 
testEquality

Ran 1 test.

OK

参考もと

github.com

【読書メモ】超特急Web接続!ESPマイコン・プログラム全集

みんな大好きWiFi接続可能な超高性能マイコンESP32の特集ムックです。
出版元はCQ出版なので実装内容は安心です。

部品面では、音声合成のAquesTalkがあったりカメラが、
外部サービスではBlynkやIFTTTがあったり応用も充実している上、
最終的にはこれらをネットワークで結ぶなんて事もやっています。
一通り理解しながらやれば、室内完結レベルのシステムは十分独力で作る事ができそうです。

ただ……特にESP32は電力供給周りが中々"アレ"な事になっているので注意が必要です。
電力供給側は安定かつ大容量であるよう設計しておいてくださいね……。
公式は瞬間最大350mとか言ってますが、これは正直信用しちゃいけません。
倍くらいとっておきましょう。

【読書メモ】まるわかり! IoTビジネス2019 50の厳選事例

日経新聞系のIoT事例を紹介してるムックです。

読者層は経営者や管理者を想定しているようで、実装よりの話はあまり出てきません。
コストインパクトだとか利便性、セキュリティの話題が中心ですね。

決済担当向け営業資料なんかで事例紹介するときにはとても有用そうです。
逆に実装側からみると、「あれ、こんなもん?」みたいな話題が結構あったりします。

通貨表示を固定するYEN関数/DOLLER関数

実際のところ

YEN関数は言語/地域設定している国の通過……日本だと日本円の読みかえがされます。
また、出力は文字列扱いになるので、足し算ができません。

=YEN(1500, 0)

ですと、"¥1,500"
f:id:shuzo_kino:20190126000252p:plain

=YEN(1500, -3)

ですと四捨五入で"¥2,000"となります。
f:id:shuzo_kino:20190126000311p:plain

RasPiでGUI/CUI起動の切り替え

実際のところ

GUI環境つきのでインストールしている前提です。
Raspbian Liteなどではデスクトップ環境が入っていなかったりするので、その際は別途導入してください。

CLI => GUI

単純にstartxを起動するだけ。

$ startx

GUI => CLI

$ sudo raspi-config

例のごとくメニューがでるので、"Enable Boot to Desktop/Scratch"の"Desktop Log in as user ‘pi’ at the graphical desktop (default) "を選択。
再起動すると、CLI起動になる……はず。

$ sudo reboot

設定できないとき

SDカードを別の端末で読み込み、boot領域を確認。

Groveシステムのモジュールを使って楽にプロトタイピングする

GroveシステムはMaker系の人がプロトタイピングでよく使うコネクタ規格です。
wiki.seeedstudio.com



シンプルな4本線で「アナログ」「デジタル」「UART」「I2C」を扱うという豪快な仕様。
電源電圧や実際に繋ぐ種類はユーザーが判断しろって事のようです……俠気!

開発元のseedstudioから色々でており、温度センサーやカメラ、サーボモーターといった定番から
面白いとこだとRTCモジュールがあります。
wiki.seeedstudio.com


先述のようにmakerサイドからの支持が熱いようで最近ですとM5 Stackという格好いいガジェット*1もコネクタを持っていたり、
あるいはDobot Magician*2というロボットアームにも採用されていたりします。

*1:esp32内蔵、USB-Cコネクタ、ArduinoまたはmicroPythonで開発

*2:4軸でお手軽価格