Help us understand the problem. What is going on with this article?

bpi:bit の MicroPython その1

More than 1 year has passed since last update.

今日とりあえげるのは bpi:bit です。

ラズパイもどきとかArduinoもどきとか、いりいろな「もどき」ものを出しているBanana Piですが、bpi:bit はその名からも想像つくように BBC micro:bit もどきです。

bpi:bit のポータル的な Wiki サイトはのここにあります。

日本で技適もとれている ESP-WROOM-32 を採用していて、とうぜん Wi-Fi はサポート。下方にある端子は micro:bit と互換なので、micro:bit 用の周辺機器がいろいろ流用できます。LED の代わりに NeoPixel 25個ついていて、CPU温度ではない温度センサー、疑似でない光センサー、MPU9250、圧電ブザーがついていて、お値段は micro:bit とあまり変わりません。私はAliexpressSinoVoip Co.,Limited Banana PI ストアで送料込み 2,317円 で購入しました。「WiFi Display」と表記のある謎の箱が送られてきたのですが、中にはちゃんと bpi:bit が入っていました。

IMG_4680.jpg

開発環境は webduino というブロックプログラミング環境や Arduino IDE とかあるのですが、11月に MicroPython に対応したとのことで、積みボード化していた bpi:bit をひっぱりだしてきました。

bpi:bit MicroPython のドキュメントはここにあります。今のところは中国語の説明しかないのですが、chrome の翻訳機能使えば、なんとか内容の雰囲気はわかります。このドキュメントを読んで動かせたところまで書きます。

ドライバのインストール

ホストPCから bpi:bit に MicroPython ファームウェアを焼くには UART シリアル通信できなきゃなりません。

bpi:bit に載っている USB-シリアル変換チップは CH341 というもののようです。このチップを積んだボードを
使うのは初めてだったので、ホストOSにドライバをインストールする必要がありました。

Windows ではドキュメントどおりここからダウンロードしてインストールすればよいのですが、私が普段プライベートで使っている macOS 用の説明がありません。macOS 用ドライバを探したところここにありましたので、これをダウンロードして使いました。Linux 版もあるようですが試していません。インストール後に再起動が必要です。

ファームウェアのインストール

bpi:bit の MicroPython ファームウェアはここにあります。なにかいろいろあって分かりにくいでしょうが、ファームウェアは firmware.bin です。Windows の場合はファームウェアを焼くために以下もダウンロードして、firmware.bin と同じフォルダに置いておきましょう。

  • AutoErase.exe
  • AutoFlash.exe

mac/Linuxの場合は esptool.py をインストールしてください。python 3 が使える環境であれば以下のようにします。

$ pip install esptool

ホストPCと bpi:bit を以下の写真のように USB ケーブルで繋ぎます(bpi:bit 側は micro USB)。micro:bit と同じです。

IMG_4779.jpg

Windows の場合はダウンロードした以下のコマンド順番に実行します。

  • AutoErase.exe
  • AutoFlash.exe

macOS/Linux の場合は esptool を使って以下のようにします。

$ esptool.py --chip esp32 --port <シリアルポート> --baud 115200 erase_flash
$ esptool.py --chip esp32 --port <シリアルポート> --baud 115200 write_flash -z --flash_mode dio --flash_freq 40m 0x1000 firmware.bin

<シリアルポート> のところ、私の macOS では /dev/tty.wchusbserialfa1440 でした。Linux だとたぶん /dev/USB0 あたりでしょう。これらシリアルポートへのアクセス権のあるアカウントで実行してください。

正常終了したら、裏面のリセットボタンを押します。リセットボタンの位置も micro:bit と同様です。

IMG_4780.jpg

TeraTerm や screen などターミナルアプリでシリアルポートにアクセスすると、以下のように MicroPython の REPL にアクセスできます。これを書いている時点では 2018-12-07 にビルドされたもので、本家 MicroPython の v1.9.4 がベースになっていることがわかります。

I (191) wifi: Init data frame dynamic rx buffer num: 64
I (191) wifi: Init management frame dynamic rx buffer num: 64
I (201) wifi: Init static rx buffer size: 1600
I (201) wifi: Init static rx buffer num: 10
I (211) wifi: Init dynamic rx buffer num: 0
I (261) phy: phy_version: 3960, 5211945, Jul 18 2018, 10:40:07, 0, 0
I (271) wifi: mode : sta (30:ae:a4:8f:24:38)
I (271) wifi: STA_START
Press "A" to enter the smartconfig mode while the led is rolling
Started wifi in normal mode
OSError: [Errno 2] ENOENT
MicroPython v1.9.4-817-g72effc642-dirty on 2018-12-07; ESP32 module with ESP32
Type "help()" for more information.
>>> I (6351) wifi: n:11 0, o:1 0, ap:255 255, sta:11 0, prof:1
I (6911) wifi: state: init -> auth (b0)
I (6921) wifi: state: auth -> assoc (0)
I (6921) wifi: state: assoc -> run (10)
I (6961) wifi: connected with aterm-76af2c-g, channel 11
I (6961) wifi: pm start, type: 1

I (6961) network: CONNECTED
I (8191) event: sta ip: 192.168.0.8, mask: 255.255.255.0, gw: 192.168.0.1
I (8191) network: GOT_IP

とりあえず、本日はここまで。

次回、mpfshell を使った操作について説明します。

inachi
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした