「日経ソフトウエア2017年11月号」のスマートスピーカー自作記事


雑誌「日経ソフトウエア2017年11月号」掲載のスマートスピーカーの自作記事ですが、「Google AIY Voice Kit」が更新されたため、記事の内容そのままでは動作しない状態になっています。その対策方法を紹介します。
Google AIY Voice Kit」のSDカードイメージは複数存在します。

・2017-05-03版:雑誌で使用したバージョン。現在、公式サイトからはダウンロードできません。
・2017-09-11版/2017-12-18版:GitHubで公開中のバージョン(https://github.com/google/aiyprojects-raspbian/releases)。修正すれば動作可能です。
・2018-01-03版:公式サイトで現在公開中のバージョン(https://aiyprojects.withgoogle.com/voice)。記事の通りには動きません。

ひととおり試してみましたが、GitHubで公開中の2017-09-11版と2017-12-18版はファイル名とコマンドを修正することで、使用することができました。

雑誌記事との大きな違いとしては、プログラムの存在するフォルダ名が違います。
雑誌掲載時:
voice-recognizer-raspi

現在:
AIY-projects-python/checkpoints
リンク先は、AIY-voice-kit-python


2017-12-18版は「/boot/config.txt」の修正する場所が記事と少し違います。2017-09-11版は記事と同じです。

Cloud関連の操作方法は記事の内容と同じです。

あと、音声認識を開始するコマンドが変更されています。
2017-05-03版(雑誌掲載時)
src/main.py

2017-09-11版/2017-12-18版
src/assistant_library_demo.py
または
src/assistant_library_with_button_demo.py
となりました。

「src/assistant_library_demo.py」を実行した場合には、ボタンを押す必要がありません。LEDやボタンの回路は不要になります。
OK Google」と言えばスタートして、「Can I help you.」と喋ります。
ためしに「What time is it now?」と言えば、時刻を喋ります。雑誌掲載時のバージョンはユーザーの言葉が文章で表示されていましたが、後のバージョンでは表示されなくなっています。

最新版の2018-01-03版はデバイスの管理方法が変わっていて、記事の内容のどおりには動きませんでした。動作しない原因も不明です。
というわけで、雑誌の内容のように使う場合にはこちらのページでSDカードのイメージを入手してください。
https://github.com/google/aiyprojects-raspbian/releases
、、、
雑誌掲載時は「Google AIY Voice Kit」の入手が難しい状態でしたが、現在は秋月電子通商などで手軽に入手できます。
http://akizukidenshi.com/catalog/g/gK-12835/

Adafruit製「RGB Dotmatrix LED」

過去に雑誌(トラ技の小冊子)の記事で使ったAdafruit製「RGBフルカラードットマトリクスLEDパネル 16x32ドット」をラズパイ用として改めて使ってみました。

同製品は秋月で3480円で売っています。カラーLEDを512個も使っていて、このお値段ですから、かなりお買い得です。

▲上の写真はAdafruitの公式サイトで公開しているArduino用のサンプルを実行した様子です。
このサンプルは1ドットあたり2バイトで格納しているので、512×2=1KのRAMを消費します。メモリを食いすぎです。
そこで、Raspberry Piを使って点灯させてみました。ラズパイだったらメモリ使い放題です。
プログラムはこちらで公開中です。端子の論理がよく分からない部分があったのですが、とりあえず動きました。

https://sites.google.com/site/yugenkaisyanico/rgbdormatrixled

▲ledtest1.pyを実行した結果です。8色の縞模様を表示します。確認用として、ディスプレイ側にも同じ画像を表示しています。
プログラミング言語Pythonです。
Pythonのスレッド処理で点灯を行っているのですが、たまにLEDがチカチカします。ラズパイで定期的な処理を実行するには、どうしたらいいんでしょうか。

▲ledtest2.pyを実行した結果。こちらはUSBゲームパッドで点を移動させて描くことができます。
ディスプレイ側の表示とUSBゲームパッドの認識にはPygameを使っています。
Pygame側の処理が重くなると、LED側がチカチカしてしまうのが難点です。

▲プログラムを書き換えると、ラズパイとドットマトリックスLEDがなくても、WindowsMacPygame環境で実行できます。

▲ledtest3.pyを実行した結果。ドットマトリックスLED用ゲームはプログラミングに手間がかかってしまのですが、こうすれば手間を減らせるのではないでしょうか。

PasocomMiniのファイルビューア

PasocomMini MZ-80Cの「ファイルビューア(FV.PRG)」をアップデートしました。
キーボードが小文字だった場合に反応しなかったので、反応するようにしました。

▲あと、拡張子が「MZT」だった場合、エミュレータで実行するようにしました。
MZTファイルは「PCM/MZ-80」側より「PCM/SB」側に置いたほうが便利なような気がします。

▲実行後の画面。この場合、エミュレータ内でキーボードを押す必要がありますので、キーボードのF12を押して切り替えます。遊び終わったら、またF12を押して画面を切り替えます。
https://sites.google.com/site/yugenkaisyanico/pcmprogram1?pli=1
こちらで公開中です。

▲SDカードの抜き差しが面倒なので、延長しました。

ベーマガイベント

ご報告が遅れましたが、1月14日開催のベーマガのイベントでスタッフをやらせて頂きました。
ベーマガ好きが有楽町に1100人集まったというだけでもう大事件ですね。知っている方も現場に居たらしいのですが、大大混雑で確認できなかったです。

▲山下伝説に新しい1ページを作ったという感じでした。

▲スタッフジャンパーです。
自分のベーマガ歴は1984年〜1990年あたりが買っていた時期。1991年〜1993年あたりがプログラム投稿した時期。2000年にベーマガでライターデビューして、2003年の休刊まで書かせて頂きました。ど素人だったのに使って頂いて感謝しかありません。

日経ソフトウエア2018年3月号

日経ソフトウエア2018年3月号」で「Pythonでゲーム開発」の特集記事とラズパイの連載記事を書かせて頂きました。
Pythonでゲーム開発」ではPygameを使ってゲームを作りました。Windows/Mac/Raspberry Piなどで動きます。




プログラムはこちら↓
https://sites.google.com/site/yugenkaisyanico/pygame

ラズパイ連載記事ではカメラを搭載したロボットを作りました。

プログラムはこちら↓
https://sites.google.com/site/yugenkaisyanico/-raspi-nikkei-software2