[電子工作]GS-0003:Maix Bit用スピーカーシステム

A.I.やMicroPythonの学習に最適

価格:3000円 2500円

(2022'7/14現在。半導体不足、円安のため予告なく価格が変動する場合があります。) 

在庫品はメルカリで「GS-0003」で検索購入下さい。

受注生産(料金振込後、製作するため多少納期が必要です)で良ければ、 hge00744@nifty.ne.jp 

にメール下さい。折り返し、納期、金額(割引あり要相談)、振込先を回答致します。

保証内容はこちら

 

特徴

 A.I.やMicroPythonの学習に最適

 ・Sipeed社Maix Bitを搭載することで、音声の再生、キー操作が可能となります。

  (Sipeed社Maix Bitは付属しません)

 ・4方向キーと5つのキーを搭載。Sipeed社Maix Bitを搭載して、NESエミュレータ

  やMDファイルの再生を行う場合に最適。

 ・イヤホン端子を持ち、スピーカーと切替可能。(良い音で聞きたい方は、イヤホン、

  ヘッドホン、外付けスピーカーを別途準備して下さい。)

 ・LM386(又は互換品)によるアンプを搭載。DAC専用レギュレータ、フェライト

  ビーズなどを使用しノイズを徹底的に排除。

 ・2連ボリュームで音量調整可能。

 ・秋月電子、共立エレショップなど、信用できる販売店より部材調達。

 ・鉛フリー半田使用

注意.Sipeed社のMaix Bit Suit(液晶・カメラ付き)を別途購入する必要があります。

注意.基板形状、搭載部品は、出荷時期によって変更される場合があります。

    但し、ソフト互換性は確保し、基本仕様は変更しません

 

サンプルソフト一覧

 

ーーーー目次ーーーー

1.仕様

2.ソフト開発環境

 (1)ファームウェア書き換えソフトのインストール

 (2)Arduino IDEのインストール

 (3)Kendryte SDKのインストール

3.サンプルプログラム

 (1)MaixPy

 (2)Genesisエミュレータ(MDファイルプレイヤ)

 (3)サウンドプレイヤ(WAVプレイヤ)

 

ーーーーーーーーーー

1.仕様

項目

仕様

プロセッサ

非搭載

  別途、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、液晶パネル、カメラは付属しません。別途購入する必要があります。

 

2.ソフト開発環境

 (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の回路図をダウン

      ロードし、それを見ながら変更しましたが、サンプル毎にやり方が異なるので結構面倒でした。

 

3.サンプルプログラム

   (1)MaixPy

      説明:Sipeed社のMaixシリーズで動作するMicro Pythonです。Pythonで書かれたプログラムを実行

        できるだけでなく、動画再生、WAV再生、A.I.処理、NESエミュレータ(詳細はネットで調べて下さい)

        なども可能です。詳細は、こちらをご覧ください。

        本GS0003ボードと接続することで、次のようなことが可能となります。

         ・動画再生やWAV再生時に、音をステレオで聴くことが可能です。(あのbadappleも音楽付きで再生!)

          WAVファイルAVIファイルの作成方法はこちら

         ・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)

   

   (2)Genesisエミュレータ(MDファイルプレイヤ)

      説明:私が作成したプログラムを書き込むことで、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

   

   (3)サウンドプレイヤ(WAVプレイヤ)

      説明:私が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

         に設定します。

         →ボタンを押すとコンパイルされ、プログラムの書き込みが開始されます。

         終了したら、プログラムが起動します。