LoginSignup
0
0

More than 1 year has passed since last update.

ラズパイ4とcodamaの設定に苦労したIoT初心者の話

Last updated at Posted at 2021-09-03

概要

IoT初心者がcodamaを使って遊ぼうとしたら、色々つまずいて苦労した話
エラー内容に絞って以下に残します。世界平和に役立てば光栄です。

参考にすべきサイト

・codamaのオフィシャル
https://codama.ux-xu.com/
・ロボスタの紹介ページ
https://robotstart.info/2018/12/28/cidama-dev-01.html

前提

・使用機材は、RaspberryPi4(Model B Rev 1.4)
・Raspbianのバージョン:10.10

第一関門「ウェイク・アップ・ワードの録音」の勘違い

全体を通して、ジャンパーピンの抜き差しのタイミングが重要。
ロボスタのページを参考に、逐一確認すること。
※ロボスタのページは公式より写真が多くわかりやすいが、ロボスタばかり見てると、
 公式掲載のコマンドを打ち忘れるという事象が発生するので、両方見比べることが重要w

公式の「1. PCとUSB接続するマイクとして使用する場合」にて実施

録音の際、以下の場面で、USB接続を選んでしまい、
ファームウェアビルドが永遠にできずに困った。
(注記はあるが、初心者ゆえに読み違えた・・・)
「1. PCとUSB接続するマイクとして使用する場合」は「I2C」が正解
57433079-7bc72e00-7272-11e9-851b-572ccacf01ec.png

第二関門「ウェイク・アップ・ワードの動作確認」

ウェイクワードの録音が成功し、binファイルをsshでラズパイのcodamaフォルダに保存。
いざ動作確認をすべく
$ while true; do sleep 0.2s; codama_i2c KEYWORDDETECT ;done
を叩くと、
"rdwr ioctl error -1: Remote I/O error"
の無限地獄。認識されていないのでは?という疑問から
②'$ sudo i2cdetect -y 1'
を叩くと、懸念どおり何も表示されない。→全てが「--」表示
ジャンパーピンを刺して、①②を改めて実施すると
① Remote I/O errorが出ずに、「KEYWORDDETECT:0」が返ってくること
 ※ジャンパーピンありなので、ウェイクワードにはもちろん反映しない。
② i2cdetect が正しく反映されること
などから、もう一度ジャンパーピンの有無を詳細に確認のうえ、
公式とロボスタのページを見比べて、再度設定をやり直した結果、上記エラーは解消。
(具体的にどこを間違えたかは不明です。すみません)

第三関門「gpioの検知」

①そもそも公式のコマンドが間違えている

  誤)$while true; do sleep 0.2s: gpio -g read 27 ;done
公式の案内どおりに上記コマンドを入力すると、以下のエラーがエンドレスに・・・
" sleep: 無効なオプション -- 'g' "
" Try 'sleep --help' for more information. ”
かなりの時間を溶かした結果、まさかの公式コマンドが間違えていることに気付く
以下コマンドに修正し、無限エラーからは脱出
  正)$ while true; do sleep 0.2s; gpio -g read 27 ;done
※ 0.2sの次は「:」ではなく「;」が正解

②WiringPiというライブラリが古かった

無限エラーは解消したが、返ってきた値が「1 1 1 1...」
(本当は「0 0 0 0 0...」が通常。ウェイクワードに反応したときだけ「1」が正解)
gpio27がずっとhighなのか?
gpio27をどこかでいじってしまい初期値がhighになったのか?
などと意味不明な検討を重ねた結果、
$ gpio readall
を打つと以下エラーになることに気付く
“Oops - unable to determine board type... model: 17"
上記エラーを手がかりに、以下リンクに辿り着く
http://wiringpi.com/wiringpi-updated-to-2-52-for-the-raspberry-pi-4b/
※リンクの細かい内容は無視して、以下2つを実行すれば最新版にupdateできます
$ wget https://project-downloads.drogon.net/wiringpi-latest.deb
$ sudo dpkg -i wiringpi-latest.deb

$ gpio readall
で一覧表が表示されて喜ぶ
$ while true; do sleep 0.2s; gpio -g read 27 ;done
で「0 0 0」が続き、ウェイクワードに反応して「1」に変わるのを確認して歓喜。

初期設定の苦労話はここまで!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0