Adafruit ItsyBitsy M0 Express で目ん玉ペンダント
さて世間のハロウィンマインドも高まりつつある今日このごろ(そうでもない?)
電子デバイスメーカのAdafruit が面白い商品を発売しました。
Eye see.
@adafruit HalloWing. pic.twitter.com/6OGvSiQn6H— John Edgar Park (@johnedgarpark) 2018年8月16日
かわいいガイコツ型目ん玉ペンダントのAdafruit HalloWing M0 Express!
ほしい!っておもったのだけどこの目ん玉アニメって以前TeensyとTFTディスプレイで作るチューリアルとサンプルコードがAdafruitで公開されてて、自分でも前に作ったんだよね。
んでヘアバンドに内蔵させてサードアイを開眼させたのです 💡
そして今回は例に習ってペンダントを作ってみました。ハロウィンにピッタリだと思うので。
目次
構成
前回はTeensy3.2を使ったのですが、自作サンプラーに使ってピンヘッドとかハンダ付けしちゃったのでAdafruit ItsyBitsy M0 Expressを使用しました。
部品
- マイコン Adafruit Itsy Bitsy M0 Express
- 1.8インチ TFTディスプレイ 128*160ピクセル
-
リチウムイオンポリマー電池400mAh
Adafruit Itsy Bitsy M0 Express
Adafruit HalloWing M0 Expressにも載ってるCPU搭載の小型マイコンです。詳細とArduino環境設定方法は以下でも記載してるので参照ください。
Teensy3.2と比較しても性能に遜色なく基板サイズも一緒です。しかも価格半額近いので素晴らしいです。
Arduinoコード
目ん玉アニメのライブラリは以下にアップされています。
https://github.com/adafruit/Uncanny_Eyes
また以下のライブラリの追加も必要です
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit-ST7735-Library
https://github.com/adafruit/Adafruit_ZeroDMA
コード修正
使用するマイコンとTFTディスプレイ用にコード修正加えます。
config.h の修正
- 63, 64行目
12#include <Adafruit_SSD1351.h> // OLED display library -OR-//#include <Adafruit_ST7735.h> // TFT display library (enable one only)SSD1351.hをコメントアウトして、ST7735.hのコメントアウトを解除
12//#include <Adafruit_SSD1351.h> // OLED display library -OR-#include <Adafruit_ST7735.h> // TFT display library (enable one only) - 66行目
1#define DISPLAY_RESET 8 // Reset pin for ALL displays
TFTリセットピンを デジタル4ピンに変更しました。
1#define DISPLAY_RESET 4 // Reset pin for ALL displays - 30行目
1#include "graphics/logo.h" // Otherwise your choice, if it fits
これをコメントアウトして冒頭にでるロゴをスキップ
uncannyEyes.ino の修正
- 128行目
1eye[e].display = new displayType(eyeInfo[e].select, DISPLAY_DC, -1);SPIチップセレクトをデジタル9ピンに変更
1eye[e].display = new displayType(eyeInfo[e].select, DISPLAY_DC, 9); - 160行目
1eye[e].display->initR(INITR_144GREENTAB);
128*128ピクセルのTFTディスプレイ用のプログラムなので→128*160用に修正します。
12eye[e].display->initR(INITR_GREENTAB);eye[e].display->fillRect(-2, -1, 128, 160, 0); - 352行目
1eye[e].display->setAddrWindow(0, 0, 128, 128);
同様に128*160用に修正します。絵を90°回転して真ん中にシフト。
12eye[e].display->setRotation(1);eye[e].display->setAddrWindow(16, 0, 143, 127);
動作
上記修正して書き込みます。
書き込みの際にAdafruit ItsyBitsy M0 ExpressのUSBポートが出ない場合は、RESETボタンを2回クリックするとLEDが緑になってポートが現れます。
config.hの18〜26行目のグラフィックをコメントアウトで選択することで表示のアニメを変えることができます。
defaultEye.h
#Adafruit Itsy Bitsy M0 Express でも目ん玉できた。 pic.twitter.com/Ahpzk59V9M
— HomeMadeGarbage (@H0meMadeGarbage) 2018年10月21日
terminatorEye.h
ターミネータも
あら いいですねぇ の波が押し寄せる pic.twitter.com/BjJjshbxh7— HomeMadeGarbage (@H0meMadeGarbage) 2018年10月21日
ペンダント制作
部品をうまいことハンダ付けします。
ダイソーで買った丸カンなどの金具でペンダント鎖を取り付けました。
完成
#やばたにえん #あげぽよ#チョベリグ#やまだかつてない pic.twitter.com/1nabyuqOuV
— HomeMadeGarbage (@H0meMadeGarbage) 2018年10月21日
できたー!いい感じ♪
目ん玉のアニメは以前にTeensyのときに作った左右対称の画像を使ってます。自作グラフィックの作成方法は以下を参照ください。