寝台急行はまなす

札幌駅 22:00発 増結12両編成 青森行き

micropythonでmqtt

qiita.com

 

MicroPython Advent Calender 5日目です。

4日目はESP32+micropythonでslackにメッセージを投稿しました。

 

今日はwifiにつながったそのままの勢いでmqttでpublish/subscribeしてみます。

 

micropython-lib/umqtt.simple at master · micropython/micropython-lib · GitHub

 

micropython-libにあるumqtt.simpleをローカルに保存します。

simple.pyだとわかりづらい気がしたのでmqtt.pyにリネームしてampyツールでESP32に転送しました。

 

> ampy -p COM4 put mqtt.py

 

ローカルに保存したフォルダにpublishとsubscribeの例があります。

両方がっちゃんこしたものを書いてESP32に転送しました。

 

> ampy -p COM4 put pubsub.py

 

ますはメッセージを送ってみます。

MQTTブローカーはWindows10にmosquittoを入れて使用しました。

 

An Open Source MQTT v3.1 Broker

 

ブローカーを立ち上げてメッセージを送信するメソッドを呼び出します。

 

f:id:ken5owata:20171205003648p:plain

 

ブローカーにメッセージが届きました。

 

f:id:ken5owata:20171205004838p:plain

 

f:id:ken5owata:20171205004933p:plain

wiresharkでみてもmqttのフロー通りでメッセージが送れています。

Client IDもCONNECT要求時にセット出来ていました。

 

次にmsgをsubscribeしてみます。

subscribeするメソッドを呼び出しておいて、コマンドプロンプトからメッセージを送信しました。

 

> mosquitto_pub.exe -h 192.168.0.7 -t micropython -m hello

 

f:id:ken5owata:20171205023033p:plain

 

ブローカーを通じてメッセージがやり取りされています。

f:id:ken5owata:20171205023125p:plain

 

f:id:ken5owata:20171205022858p:plain

 

wiresharkでも流れが追えました。

 

というわけでREPLからの単発実行ではありますがmqttをpuslish/subscribeしてみました。

 

gistb8215e6c2c404d3726d98ba0ad1fdb1c

micropythonでslackに投稿

qiita.com

 

MicroPython Advent Calender 4日目です。

5日目の15分前ですがぎりぎりセーフということで。

 

昨日@inachiさんの

BLE対応版MicroPython for ESP32をmacOSでビルドしてみる - Qiita

はでした。

 

ESP32のBLEの部分はArduinoでもmicropythonでも絶賛開発中でまだまだサンプルも少ない感じ気がしますがこれから充実してくるでしょう。

また今月のインターフェイスはmicropython特集があるのでぜひ興味がある方は購入されてはいかがでしょうか。

Interface2018年1月号目次|Interface

 

2日目の記事でNUCREO-F401でmicropythonを動かしてみましたが、今日はESP32と

micropythonでslackのAPIを使用してメッセージを投稿します。

このへんはwifiにつながりTCP/IPスタックを積んだESPシリーズの強みですね。

 

ESP8266やESP32のmicropythonでHTTP通信をする場合はsocketモジュールを使います。

以下のチュートリアルにはGETリクエストとwebサーバの例が載っています。

5. Network - TCP sockets — MicroPython 1.9.3 documentation

 

GETリクエストの例をPOSTにしてslackのAPIを使用します。

 

まずSlackのAPIを使うためにはtokenを取得する必要があります。

以下の手順でtokenを取得しましょう。

 

Slack APIを使用してメッセージを送信する - Qiita

 

取得したtokenは送信先のチャンネル、メッセージとともにPOSTするデータに貼り付けます。

以下のようなコードになりました。

gist69e875ce8b9aeb1145865e13d79421a1

 

コードを書いたらampyツールでファイルをESP32に転送します。

> ampy -p port put slack.py

 

ファイルを転送したらwifiに接続してメソッドを呼び出してみます。

f:id:ken5owata:20171204233349p:plain

 

f:id:ken5owata:20171204233515p:plain

ちゃんとメッセージを投げれました。

 

micropythonをはじめよう(STM32F401編)

qiita.com

 

MicroPython Advent Calender 2日目です。

 

昨日はオライリーで出版されたProgramming with MicroPythonの第1章を紹介しました。

今日は購入して長らく放置していたSTM32マイコンでmicropythonを動かしてみたいと思います。

 

akizukidenshi.com

ターゲットとなるのはSTM32F401のNUCLEO-F401REボードです。

秋月電子で手頃な価格で入手できます。

本家のpyboardはSTM32F405ですが、STM32F401は以下のように公式にサポートされているわけではないのですが、micropythonの実行が可能です。

wikiにも記載されています。

Board NUCLEO F401RE · micropython/micropython Wiki · GitHub

 

These boards are not officially supported but should be fully functional

 

ソースをコンパイルして書き込みが必要となりますが、pyboardはいい値段がするので気軽に試したいなら、こちらの方がよいかもしれません。

 

・ビルド&書き込み

それでは実際に試してみたいと思います。

以下の手順はUbuntu 16.04で行いました。他の環境では試すことが出来ていないのですみません。

 

・必要なパッケージのインストール

$ sudo apt-get install libffi-dev

$ sudo apt-et install gcc-arm-none-eabi

 

・書き込みツール(Stlink Tools)のインストール

$ sudo apt-get install cmake

$ sudo apt-get install libusb-1.0.0-dev

$ git clone https://github.com/texane/stlink.git

$ cd stlink

$ make release

$ make debug

$ cd build/Release

$ sudo make install

$ sudo ldconfig

 

・micropythonのビルドと書き込み
$ git clone https://github.com/micropython/micropython

$ cd micropython/ports/stm32/

$ make BOARD=NUCLEO_F401RE deploy-stlink

 

こんな感じで書き込めました。

$ make BOARD=NUCLEO_F401RE deploy-stlink
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Writing build-NUCLEO_F401RE/firmware0.bin to the board via ST-LINK
st-flash 1.4.0-13-g1969148
2017-12-02T10:49:40 INFO common.c: Loading device parameters....
2017-12-02T10:49:40 INFO common.c: Device connected is: F4 device (Dynamic Efficency), id 0x10016433
2017-12-02T10:49:40 INFO common.c: SRAM size: 0x18000 bytes (96 KiB), Flash: 0x80000 bytes (512 KiB) in pages of 16384 bytes
2017-12-02T10:49:40 INFO common.c: Attempting to write 14984 (0x3a88) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08000000 erased
2017-12-02T10:49:40 INFO common.c: Finished erasing 1 pages of 16384 (0x4000) bytes
2017-12-02T10:49:40 INFO common.c: Starting Flash write for F2/F4/L4
2017-12-02T10:49:40 INFO flash_loader.c: Successfully loaded flash loader in sram
enabling 32-bit flash writes
size: 14984
2017-12-02T10:49:40 INFO common.c: Starting verification of write complete
2017-12-02T10:49:41 INFO common.c: Flash written and verified! jolly good!
Writing build-NUCLEO_F401RE/firmware1.bin to the board via ST-LINK
st-flash 1.4.0-13-g1969148
2017-12-02T10:49:41 INFO common.c: Loading device parameters....
2017-12-02T10:49:41 INFO common.c: Device connected is: F4 device (Dynamic Efficency), id 0x10016433
2017-12-02T10:49:41 INFO common.c: SRAM size: 0x18000 bytes (96 KiB), Flash: 0x80000 bytes (512 KiB) in pages of 16384 bytes
2017-12-02T10:49:41 INFO common.c: Attempting to write 287256 (0x46218) bytes to stm32 address: 134348800 (0x8020000)
Flash page at addr: 0x08060000 erasedEraseFlash - Sector:0x7 Size:0x20000
2017-12-02T10:49:46 INFO common.c: Finished erasing 3 pages of 131072 (0x20000) bytes
2017-12-02T10:49:46 INFO common.c: Starting Flash write for F2/F4/L4
2017-12-02T10:49:46 INFO flash_loader.c: Successfully loaded flash loader in sram
enabling 32-bit flash writes
size: 32768
size: 32768
size: 32768
size: 32768
size: 32768
size: 32768
size: 32768
size: 32768
size: 25112
2017-12-02T10:49:52 INFO common.c: Starting verification of write complete
2017-12-02T10:49:56 INFO common.c: Flash written and verified! jolly good!

 

書き込みに成功したらシリアルコンソールを開きボードのリセットスイッチを押します。

$ sudo screen /dev/ttyACM0 115200

 

おなじみのREPL画面が開いてボード上のLEDでLチカができました。

 

f:id:ken5owata:20171202114537p:plain

 

というわけで秋月電子で売っているSTM32マイコンボードでmicropythonを実行してみました。

 

MicroPython Advent Calender 1日目 What is MicroPython?

qiita.com

 

MicroPython Advent Calender 1日目です。

 

今年のmicropythonを振り返る記事を書こうと考えていましたが、オライリーでmicropythonの本が出版されたのでその内容と1章のWhat is MicroPython?を紹介したいと思います。

 

www.amazon.com

 

本の構成は以下のようになっています。

    序文

  1. What is MicroPython?
  2. Pyboard
  3. BBC micro:bit
  4. Adafruit Circuit Playground Express
  5. ESP8266/ESP32
  6. Thinking Embedded
  7. Visual Feedback
  8. Input and Sensing
  9. GPIO
  10. Networking
  11. Sound and Music
  12. Robots
  13. Idiomatic MicroPython
  14. Next Steps

 

1章ではなぜMicro+Pythonなのかという点とMicroPythonの誕生とこれまでの経緯が書かれています。

MicroPythonの作者はDemian Georgeさんです。

彼はケンブリッジ大学の物理学者である一方、RoboCupロボコン)の競技者でもあり自らCコンパイラをスクラッチ作成するなど優れた才能を持つ方のようです。

そんなDemianさんが2013年の余暇の時間にマイコンPythonを作成し始めたのがMicroPythonのスタートです。

Demianさんは開発のためKickstarterのキャンペーンを張り見事に大成功。

2014年には出資者にpyboardが配布されました。

 

Micro Python: Python for microcontrollers by Damien George — Kickstarter

 

micropythonのcommunityはすぐさま大きくなり、github上で世界中の人々からの貢献でバグ、ドキュメント、ツール、他ボードへの移植がなされました。

 

2015年、European Space Agency(欧州宇宙機関)がmicropythonの開発を援助することが発表されました。

人工衛星ペイロードを計算する用途で研究開発が行われたようです。

 

同じころイギリスのBBCは全国の11歳の児童に教育向けデバイスの配布を発表しました。現在では日本でも発売されているmicro:bitです。

このmicro:bitへのmicropython移植を手伝ったのがDemianさんでした。

ちょうどmicro:bitの基板設計者がケンブリッジのDemianさんのオフィスの隣人だったこともあり、プロトタイプのボードで移植作業が進められたようです。

 

micropythonの成功はその派生形を生みました。

AdafruitはmicripythonをforkさせてSAMD21をターゲットにしたCircuitPythonを作りました。

Make: Japan | AdafruitがCircuitPythonへ移行

 

※Adafruitのmicropythonのページはとても充実していて見ていて飽きませんのでぜひご覧ください。

Adafruit Learning System

 

2016年、micropythonの2回目のKickStarterが募集されました。

 

MicroPython on the ESP8266: beautifully easy IoT by Damien George — Kickstarter

 

2回目はESP8266への移植です。それまでのmicropythonがターゲットとしていたSTM32などのマイコンは直接インターネットに接続することはできないタイプです。

wifiチップとTCP/IPプロトコルを搭載したESP8266への移植によりmicropythonのIoTへの道が開かれることとなりました。

 

2017年には更にESP32への移植が進められています。

夏に開催されたMaker Fair Tokyoではmicro:bitの日本発売が発表されました。

micro:bitプロジェクトの創始者も来日してスピーチを行ってました。

 

micropythonは年々サポート対象のボードが増え開発も活発に行われています。

欧州宇宙機関が開発を支援するなど、ホビー用途のみならず産業用途での使用も今後増えていくのではないでしょうか。

 

 以上、大いに誤訳もあったと思いますが1章の内容とこれまでmicropythonについて記載しました。

 

2章以降の内容につきましてもMicroPython Advent Calenderの中でご紹介していきたいと思います。

 

AVTOKYOの一番長い日

AVTOKYO 2017に参加して半田付けしてきました。

参加者に配られた基板はこうして出来上がったという視点でレポを記します。

 

f:id:ken5owata:20171115200047j:image

 

2017年11月5日(日) 足立区保塚地域学習センター

AVTOKYOの1週間前であるこの日、足立区の公民館に13時に集まり今回の基板製作者(@nanbuwks)より当日の流れと基板がまた到着していない知り驚く。

f:id:ken5owata:20171116005657j:plain

 

 

f:id:ken5owata:20171114203931j:image

上が当初の構想段階であった。

残念だが力及ばずこうならなかった。

f:id:ken5owata:20171114203903j:image

プログラムの流れ検討

f:id:ken5owata:20171114204003j:image

今回の基板に使用したのはstm32f103c8t6でありAliexpressで非常に安価($2)で手に入る。

環境を構築するとarduinoIDEで使用可能になる。

adafruitのOLEDのライブラリを修正後プログラムを書いていた。

 

4時過ぎにコーヒー休憩をしてお子さんが散らかした部屋に掃除機を掛けて時間となった。

終了後は@nanbuwksファミリーを車に乗せて秋月電子八潮店に向かった。

f:id:ken5owata:20171114204751j:image

初めて入った八潮店は通路が広く快適でここでは基板に付ける電池ボックスが調達された。

下のお子さんがとことこやってきて「う◯こ」と言われたが時すでに遅かった。

@nanbuwksファミリーを送り届けた後帰宅した。 

 

11月9日(木) 秋葉原 ナノラボ

基板が到着し半田付けを手伝うため夜19時、秋葉原ナノラボに6人が集まった。

f:id:ken5owata:20171115220627j:image 

夜10時まで半田付けがもくもくと行なわれた。

この時点で完成していたのは150枚ほどだったろうか。

ナノラボで紙袋を頂き70枚分の部品を自宅に持って帰った。

 

11月10日(金) 自宅

朝家を出る前に親父に半田付け依頼を出す。

10時に帰宅するとマイコンの半田付けはほぼ終了していた。グッジョブ親父。

セブンのホットドッグを齧りながら半田付け作業が始まった。

 

11月12日(土)自宅、CLUB SIX TOKYO - 六本木

AVTOKYO当日である。

親父の活躍により12時過ぎにはマイコンとOLED、赤外線LEDの半田付けが完了していた。残りはスイッチであったが表面実装のため時間がかかり70枚のスイッチが付いたのは朝4時であった。

f:id:ken5owata:20171115084805j:image

スイッチをつけた基板にブートローダを焼いた後活動限界を迎え仮眠を取った。

 

8時半に起床、荷物をまとめ会場の六本木に向かう。

荷物の搬入を手伝い作業スペースで半田付けとプログラム書き込みに分かれて作業が始まった。

この時点で会場オープンまで残り1時間半である。

f:id:ken5owata:20171115085414j:image

 

危機を察知したスタッフ、一般参加者も加わって半田付け作業が進められた。

手伝って頂いた方云く、硫黄島のような絶望的戦いとのことである。

私は戦時中の工場で働く気分を感じることができた。

 

そうこうするうちに会場オープンまで後15分となったが、この時点で完成品はどれだけ出来たのか、プログラムは動いているのか、あと何枚残っているのかなど状況を把握している者はおらず混乱の坩堝である。

本来であれば入場時に基板が配られる予定だったが主催者判断により後で配布されることとなった。

誠に申し訳ない…

f:id:ken5owata:20171116010956j:plain

 

そうこうするうちに12時に会場オープンとなり続々と参加者が入ってきた。

半田付けスペースは会場入り口すぐのところであったためおのずと人目についたがこちらはそんなことは気にしてられない。

早く半田付けをして基板を完成させないと参加者に配布できないのである。

取り憑かれたように半田付けを続行し16時頃には何とか配布できる分を捌いて一息つけただろうか。

 

ラムコークを一杯飲んで一息付けた後、不良品を修正するため作業スペースに戻った。

半田不良や部品付け忘れに取り組み18時過ぎには主催者から予定数が足りたとのことで組み立て工場は稼働を終えることになった。

この時点で朝から何も食べていなかった。

 

ぐったりして座っていると19時を回った。

20時で終わるために片付け作業を始めないといけない。

とりあえず持ってきたものを箱に詰めていき工場閉鎖はつつがなく完了した。

 

クローズを見届けた後、荷物とともに会場を出た。

打ち上げの招待券を頂いたのでありがたく中華をがっついた。

f:id:ken5owata:20171115200224j:image

北京ダッーーーーーク!!

 

23時前に打ち上げは終了、日比谷線への荷物搬入を手伝い帰宅した。

こうして長い一日は終わったのであった。

 

初めて参加したAVTOKYOであったが六本木のクラブで半田付けを行うという貴重な体験が出来たのでとてもよかったと思う。

参加者がクリックして遊んでくれてるのを見て半田付けした甲斐があったなと実感した。

個人的には表面実装のコツが掴めたので半田付けがちょっと上手くなったかも。 

 

 ※AVTOKYOは半田付けを行うイベントではありません。

 アルコール片手に語り合うセキュリティ・カンファレンスです。

ESP32を始めてみる AWS IoTにデータを飛ばす編

ということをやってので備忘録として思い出して書いておきます。

抜けている個所や説明が間違っていたらすみません。

適時公式ドキュメントとかで保管して頂きたく。

 

下の写真でスイッチを押したらDHT11センサーから取得した温湿度をESP32でAWS IoTに飛ばしてS3にデータを保存します。

 

 

AWSの設定

AWS IoTのコンソールを開きモノを作成します。

f:id:ken5owata:20171021184228p:plain

 

次に接続時に使う証明書を作成してダウンロードします。

f:id:ken5owata:20171021185207p:plain

f:id:ken5owata:20171021185244p:plain

ポリシーを作成して証明書をひもづけます。

f:id:ken5owata:20171021194624p:plain

f:id:ken5owata:20171021194703p:plain

 

作成したモノと証明書をひもづけます。

f:id:ken5owata:20171021190552p:plain

 

今回作成したモノのAPIエンドポイントのURLをコピっておきます。

f:id:ken5owata:20171021192104p:plain

 

最後にデータをS3に保存するルールを作成します。

ESP32というルールを作成してS3にメッセージを格納するというアクションを設定します。

ルールクエリの'ESP32/DHT11'がトピックの部分になります。

f:id:ken5owata:20171021195626p:plain

これでAWS側の準備は完了だったはずです。

 

Arduinoでスケッチ作成

必要な以下のライブラリをライブラリマネージャから入れます。

・ArduinoJson

・DHT sensor library

・Adafruit Unified Sensor

 

スケッチ例にあるWiFiClientSecureをもとにスケッチを作成していきます。

スケッチ例の11行目と12行目にWifiSSIDとパスワードをセットし、14行目にはコピっておいたAPIのエンドポイントを貼り付けます。

 

20行目のtest_root_caにダウンロードしたルート証明書の内容を貼り付けて置き換えます。

50行目のtest_client_keyにxxxxxxxxxx-certificate.pemの内容を貼り付け、

51行目のtest_client_certにxxxxxxxxxx--private.pem.keyの内容を貼り付けます。

 

最後に76行目と77行目のコメントアウトを除きます。

 

スイッチが押されてOFFを検知したらDHT11から読みだした温度と湿度をJSONにセットしてHTTPSに飛ばします。

最後にスケッチを貼り付けておくのでご笑覧ください。 

 

スケッチができたらESP32に書き込んで動作確認を行います。

まずはシャドウステータスの更新を行ってみます。

シャドウステータスの場合はURLが "/thing/作成したモノの名前/shadow"になります。

それではスイッチを押してみると...

f:id:ken5owata:20171021234903p:plain

f:id:ken5owata:20171021221146p:plain

 更新されました。

シャドウステータスが送信したJSONデータになっています。

 

次にURLをトピックのものに書き換えてデータがS3に保存されることを確認します。

トピックのURLは "/topics/ESP32/DHT11"になります。"/topics/"の後ろがルールクエリとなる仕組みのようです。

それではスイッチを押すと...

f:id:ken5owata:20171021234921p:plain

f:id:ken5owata:20171021234545p:plain

 

ちゃんとデータが保存されていました。

f:id:ken5owata:20171021234944p:plain

というわけでこんな感じでAWS IoTとESP32で遊ぶことができました。

今回は簡単にS3にデータ保存するだけでしたが、AWS lambdaでサーバーレス処理とかにもチャレンジしてみたいですね。

あと、HTTPSをMQTTにするとかも。

 

最後にスケッチを貼り付けておきます。

GitHub - satoken5/ESP32Sample: ESP32のサンプルスケッチ

gistf1bed342d0058e04fefcd897c1b0d00f

micropythonをはじめよう(ESP32編)

ESP32が国内発売されるようになり半年以上が立ちにわかにmicropythonが取り上げられるようになってきました。

以下の記事や今月号のトラ技でも記事が書かれています。 

 

makezine.jp

 

ESP32のファームウェアは夏ごろから公式サイトで公開され自分でビルドする必要もなくなり、今では書き込みツールでファームウェアを書くだけで手軽にmicropythonをスタートできるようになりました。

改めてファームウェアの書き込みと公式ドキュメントのチュートリアルをちょこっとやってみたいと思います。

 

※micropythonのファームウェアをESP32に書き込むことで技適の認証に抵触する可能性があります。あくまで自己責任でお願い致します。

 

ファームウェアの書き込み

何はともあれファームウェアを公式から落とします。

MicroPython - Python for microcontrollers

 

f:id:ken5owata:20171018230635p:plain

 

次に書き込みツールをインストールします。

GitHub - espressif/esptool: ESP8266 and ESP32 serial bootloader utility

# pip install esptool

 

Windowsの人はメーカのGUIツールでも構いません。

Tools | Espressif Systems

 

ツールを適時インストールしたら、ファームウェアを書き込みます。

esptoolの場合はこんな感じです。

# esptool.py --port COM4 --baud 460800 write_flash --flash_mode dio --flash_size=detect 0x1000 esp32-20171006-v1.9.2-276-ga9517c04.bin

 

f:id:ken5owata:20171018231914p:plain 

 

CLIGUIも0x1000にファームウェアを書き込みます。

ファームウェアに書き込みが正常に終了したら、teratermやscreenコマンドでシリアルポートにアクセスします。

micropythonのREPLが開きコードを入力→実行ができます。

 

f:id:ken5owata:20171018232720p:plain

 

チュートリアル

micropythonには公式ドキュメントがあります。

ESP32のドキュメントはないのですがほぼ同じのESP8266のものに沿ってチュートリアルを進めていきます。

 

MicroPython tutorial for ESP8266 — MicroPython 1.9.2 documentation

 

・Lチカ

>>> from machine import Pin
>>> p = Pin(4, Pin.OUT)

>>> p.value(1)
>>> p.value(0)

 

・ADC

>>> pin32 = Pin(32, Pin.IN)
>>> adc = machine.ADC(pin32)
>>> adc.read()

 

・ファイル操作

>>> f = open('data.txt', 'w')
>>> f.write('micropython')
11
>>> f.close()
>>>
>>> import os
>>> os.listdir()
['boot.py', 'data.txt']
>>>

>>> f = open('data.txt', 'r')
>>> f.read()
'micropython'
>>> f.close()
>>>

>>> os.remove('data.txt')
>>> os.listdir()
['boot.py']
>>>

 

・neopixel

>>> import machine
>>> import neopixel

>>> pin = machine.Pin(4, machine.Pin.OUT)
>>> np = neopixel.NeoPixel(pin, 20)
>>> np[0] = (255, 0, 0)
>>> np[1] = (0, 128, 0)
>>> np[2] = (0, 0, 64)
>>> np.write()

 

 

wifi接続

>>> import network
>>> sta_if = network.WLAN(network.STA_IF)

>>> sta_if.active(True)

>>> sta_if.scan()

>>> sta_if.connect('ssid', 'password')

>>> sta_if.ifconfig()

 

・ソケット

>>> 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='')

 

f:id:ken5owata:20171021000904p:plain

 

スターウォーズのAAが流れ続けるのでCtl+Cで止めましょう。

 

さてここまではREPLでコードを実行してきました。

自作したプログラム(pyファイル)を実行する場合はツールでファイルを転送します。

以下のコマンドでツールを入れます。

# pip install adafruit-ampy

 

adafruitが出しているこのampyツールにはget、ls、put、rmなどのコマンドがありポートを指定してファイルを転送したり削除したりします。 

ダウンロードしたファームウェアはboot.pyファイルしかない状態です。

boot.pyファイルは起動時に1回のみ実行されるファイルです。

 

>>> import os
>>> os.listdir()
['boot.py']
>>>

 

永続的にプログラムを実行させる場合はmain.pyを作成してampyツールで送り込みます。

boot.pyとmain.pyはArduinoでいうところのsetupとloop関数というわけですね。

 

# ampy -p COM4 ls

# ampy -p COM4 put main.py

 

以上、簡単な紹介でした。

ぜひ皆さんもmicropythonで遊んでみましょう!