2017年11月23日

シリアルポート接続のJPEGカメラを買ってみた

jpeg-camera.jpg

Aliexpressの11月11日のセールのときに、いくつか買い物をしたのですが、そのうちの一つであるJPEGカメラが届きました。
撮影した画像をシリアルポート経由で取り出せるカメラで、同様の製品はスイッチサイエンスや秋月電子でも販売されています。
今回買ったのは以下の製品で、セールだったので$15.2でした。
発送も比較的迅速で良かったと思います。(同時に4つの店舗で購入しましたが、残り3つの荷物はまだ日本行きの飛行機に乗るか乗らないかといったところです。)

New Color JPEG Color UART TTL Serial Port Digtial Camera Module with OV528 communicaiton protocol-in Surveillance Cameras from Security & Protection on Aliexpress.com | Alibaba Group

上記のページからもリンクされていますが、Windows用のテストプログラムが配布されていますので、とりあえず動かしてみました。
接続する端子はVCC、GND、RX、TXの4本です。
夜間監視用らしく、赤外線LEDも搭載されており、そちらを光らせる場合は別途接続が必要です。

5V動作なので、USBシリアルアダプタのジャンパを5V側に設定して接続しました。
テスト用のアプリケーションは下のように延々とカメラ画像を表示するだけのものです。
ad-7732.png

通信速度は最高で115.2Kbps、解像度は最高640x480ピクセルで、1フレーム送るのに3秒くらいかかっている計算です。QVGAにすれば1秒を切るかもしれません。

NUCLEO-F401REは5Vトレラントなので、そのうち繋いで監視カメラもどき?でも作ってみようかと思います。
posted by boochow at 15:14| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

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) | 日記 | このブログの読者になる | 更新情報をチェックする
人気記事