MaixPy(MicroPython)でBlinkする
2020/1/29++
MaixPy(MicroPython) Blink
MaixPy(MicroPython) Blink
概要
M5stickV/Maixduinoに内蔵されているMicroPython(MaixPy)でLEDを点滅する方法について記する。 (ホストPCとしてはubuntuを想定している)
事前準備
(1)ampyのインストール
pip install adafruit-ampy
export AMPY_PORT=/dev/ttyUSB0
export AMPY_BAUD=115200
export AMPY_DELAY=0.5
重要:
・他のMicroPythonボードと異なり「export AMPY_DELAY=0.5」が必要である。
・シリアルポートが他のボートと異なり/dev/ttyACM0でなく/dev/ttyUSB0であることに注意。
(2)picocomのインストール
sudo apt-get install picocom
以上のうち、exportしているものは、.bashrcに登録することを勧める。
(3)microSD(M5StickVの場合)
M5StickVを使う場合、スクリプトが空のboot.pyの入ったmicroSD(FAT32)を用意して、起動前に挿入しておくこと。
そうすることで、起動時に内蔵flashにあるboot.pyではなくmicroSDからのboot.pyからの起動になる。
(空スクリプトのboot.pyを実行するので結果として何も実行していない状態になる)
(4)Grove-LED(M5StickVの場合)
M5StickVのGroveコネクタにGrove-LEDを接続する。
Groveコネクタには、34,35のpinが外部に出ている。
実行プログラム
M5StickVの場合
M5SV_blink.py
import utime
from Maix import GPIO
from fpioa_manager import fm
fm.register(34, fm.fpioa.GPIOHS0)
p34=GPIO(GPIO.GPIOHS0,GPIO.OUT)
while True:
p34.value(0)
utime.sleep_ms(100)
p34.value(1)
utime.sleep_ms(100)
maixduinoの場合
MXD_blink.py
import utime
from Maix import GPIO
from fpioa_manager import fm
fm.register(5,fm.fpioa.GPIO0)
led_r=GPIO(GPIO.GPIO0,GPIO.OUT)
while True:
led_r.value(0)
utime.sleep_ms(100)
led_r.value(1)
utime.sleep_ms(100)
プログラム実行(RAM内)
$ ampy run xxxx_blink.py
Maixduinoの場合、シリアルポートのLED(TX-K201)を利用しているので、実行後、ホストと通信できない状態になる。
通信再開したい場合、ボードとホストPCをつないでいるUSBを抜き刺しする。
Maixduinoのピン配置(pinout)
ネットにある配線図から以下の表を作った:
MaixPyで利用するピン番号は、左側のK210モジュールのピン番号になる。
(例)
本件のプログラムではシリアルについているLED(TX-K201)を利用したが、プログラムに使用するピン番号は
D1(TX)ではなく、5(IO05)になる。
ちなみに、プログラムでboard_info.ISP_TXとすると5を返す。
1. Digital I/O (1)
K210 Pin Name | Arduino Pin Name |
---|---|
IO30 | SCL |
IO31 | SDA |
IO03 | D13 |
IO10 | D12 |
IO11 | D11 |
IO12 | D10 |
IO13 | D09 |
IO14 | D08 |
2. Digital I/O (2)
K210 Pin Name | Arduino Pin Name |
---|---|
IO15 | D07 |
IO32 | D06 |
IO24 | D05 |
IO23 | D04 |
IO22 | D03 |
IO21 | D02 |
IO05 | D01(TX) |
IO04 | D00(RX) |
3. Analog In
ESP32 Pin Name | Arduino Pin Name |
---|---|
ESP32_33 | A05 |
ESP32_32 | A04 |
ESP32_35 | A03 |
ESP32_34 | A02 |
ESP32_39 | A01 |
ESP32_36 | A00 |
(ADCはESP32のものを使っている)
Maixduinoのボード情報
REPLで以下のようにボード情報を知ることができる:
>>> from board import board_info
# 以下、ArduinoのD0-D13ピンに対応したK210のピン番号が表示される
#(上の表の情報と同じ)
>>> board_info.D
[4, 5, 21, 22, 23, 24, 32, 15, 14, 13, 12, 11, 10, 3]
>>>
>>> board_info.pin_map()
|---Pin----|-----Function----------|
| 0 | JTAG_TCK |
+----------|-----------------------+
| 1 | JTAG_TDI |
+----------|-----------------------+
| 2 | JTAG_TMS |
+----------|-----------------------+
| 3 | JTAG_TDO |
+----------|-----------------------+
| 4 | ISP_RX |
+----------|-----------------------+
| 5 | ISP_TX |
+----------|-----------------------+
| 6 | WIFI_TX |
+----------|-----------------------+
| 7 | WIFI_RX |
+----------|-----------------------+
| 8 | WIFI_EN |
+----------|-----------------------+
...
省略
...
+----------|-----------------------+
| 47 | DVP_PCLK |
+----------|-----------------------+
>>>
>>>
>>> board_info.pin_map(8)
|---Pin----|-----Function----------|
| 8 | WIFI_EN |
+----------|-----------------------+
>>> board_info.WIFI_EN
8
>>>
M5StickVのGroveコネクタのピン配置(pinout)
Color | Pin | Function |
---|---|---|
BLACK | GND | GND |
RED | VCC | VCC |
WHITE | IO35 | SDA/NC/DIO/DCKI |
YELLOW | IO34 | SCL/SIG/CLK/DI |
参照URL
Maixduino(schematic)
K210 Deep Learning MCU #51
MaixPy Documentation
The MicroPython project
Quick reference for the pyboard
ampyを用いたMicroPythonのファイル操作とプログラム実行
MicroPython pyboard v1.1
M5StickV
Sipeed Maixduino
Grove - LED Socket Kit
GROVE - LED 赤
GROVE - LED 青
以上
| 固定リンク
「linux」カテゴリの記事
- platfomioを使ってnaitive(linux/windows)のプログラムをビルドする方法(2021.03.10)
- micro:bit Yotta開発ツール(linux版)(2021.01.09)
- PlatformIOをRaspberryPi4で動かしてみる(実験)(2020.10.20)
- headless RaspberryPiインストール方法(v2)(2020.10.20)
- wio-terminalのファームウェア・アップデートについて(linux版)(2020.10.15)
「RISC-V」カテゴリの記事
- M5Stamp-C3 Arduino Install(2021.12.12)
- Wio_Lite_RISC-VボードでWiFiを動かす(その4:MQTT)(2020.06.29)
- Wio_Lite_RISC-VボードでWiFiを動かす(その3:OSC)(2020.06.23)
- Wio_Lite_RISC-VボードでWiFiを動かす(その2:STARWARS,REST-API)(2020.06.21)
- Longan-NanoでLCDとSerialを使う(framework:Arduino版)(2020.05.19)
「MicroPython」カテゴリの記事
- microbit-v2にMicropythonをインストールする(2021.05.06)
- PicoボードのMicroPythonをVS_CodeのextensionのPico-Goでプログラミングする(2021.02.10)
- MicroPython/CircuitPython Performance Test(2021.02.07)
- PicoボードにMicropython/CircuitPythonをインストールする(2021.02.03)
- MicroPython(F767ZI) Network Samples(2021.01.03)
コメント