2017年11月18日

書籍「Programming with MicroPython」を購入

mp-book.jpg

オライリーから、「Programming with MicroPython」という本が出ましたので読んでいます。
ざっと内容を紹介すると、以下のような感じです。

1章:MicroPythonの歴史。なかなか興味深いです。Damien George(MicroPythonの作者)はPyBoardとESP8266+MicroPythonと、KickStarterを2回成功させているんですね。
他にも、micro:bitにMicroPythonが載ったのは、Damien Georgeの職場の隣の部屋にmicro:bitのボードを設計したARMのエンジニアがいて、頼まれたGeorgeが一週間でMicroPythonを動作するようにした、なんて話が載っています。
また、micro:bitの派生プロジェクトでドイツではCALLIOPEというプロジェクトが動いているそうです。
日本ではスイッチサイエンスさんのグループ会社のスイッチエデュケーションの活躍に期待したいところですね。

2章〜5章:ハードウェアの解説。PyBoard、micro:bit、Adafruit Circuit Playground Express、ESP8266/ESP32が取り上げられています。

6章:組み込みプログラミング概論。

7章〜12章:分野別、MicroPythonプログラミング。内訳はディスプレイ(LCDやNeoPixel等)、入力デバイス(ボタン、タッチセンサ、モーションセンサ、温度センサ等)、インタフェース(SPI、I2C、UART、I/Oピン)、ネットワーク(赤外線通信、micro:bitの無線送受信、WiFi、HTTP、MQTT)、サウンド、モーター制御です。

13章:MicroPythonで省メモリ、高パフォーマンスのプログラムを作成するためのノウハウ。MicroPythonにはconstという、Cでいう#defineみたいなものがあるのですが(この記事で使いました)、これは整数しか使えないしモジュール外からは参照できない、なんていう話も書かれていて参考になります。

14章:より詳しく知りたい人のためのガイド。

ということで、組み込みは初めてという場合にはどの章も参考になると思います。1章と13章はMicroPython特有の話なので、初心者でなくても楽しめると思います。
ラベル:MicroPython
posted by boochow at 13:11| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2017年11月12日

1.5インチのOLEDモジュール

oled1-5.jpg

OLEDモジュールは0.96インチと1.3インチのものを持っていたのですが、Aliexpressで1.5インチのものを見かけて買ってみました。
1.3インチはArduboyで使われていたサイズです。
1.5インチは、たった0.2インチの差ですが結構大きく感じます。
また、面積が大きいせいか、ピクセルが明るく感じられます。
ただ、このサイズになるとピクセルがはっきり見えてしまって、128×64よりも高い解像度が欲しいような気がしました。
QRコードなどを表示させるなら、このサイズのほうが良いかもしれませんが。

コントローラはSSD1309というものらしいですが、ドライバはSSD1306のもので問題なく動作しました。
posted by boochow at 17:48| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2017年11月11日

MicroPython on Web Browser

MicroPythonをブラウザ上で動かしているデモを見つけたので、リンクを貼っておきます。
MicroPython用ハードウェアであるPyBoardと、それに接続されたLEDやサーボモータもエミュレートされています。
手軽に雰囲気を楽しめて良いと思います。

MicroPython on Unicorn

これはMicroPythonの作者によるもので、こちらに解説があります。

MicroPython running "bare metal" in the browser via unicorn.js - MicroPython Forum

QEMUベースのマルチプラットフォームのエミュレータであるUnicornを、EmscriptenでJavaScriptに変換したUnicorn.jsをブラウザ上で動作させ、その上でARM用のMicroPythonを動かしているそうです。
上の記事にもありますが、コードが以下に置かれています。

micropython/micropython-unicorn: MicroPython on Unicorn

さすがに、速度はESP32の上で動かすMicroPythonにはだいぶ劣ります。
サンプルの中にマンデルブロ集合をテキストで出力する例が入っていましたが、同じものをESP32で動かしたら一瞬で終了してしまいます。

オマケとして、このマンデルブロ集合のコードをESP32+ST7735の上でビットマップ出力するように修正してみましたので、以下に載せておきます。



動作の様子です。この動画では1ピクセルずつ描画していますが、上のコードは1ライン分をまとめて描画するように変更しており、もう少し速くなっています。
ラベル:MicroPython
posted by boochow at 15:07| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2017年10月28日

fritzingのW5500 Ethernet Module用データを作ってみた

w5500module-fritzing.png

ブレッドボードでのパーツ接続図を描くツールにFritzingを使っていますが、このツールは新しいパーツを自分で追加することができます。
先日使ったW5500イーサネットモジュールのパーツデータを作ってみました。

作成方法の解説は、下記のページが分かりやすかったのでお勧めです。

Fritzing カスタムパーツの作り方 – jumbleat

Make Your Own Fritzing Parts - learn.sparkfun.com

基本的には、(1)ブレッドボード用の図(2)回路図(3)プリント基板用パターン の3つの図をSVG形式で作成し、かつ配線のポイントとなるピンやランドなどのオブジェクトの名前を決まったルールで付与します。
そして、これらのファイルをFritzingのパーツエディタに読み込み、各図のオブジェクトを相互に関連付けるXMLファイルを生成します。
ゼロからやると面倒そうですが、上記の解説はIC用の既存データを修正して作成する方法が紹介されており、その方法ならそれほど面倒ではありません。

これを使って先日の記事の接続図を作り直したものがこちらです。

Before:
stm32-w5500.png

After:
stm32-w5500-2.png


NUCLEOボードのグラフィックスの凝り様に比べると、非常にショボいグラフィックですが、データは一応以下に置いてあります。

boochow/W5500_fritzing_data
posted by boochow at 11:56| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2017年10月27日

Amazon Web Servicesを(今更)試してみた

aws-ec2.png

AWS IoTなるものに興味を持ったので、AWSのアカウントを取ってみました。
AWS IoTの前にまずはIaaSであるEC2のお勉強です。
教科書は、こちらを使いました。執筆陣には先頃KDDIに買収されたソラコムの玉川さんも入っています。

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版|日経BPブックナビ【公式サイト】
awsbook.jpg


この本はEC2のインスタンス2つ(WebサーバとDBサーバ)を立て、WordPressのサイトを作るチュートリアルになっています。
Webサーバはインターネットに公開し、DBサーバはプライベートネットワークにおきます。
ただしDBサーバはソフトウェア更新等のため、NATゲートウェイを介してインターネットへ接続できるようにします。
aws-book2.jpg

この本のおかげで細かいことに躓くことなく、使い方を学ぶことができました。
デフォルトのユーザが「ec2-user」であることとか、ssh接続のためのキーペアをつくるところとか、本書のようなガイドがあればどうということは無いですが、アカウントを作っていきなり試行錯誤していたら余計な時間がかかっていたかもしれません。

また、HTTPプロトコルをtelnetで目視したり、WireSharkでパケットを観測したりというトピックも扱っており、AWSに限らずネットワーク技術の入門書としても、とても良いと思いました。

WordPressはこんな感じで無事立てることができましたが、実際に使うかというと、個人では料金面が課題になりそうです。
aws-wordpress.png

12ヶ月間は無料利用枠が利用できますが、内容はEC2が750h/月なので24時間×31日分で、本書のようにインスタンスを2つ使ったら超過するのではないかと思います。
また、本書で使われているNAT Gatewayは時間課金+転送量課金で無料枠はありません(ので、試し終わったら削除しないと課金されます)。
個人でサーバを立てるだけなら定額のVPSサーバを借りるほうが良さそうです。
posted by boochow at 23:48| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
人気記事