2010年代の振り返り

2010年代も今日で終わり、ということで2010年代を振り返ってみようと思います。

TL;DR

2011 Mac
2012 Raspberry Pi
2013 enchantMOON?
2014 Petit Computer
2015 ESP8266
2016 Arduboy
2017 ESP32, MicroPython
2018 MicroPython on bare-metal Raspberry Pi
2019 Deep learning and Edge AI

一年ごとの振り返り

このブログを開設したのは2011年でした。年が明けたら10年目に突入です。
それ以前にも似たようなブログを2006-2009年ごろまで開設していたのですが、更新しないまま間があいてしまったこともあり、心機一転で新たに作ったのがこのブログです。

2011年の開設当時はMacbook Airを買ったばかりで、MacのアプリやiOSのアプリを作ってみようか、と考えていましたが、結局そこまで至らず。ちなみにこのMacbook Airは、今年の夏ごろに実家と行き来する途中、どこかに置き忘れて無くしてしまいました。

2012年、初代Raspberry Piを入手。インターネットに直接つながり、ストレージはSDカードでLinuxが動く。それだけなら他にも同様のハードウェアはありましたが、HDMIディスプレイに接続できるボードは当時唯一無二でした。昔組み込みLinuxを作ったりしていたこともあり、すぐ馴染んでしばらく使い込みました。

Raspberry Piでのビデオ再生
Raspberry Piのハードウェアで特徴的なのが、3DグラフィックスとHD動画再生支援の機能を持つGPUが搭載されている点です。早速、この動画再生の機能を試してみました。Raspberry Pi用のメディアプレーヤーソフト「omxp...

2013年になると、Raspbianいじりには飽きて、ちょっとキワモノっぽい端末enchantMoonに手を出しますが、結局それほど夢中にはなれず、放置。enchantMoonは今もまだ押入れの隅にあります。ちなみにこの年の年末に購入したマウスコンピュータのCore i7ノートPCが、現在もメインで使っている開発用マシンになります。もう丸6年使い続けています。

2014年、年末になってNintendo 3DSを買って「プチコン3号」を使い始めます。自分史上、初の「通勤電車で立ったままプログラミングができる端末」でした。プチコン3号の記事には、未だに結構アクセスがあります。Nintendo 3DSは「ネットにつながって非Linuxでディスプレイが映るハードウェア」としてとても優れた製品だったと思います。

プチコン3号 28日目 擬似3D(5) 隠面消去
前回、ワイヤーフレームで3D空間を表現しましたが、今回からは11日目で作成した迷路探検ゲームの3D版を作ってみます。 プチコン3号 11日目 当たり判定を追加して迷路探検ゲーム完成!: 楽しくやろう。 前回のプログラムでは、...

2015年の5月ごろまでプチコン3号をいじっていましたが、ある程度やりつくした感もあり、またBASICの不自由さに嫌気がさしてきたこともあり終了。代わりに、Arduinoを使い始めました。当初はAVR版の標準のArduinoを使っていましたが、夏休みにESP8266へスイッチ。この頃、世の中はIoTブームが始まっていたこともあり、単体でWiFi接続できる安価なマイコンは魅力的に映りました。

ESP8266版Arduinoでネットから情報を取ってきてLCDに表示する
前回、ESP8266でキャラクタ液晶を制御できましたので、ESP8266ならではのWiFi機能を使い、インターネットから情報を取得して表示させてみます。 何か動的な情報で、16字×2行のアルファベットで表示できるもの、ということで、最...

2016年になると、ESP8266のハード的な限界も見え、夏休みに入手したArduboyに一時浮気します。GitHubも使い始めました。Arduboyのために作った「picovaders」は個人的には思い入れがある作品です。ちなみにArduboyはバッテリが膨らんでしまって、今はもう使っていません。

インベーダーゲームを作ってみる(1)どんなゲームだったのか
先日MFT2016で購入したArduboyですが、作ったゲームがブロック崩しの移植だけでは寂しいので、Arduboyをターゲットにしたインベーダーゲームを作ってみました。 もう一応完成していて、コードは以下のGitHubで公開していま...
FM音源をArduboyで動かしてみた
先々週、PWMを使ったシンセサイザをArduboyに移植しましたが、その記事の中でも触れたpcm1723さんの「FMMelody」をArduboyで動かしてみました。 基本的にはタイマー周りの設定をしてあげるだけで動作しました...
ArduboyでのPWMサウンド出力
Arduinoのライブラリには標準でtone命令が用意されていますが、一定音量の矩形波しか出せません。 PWM(パルス幅変調)を使うと、アナログ波形を出力することができるので、より多彩な音を出すことができます。 I/Oピンからは1か0の...

2017年にはESP8266の後継としてESP32が登場。早速入手して使い始めました。しかし、この年の夏はRolandの古いアナログシンセサイザー「αJuno-2」の修理と解析に手を染めてしまいます。アナログシンセサイザー好きなんです・・・。それが一段落すると、MicroPythonを使い始めました。MicroPythonのメインターゲットがSTM32だったため、STM32ボードもいろいろ入手。この年の冬にはNucleo-F767ZIでMicroPython上でイーサネットを動作させることに成功しました。

ESP32-DevKitC
秋月電子の前を通ったら、ESP-32の開発ボードが売られているのが目に留まり、買ってみました。 ESP32-DevKitC ESP-WROOM-32開発ボード: 無線、高周波関連商品 秋月電子通商 電子部品 ネット通販 なんと、たま...
Roland αJunoのDCO(1)
Roland αJunoの最大の特徴をひとつ挙げるとすると、DCOになると思います。 JunoシリーズはJuno-6、Juno-60、Juno-106、αJunoの4シリーズですが、すべて「6音ポリ」「1DCO/Voice」という仕様...
NUCLEO-F767ZIのMicroPython用Ethernetドライバが動きました
先日着手したNUCLEO-F767ZIのオンボードイーサネットをMicroPythonで動かすためのドライバですが、ようやく動きました。 少しコードを整理したら公開する予定です。 途中で少しデバッグに苦労しましたが、基本的には自分の...

2018年、ベアメタルのRaspberry PiへのMicroPythonの移植に取り組みます。前年末にNaumsさんがインタープリター自体は動作させていたので、ハードウェアをサポートする各種クラスの整備が主なタスクです。USB、I2C、SPIなどのペリフェラルを直接叩いて動作確認してはMicroPythonのクラスを実装していきました。最終的にそこそこ動作するものができ、MicroPythonそのものにも結構詳しくなれました。

ベアメタルRaspberry Pi版MicroPythonにREPLを追加してみました
先日書いた、ベアメタルRaspberry Piで動作するMicroPythonですが、このままだと対話的に使用することができないので、REPLを使えるように改造してみました。 改造にあたっては、以前紹介したunicorn用MicroP...
Initial Release: MicroPython for bare metal Raspberry Pi Zero
ベアメタルRaspberry Pi Zero/Zero W用のMicroPythonのコンパイル済みバイナリを以下で公開しました。 Release Initial Release · boochow/micropython-raspb...

2019年の振り返りは別記事で書いたので省略しますが、キーワード的には「マイコンでディープラーニング」ですね。

こうしてみると、ここ5年くらいで「インターネットにつながるマイコン」が実用上十分なパワーを持ってきたことを今更ながら強く感じます。それまでは、インターネット接続できる組み込み機器というのはほぼ組み込みLinuxだったのですが、そうではないものが普通に市民権を得始めてきました。実際、商品としてもAmazon Echoを始めとする様々な機器が登場してきました。

さらに、そこへ機械学習モデルを使った推論機能が加わりつつあります。エッジAIと言われていますが、これが今後の組み込み系システムを進化させる大きな推進力になっていくように思います。

いつでも、新たな可能性を見究めるのは個々人の「面白いものを感じ取るアンテナ」です。
2020年代も引き続き「楽しくやろう」の気持ちで活動を続けていきたいと思います。

コメント