[電子工作]GS-0003(Maix Bit付属):Genesisエミュレータ(512KB以下)

A.I.やMicroPythonの学習、各種エミュレータの実行に最適

価格:7,000円(Maix Bit入手困難のため、購入済みのMaix Bitを付属)

(MaixBitの大幅な価格上昇により在庫限り)

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

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

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

保証内容はこちら

 

特徴

 A.I.やMicroPythonの学習、各種エミュレータの実行に最適

 ・Sipeed社Maix Bitを搭載し、カメラ、液晶ディスプレイ、マイク、スピーカー

  (イヤホン端子あり)、キー、単3電池によるバッテリー駆動が可能。

 ・Maixpyによる動画録画・再生や音楽再生やNESエミュレータ、Genesisエミュレータ

  などのソフトが使用可能。(詳細は、ネットで検索下さい。)

 ・4方向キーと5つのキーを搭載。

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

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

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

  ビーズなどを使用しノイズを徹底的に排除。(ノイズが発生する場合は電源の

  電圧不足です。)

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

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

 ・鉛フリー半田使用

カメラ装着例(カメラはユーザにて取り付け下さい。)

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

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

 

サンプルソフト一覧

 

ーーーー目次ーーーー

1.仕様

2.ソフト開発環境

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

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

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

3.サンプルプログラム

 (1)MaixPy

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

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

 

ーーーーーーーーーー

1.仕様

項目

仕様

プロセッサ

Sipeed社Maix Bitを搭載:K210

  64bit RISC-V(RV64GC、400MHz(Max.600MHz)、デュアル)

  FPU(浮動小数点演算)、KPU(AI処理)、APU(音声処理)

インタフェース

Sipeed社Maix Bitを搭載:MicroSD互換カードスロット、USB Type-C、カメラI/F、LCD I/F

表示機能

Sipeed社Maix Bit付属の2.4型液晶パネル:解像度320x240、65536色

カメラ

OV2640(カラーCMOSセンサ、最大1600x1200)

マイク

MEMSマイク(モノラル)

サウンド

DAC:PT8211、16bit、ステレオ、I2S接続

アンプ:LM386(又は互換品)

30mmスピーカー(8Ω、0.15W):2個

  周波数は1200ー5000Hz。可変抵抗により音量調節可能。

  良い音で聞きたい場合は、別途イヤホン、ヘッドホン、スピーカを接続下さい。

イヤホンジャック:3.5mm、ステレオ、3極、スピーカー/イヤホン切り替え

キー入力

4方向スイッチ(プッシュスイッチは未接続)

ボタン:3個+2個

電源

Maix BitのUSB Type-Cコネクタから供給可能

単3乾電池×4本(電池は付属しません)

付属品

カメラ(OV2640、1600x1200)

カメラ取り付けネジ、ドライバなどSipeed社Maix Bitの付属品

サイズ

152mm×71mm、厚み約25mm

その他

Arduino IDEが動作する環境が別途必要(Windowsマシン、MacOS、Linux、RaspberryPiなど)

Kendryte SDKも使用可能

USB Type-Cと接続するためのケーブルが別途必要

 

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エミュレータ(詳細はネットで調べて

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

         ・動画再生や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

         に設定します。

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

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