MaixduinoのMaixPyのWiFi動作確認プログラム
2020/2/2
MaixPy(MicroPython) WiFi test
MaixPy(MicroPython) WiFi test
概要
Maixduinoに内蔵されているMicroPython(MaixPy)のWiFi動作確認について記する。WiFi機能についてはESP32が使われているので、MaixPyでESP32でアクセスすることになる。 (ホスト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に登録することを勧める。
xxxx.pyの書き込みと実行方法
書き込み:
# sdに書き込む場合
ampy put xxxx.py /flash/xxxx.py
# flashに書き込む場合
ampy put xxxx.py /sd/xxxx.py
# デフォルトに書き込む場合
ampy put xxxx.py
実行:
picocom /dev/ttyUSB0 -b115200
# MaixPyのコンソールに入る
__ __ _____ __ __ _____ __ __
| \/ | /\ |_ _| \ \ / / | __ \ \ \ / /
| \ / | / \ | | \ V / | |__) | \ \_/ /
| |\/| | / /\ \ | | > < | ___/ \ /
| | | | / ____ \ _| |_ / . \ | | | |
|_| |_| /_/ \_\ |_____| /_/ \_\ |_| |_|
Official Site : https://www.sipeed.com
Wiki : https://maixpy.sipeed.com
MicroPython v0.4.0-87-g42e92b235-dirty on 2019-11-07; Sipeed_M1 with kendryte-k210
Type "help()" for more information.
>>>
# 実行プログラムの置き場所を選択する
import os
os.chdir('/flash')
# または
os.chrdir('/sd')
# 内容の確認
os.listdir()
# xxxx.pyの実行
import xxxx
WiFi確認用プログラム
MXD_ap_scan.py
アクセスポイントを走査するプログラム
import network
from Maix import GPIO
from fpioa_manager import fm, board_info
# IO map for ESP32 on Maixduino
fm.register(25,fm.fpioa.GPIOHS10)#cs
fm.register(8,fm.fpioa.GPIOHS11)#rst
fm.register(9,fm.fpioa.GPIOHS12)#rdy
fm.register(28,fm.fpioa.GPIOHS13)#mosi
fm.register(26,fm.fpioa.GPIOHS14)#miso
fm.register(27,fm.fpioa.GPIOHS15)#sclk
nic = network.ESP32_SPI(cs=fm.fpioa.GPIOHS10,rst=fm.fpioa.GPIOHS11,rdy=fm.fpioa.GPIOHS12, mosi=fm.fpioa.GPIOHS13,miso=fm.fpioa.GPIOHS14,sclk=fm.fpioa.GPIOHS15)
# bug fix
#enc_str = ["OPEN", "", "WPA PSK", "WPA2 PSK", "WPA/WPA2 PSK"]
enc_str = ["OPEN", "", "WPA PSK", "WPA2 PSK", "WPA/WPA2 PSK","WEP"]
aps = nic.scan()
for ap in aps:
print("SSID:{:^20}, ENC:{:>5} , RSSI:{:^20}".format(ap[0], enc_str[ap[1]], ap[2]) )
実行例:
>>> import MXD_ap_scan
SSID:2C1B48970BBA6A47473A8E215865F5F3, ENC:WPA PSK , RSSI: -58
SSID:5DD34D5E34AE91F443EDF9D27012935E, ENC: WEP , RSSI: -58
SSID: 001D731D0A98 , ENC:WPA/WPA2 PSK , RSSI: -59
...
省略
...
>>>
MXD_starwars.py
StarWarsのASCII_Artを表示するプログラム
以下は自分の環境に合わせて変更すること:
WIFI_SSID = "your_ssid"
WIFI_PASSWD = "your passwd"
# NIC setup
import network, socket
from Maix import GPIO
from fpioa_manager import fm, board_info
WIFI_SSID = "your_ssid"
WIFI_PASSWD = "your passwd"
# IO map for ESP32 on Maixduino
fm.register(25,fm.fpioa.GPIOHS10)#cs
fm.register(8,fm.fpioa.GPIOHS11)#rst
fm.register(9,fm.fpioa.GPIOHS12)#rdy
fm.register(28,fm.fpioa.GPIOHS13)#mosi
fm.register(26,fm.fpioa.GPIOHS14)#miso
fm.register(27,fm.fpioa.GPIOHS15)#sclk
nic = network.ESP32_SPI(cs=fm.fpioa.GPIOHS10,rst=fm.fpioa.GPIOHS11,rdy=fm.fpioa.GPIOHS12, mosi=fm.fpioa.GPIOHS13,miso=fm.fpioa.GPIOHS14,sclk=fm.fpioa.GPIOHS15)
print("ESP32_SPI firmware version:", nic.version())
err = 0
while 1:
try:
nic.connect(WIFI_SSID, WIFI_PASSWD)
except Exception:
err += 1
print("Connect AP failed, now try again")
if err > 3:
raise Exception("Conenct AP fail")
continue
break
print(nic.ifconfig())
print(nic.isconnected())
err = 0
#==========================================
# Star Wars ASCII Art (python3)
import socket
addr_info = socket.getaddrinfo("towel.blinkenlights.nl",23)
addr = addr_info[0][-1]
s = socket.socket()
s.connect(addr)
while True:
data = s.recv(500)
print(str(data, 'utf8'), end='')
#=============================================
途中でエラーで止まるようだが、WiFiアクセスの確認には使用できる。
なお、「Star Wars ASCII Art (python3)」のコメント行以下は
PCのpython3で実行可能なので、「setup NIC」以外の部分を
PCのpython3で動作確認することはネットワーク関係については可能だと思われる。
実行例:
>>>import MXD_starwars
Original Work : Simon Jansen ( http://www.asciimation.co.nz/ )
Telnetification : Sten Spans ( http://blinkenlights.nl/ )
Terminal Tricks : Mike Edwards (pf-asciimation@mirkwood.net)
The hard work was done by Simon and Mike,
I just placed it online
/~\
( oo| They've shut down
_\=/_ the main reactor.
___ # / _ \
/ ()\ \\//|/.\|\\
_|_____|_ \/ \_/ ||
| | === | | |\ /| ||
|_| O |_| \_ _/ #
|| O || | | |
||__*__|| | | |
|~ \___/ ~| []|[]
/=\ /=\ /=\ | | |
________________[_]_[_]_[_]________/_]_[_\___________________
参照URL
Maixduino(schematic)
K210 Deep Learning MCU #51
MaixPy Documentation
The MicroPython project
Quick reference for the pyboard
ampyを用いたMicroPythonのファイル操作とプログラム実行
MicroPython pyboard v1.1
Sipeed Maixduino
以上
| 固定リンク
「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)
この記事へのコメントは終了しました。
コメント