[電子工作]GS-0003:Maix Bit用スピーカーシステムA.I.やMicroPythonの学習に最適価格:
|
項目 |
仕様 |
プロセッサ |
非搭載 別途、Sipeed社のMaix Bitを購入し、装着下さい。 |
インタフェース |
非搭載 Maix Bitに搭載しているインタフェースをご使用下さい。 |
表示機能 |
非搭載 Maix Bit用の2.4型LCDパネルをご使用下さい。 |
キー入力 |
4方向スイッチ(プッシュスイッチは未接続) ボタン:3個+2個 |
サウンド |
DAC:PT8211、16bit、ステレオ、I2S接続 アンプ:LM386(又は互換品) 30mmスピーカー(8Ω、0.15W):2個 周波数は、1200ー5000Hz 可変抵抗により音量調節可能 低音は出ませんので、良い音で聞きたい場合は、別途イヤホン、ヘッドホン、スピーカを 接続下さい。 イヤホンジャック:3.5mm、ステレオ、3極、スピーカー/イヤホン切り替え |
電源 |
非搭載 Maix BitのUSB Type-Cコネクタから供給可能 外部電源を半田付け可能(4.8ー6Vの入力を推奨) |
サイズ |
152mm×71mm、厚み約25mm |
その他 |
Sipeed社のMaix Bit Suit(液晶・カメラ付き)が別途必要 Arduino IDEが動作する環境が別途必要(Windowsマシン、MacOS、Linux、RaspberryPiなど) Kendryte SDKも使用可能 USB Micro-Bと接続するためのケーブルが別途必要 |
Sipeed社のMaix Bit、液晶パネル、カメラの装着例
注意.Sipeed社のMaix Bit、液晶パネル、カメラは付属しません。別途購入する必要があります。
(1)ファームウェア書き換えソフトのインストール
ファームウェアの書き換えや学習データを書き込むため、最初にK-Flash又はKflash_guiを
インストール。Pythonの環境を持つPCなら、次のコマンドでインストール可能。(私はこれ)
>>pip3 install kflash 又は >>pip install kflash
*.binや*.kfpkgをコマンドラインから書き込む方法は次の通り。GUIはネットで探して下さい。
Windows >>kflash -p COM3 -b 115200 ???.bin
Linux >>kflash -p /dev/ttyUSB0 -b 1500000 ???.bin
注意.ポート名は、環境に合わせて変更すること。
注意.Linuxで/dev/ttyUSB0にアクセスできない場合、次のコマンドを実行して、再起動。
>>sudo usermod -a -G dialout $USER
(2)Arduino IDEのインストール
まず、Arduino IDEをインストールしてください。
その後、ファイルー環境設定の追加のボードマネージャのURLに
http://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_index.json
を追加し、ツールーボードのボードマネージャで「maix」等で検索し、インストールします。詳細はこちら。
その後、ツールを次のように設定下さい。
(Linuxで書き込めない場合は、>>sudo apt install python3-serial もお試し下さい。)
ボード:Sipeed Maix Bit-Mic Board
シリアルポート:Maix Bitが繋がっているポートを選択(2つポートが出るので試行下さい)
書込装置:k-flash
で、いきなりバグや注意点があります!
1.少なくとも、2020年2月の段階で、カメラを使ったサンプルを実行すると、エラーで
停止します。原因は、OV2640のライブラリのファイルのタイプミス!
対策方法は次の通り。
Windowsの場合、
C:\Users\xxxxx\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\libraries\Sipeed_OV2640\src
Linuxの場合、
~/.arduino15/packages\Maixduino\hardware\k210\0.3.11\libraries\Sipeed_OV2640\src
にある、「Sipeed_OV2640.cpp」と「Sipeed_OV2640.h」にタイプミスがあり、それぞれ1箇所ずつ、
setRotaion→setRotation に書き換えてください。これで、問題なくコンパイルできます。
しかし、4ヶ月もこのまま、っていうのはどうしたものか...
2.SpeechRecognitionのサンプルを実行しても、音が全く取れません。原因は、
Maix BitのMEMSマイクはL/R=VDD、他のボードはL/R=GND。つまり、右の音と左の音が
Maix Bitは他のボードと逆になっているため。
対策は次の通り。
Windowsの場合、
C:\Users\xxxxx\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\libraries\Maix_Speech_Recognition\src
Linuxの場合、
~/.arduino15/packages\Maixduino\hardware\k210\0.3.11\libraries\Maix_Speech_Recognition\src
にある、「Maix_Speech_Recognition.cpp」で、g_rx_dma_buf[2 * i]→g_rx_dma_buf[2 * i + 1]
に2箇所変更下さい。
ついでに、speeking→speaking に直しておくと、他の人に見せる時に恥ずかしくないかも...
(3)Kendryte SDKのインストール
・Ubuntuでバイナリをそのままダウンロードする場合
>>wget http://dl.cdn.sipeed.com/kendryte-toolchain-ubuntu-amd64-8.2.0-20190409.tar.xz
>>sudo tar -Jxvf kendryte-toolchain-ubuntu-amd64-8.2.0-20190409.tar.xz -C /opt
・Linuxでコンパイルし直す場合
>>sudo apt install gawk
>>sudo mkdir /opt/kendryte-toolchain
>>sudo chmod 777 /opt/kendryte-toolchain
>>git clone --recursive https://github.com/kendryte/kendryte-gnu-toolchain
>>cd kendryte-gnu-toolchain
>>git submodule update --init --recursive
>>sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
>>./configure --prefix=/opt/kendryte-toolchain --with-cmodel=medany --with-arch=rv64imafc --with-abi=lp64f
>>make -j8
・サンプルコードのコンパイル
1.kendryte-standalone-sdkをダウンロードし、適当なフォルダーに展開する。
>>unzip kendryte-standalone-sdk-0.5.6.zip
2.次の手順で、サンプルのhello_worldがコンパイルできます。
>>cd kendryte-standalone-sdk-0.5.6
>>mkdir build
>>cd build
>>cmake ../ -DPROJ=hello_world -DTOOLCHAIN=/opt/kendryte-toolchain/bin
>>make
3.バイナリをMaixに書き込む
>>kflash -p /dev/ttyUSB0 -b 1500000 hello_world.bin
このプログラムの場合、「screen /dev/ttyUSB0 115200」等でシリアルモニタしてresetボタンを
押すと、次のようなメッセージが出力される。
Core 0 Hello world
Core 1 Hello world
4.その他のサンプルはここからダウンロードし、kendryte-standalone-sdkの中のsrcフォルダにコピー
すれば、hello_worldと同等にコンパイル可能です。シリアルポートやLCDを使用するものはそのまま
動作しました。しかし、カメラ、SDカード、I2S等を使用するサンプルは端子番号を直接設定しており
Maix Bitでは端子番号を変更する必要がありますので、ご注意下さい。Maix Bitの回路図をダウン
ロードし、それを見ながら変更しましたが、サンプル毎にやり方が異なるので結構面倒でした。
説明:Sipeed社のMaixシリーズで動作するMicro Pythonです。Pythonで書かれたプログラムを実行
できるだけでなく、動画再生、WAV再生、A.I.処理、NESエミュレータ(詳細はネットで調べて下さい)
なども可能です。詳細は、こちらをご覧ください。
本GS0003ボードと接続することで、次のようなことが可能となります。
・動画再生やWAV再生時に、音をステレオで聴くことが可能です。(あのbadappleも音楽付きで再生!)
・4方向キーやボタンで、NESエミュレータを操作できます。
実行方法:下記の「maixpy.bin」をダウンロードし、次のコマンドでMaix Bitにプログラムを書き込んで下さい。
>>kflash -p /dev/ttyUSB0 -b 1500000 maixpy.bin や >>kflash -p COM3 -b 115200 maixpy.bin
NESエミュレータ:NESエミュレータを実行する時は、次のようなPythonプログラムを実行下さい。これで、音付きで
4方向キー、ボタンで操作できます。なお、「*.nes」は各自入手し、MicroSDカードに書き込んで下さい。
import nes, lcd AUDIO_PA_EN_PIN = 32 lcd.init(freq=15000000) nes.init(2, vol=3) nes.run("/sd/mario.nes") |
カメラの使い方:MaixBitをGS0003に装着し、カメラの映像を写すと上下逆になると思います。
その場合は、下記のプログラムを参考に、sensorの設定を変更してお使い下さい。
import sensor import image import lcd lcd.init() sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_hmirror(1) sensor.set_vflip(1) sensor.run(1) sensor.skip_frames(30) while True: img = sensor.snapshot() lcd.display(img) |
説明:私が作成したプログラムを書き込むことで、MDファイル(容量は512KB以下。それを越えるファイル
は再生できません。)を音楽付きで実行でき、4方向キーやボタンで操作可能です。
GenesisエミュレータやMDファイルについては、私から説明できません。
お持ちのMDファイル(512KB以下)を下記のように名前を変えて、MicroSDに書き込み、電源を
入れ直すか、リセットボタンを押した後、各キーを押すと、そのファイルがロードされ実行されます。
A.MD : Aボタンを押すと実行
B.MD : Bボタンを押すと実行
C.MD : Cボタンを押すと実行
UP.MD : 4方向キーを上にすると実行
DOWN.MD : 4方向キーを下にすると実行
LEFT.MD : 4方向キーを左にすると実行
RIGHT.MD : 4方向キーを右にすると実行
MODE.MD : MODEボタンを押すと実行
START.MD : STARTボタンを押すと実行
実行方法:下記の「genplus.bin」をダウンロードし、次のコマンドでMaix Bitにプログラムを書き込んで下さい。
>>kflash -p /dev/ttyUSB0 -b 1500000 genplus.bin や >>kflash -p COM3 -b 115200 genplus.bin
説明:私がArduino IDEで作成したサウンドプレイヤ(WAVファイルの再生ソフト)です。対応しているのは、
22.05KHz以下の非圧縮のWAVファイルのみです。(Arduinoのライブラリを使うと、22.05KHzが限界
のようです。)
私は、Audacity(Windows版とLinux版があります)というソフトで、ネットの音楽を録音したり、
MP3ファイルを読み込み、22050Hzに変換して、WAVファイルで保存しています。
なお、GS0003に付いているスピーカでは、低音が全く出ませんので、少しでも良い音で聞きたければ、
100円ショップのもので十分ですので、イヤホンやヘッドホンを接続して聞いて下さい。
もちろん、良いアンプやスピーカーに接続すれば、なお良いです!
実行方法:ダウンロードしたMaix_I2S_playerを展開し、Maix_I2S_playerフォルダはArduinoフォルダの下、
Sipeed_ST7789_gameフォルダはArduino/librariesフォルダの下にコピーする。
Windows : 「Users\ユーザー名\Documents\Arduino」又は「PC\ドキュメント\Arduino」
Linux : 「~/Arduino」
上記の方法でインストールしたArduino IDEを起動し、ツールを、
ボード:Sipeed Maix Bit-Mic board
CPU Clock Frequency:400MHz
Burn Baud Rate:1.5Mbps
シリアルポート:Maix Bitが繋がっているポートを選択(2つポートが出るので試行下さい)
書き込み装置:k-flash
に設定します。
→ボタンを押すとコンパイルされ、プログラムの書き込みが開始されます。
終了したら、プログラムが起動します。