M5StickC(その2)

M5StickCもだんだん行き渡ってきた感じ。

情報収拾していても作例が増えてきて、さらに面白くなってきた。

でもスイッチサイエンスのページを見たら、売り切れなんだな。

 https://www.switch-science.com/catalog/5517/

送料抜きだとギリギリ2000円切ってる良心的な値段なので、在庫が出るようになったら急ぎで欲しい時には国内で買おうと思ってる。

 

AliExpressのレビュー見てると、購入者の国籍は日本人が圧倒的。

AliExpress.com Product - New Arrival ! 2019 M5StickC ESP32 PICO Mini IoT Development Board Finger Computer with Color LCD

自分もここから買ってるので人のことは言えない。

しかしこの手の商品でレビュー数が300超えはすごいな。

 

それとAliExpress内で公式のM5Stack販売店以外でも売り始めてるけど、どこも値段が高い。

送料が5ドル近くかかっても公式が断然安いので、変なところで買わないほうがいい。

M5Stackならたま〜に送料無料だと、公式より安いところがある…怖くて手は出せないが。

もうすぐAliExpressのセールなので、非公式のところはもしかするともうちょい安くなるかな?

(でもオススメはしない)

 

それと前回の補足だけメモ。

製品ドキュメントに日本語があったけど、Arduino IDEを使う場合、OSはWindowsしかないように見える。

 https://docs.m5stack.com/#/ja/quick_start/m5stickc/m5stickc_quick_start

が、同じことをMacOSのArduino IDEでやっても大丈夫。

というより、気付かずにずっとMacでやってた。

先日入れたSTM32の環境も、設定をもう一度最初からやり直せば大丈夫でした。

なのでとりあえずまたESP32で使えるように戻している。

 

先日はHello worldだけだったので今回は試しにツイッターで見つけた、ニキシー管風に表示してくれる時計のスケッチを試しにコンパイルしてみた。

 https://github.com/McOrts/M5StickC_Nixie_tube_Clock

シンプルだけどとってもカッコいい。

が、データをダウンロードして書き込みして、すぐに普通に使えてしまった。

画像ではちょっと数字が見づらいけど。

良いことなんだけど、いつもどこかでつまずくんで拍子抜けした。

むしろ、Arduino IDEが現在のMacOSに対応してないよ(というか、今後しなくなるかも)と全然別件でエラーが出てた。

でもコンパイルと書き込みには影響ないです。

 

それと今さらな話なんだけど、電源をオフにする方法を今まで知らなかった…。

よく見たら上記のAliExpressのリンクの画像にも書いてありますね、側面のスイッチを6秒押すと消えます。

でもそれ見ても6Sって何???と、ちょびっとパニックになってしまった。

M5Stackの時にも同じことやった気がする。電源ぐらい最初にチェックしておこう…。

Sponsered Link

M5StickC(その1)

先日、M5StickCも購入した。

AliExpressで、アクセサリー付きを選択。

AliExpress.com Product - New Arrival ! 2019 M5StickC ESP32 PICO Mini IoT Development Board Finger Computer with Color LCD

このアクセサリー付きが在庫なしだったので、出てきたのを見計らって注文した。

その後一週間かからないぐらいで届いたので、やっぱり公式の通販は安心感がある。

 

袋から出したらさっそくウチの猫の攻撃を受けたが、USBを接続したら画面表示が出たので動作は無事っぽい。

写真撮ると画面が白くなっちゃったけど、wifiチェックの画面が出てた。

ドキュメントも一応確認。

 https://docs.m5stack.com/#/en/core/m5stickc

 

テスト用のサンプルプログラムを求めて、githubを探す。

 https://github.com/m5stack/M5StickC

上記中のexampleから、Hello Worldを表示させるだけのスケッチを使う。

いつも通り、自分が慣れてるArduino IDEで書き込み。

 

その前にライブラリを追加。

そのまんま、ライブラリマネージャでM5StickCで検索すると出てくるのでこれをインストール。

スケッチを書き込む時には、ハードウェアを選択。

これはM5Stackの設定ができていれば出てくるはず。

(いつの間にか入ってたの知らなかった…)

書き込みには微妙に時間がかかった。

というより、もう終わったかな?と思ってから、ちょっと時間がかかった。

一瞬失敗したかと思ったけど、ちゃんとHello Worldが表示されてます、見辛いけど。

どうやら問題なさそうですね。(一度落としたけど)

 

ちっちゃいものはやっぱり楽しい。

M5Stackでもまだ遊びきれてないですが、並行してこのM5Stickもいじっていきます。

Sponsered Link

M5Stack(その17)

サーボネタのメモがまだ続く。
M5StackのServoモジュールはすでに持ってるんだけど、また別のものを購入。

Servo Driver Shield、こっちのやつです。
https://www.switch-science.com/catalog/5411/

徐々に在庫なくなってるので、滑り込みセーフだったかも。

AliExpressのセールでさんざん買いあさったせいで軍資金が尽きてたけど、Paypalに返金があったので購入。
しかも注文して2日で届いた。ネコポスでも早い。
ゴールデンウィーク中、引きこもっていじりたかったからうれしい。

 

すでに似たようなのを持ってるのにどうしてもこのモジュールが欲しかったのは、AdafruitのPWM Servo Driverが使えるというのもある。
過去にいろいろいじってたAdafruitのサンプルプログラムをちょっと改変すれば簡単に使えそうだったので、試してみたくなった。
ちょっと今サーボモータにハマってるのもあるし。

 

Adafruitのライブラリは以下。

 https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library

ここにある、一番シンプルなサンプルスケッチのservo.inoを使用。
元は複数のサーボモータを順に動かすんだけど、一つにしてちょっといじった。

M5Stackにはせっかくボタンがあるので、動きをコントロールできるようにした。

以下のような感じ。

 

#include <M5Stack.h>
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x72);

#define SERVOMIN  150 // this is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX  600 // this is the 'maximum' pulse length count (out of 4096)

uint8_t servonum = 1;

void setup() {
  M5.begin();

M5.Lcd.setTextFont(4);
M5.Lcd.setCursor(50, 100);
M5.Lcd.println("M5Stack Servo test!");

  pwm.begin();
  
  pwm.setPWMFreq(60);  // Analog servos run at ~60 Hz updates

  delay(10);
}

void setServoPulse(uint8_t n, double pulse) {
  double pulselength;
  
  pulselength = 1000000;   // 1,000,000 us per second
  pulselength /= 60;   // 60 Hz
  pulselength /= 4096;  // 12 bits of resolution
  pulse *= 1000000;  // convert to us
  pulse /= pulselength;
  pwm.setPWM(n, 0, pulse);
  }

void loop() {
  M5.update();
 
 if (M5.BtnA.wasReleased()) {
  for (uint16_t pulselen = SERVOMIN; pulselen < SERVOMAX; pulselen++) {
  pwm.setPWM(servonum, 0, pulselen);
  }

} else if (M5.BtnB.wasReleased()) {
  for (uint16_t pulselen = SERVOMAX; pulselen > SERVOMIN; pulselen--) {
  pwm.setPWM(servonum, 0, pulselen);
  }
}
}

それとサーボホーンが動くだけでいいのに、わざわざアームを3Dプリンタで出力。

 https://www.thingiverse.com/thing:2302957

SG90をひとつ使うだけのちっちゃいやつなので、出力も作るのも簡単でした。

 

ツイッターに投稿したやつ。

角度を調整しなかったもんだから、ギリギリまで広がっちゃう。(今だにプログラムがよくわかってないんで)

でもちゃんと動作してるので、とりあえず問題ない。

 

最初に購入したほうのモジュールでもまだまだやりたいことがあるし、宿題が多くなってきたけど楽しい。

動くものってやっぱり面白い。でももっと勉強しないとなあ…。

Sponsered Link

M5STACKの保護フィルム

前にM5Stackの画面にヒビを入れたので、ちょっと懲りて画面の保護フィルムを買ってみました。

(ヒビというか、割れちゃったんだけど…これ以上傷が付くのももったいないし)

クリーナー用の小さい布付き。

購入したのはどんな画面の保護フィルムも売ってる(かどうかはわからないが)、ビザビの楽天市場店。

もちろんamazonにもあります。

今回は値段の差がちょっとある二種類を購入。どちらも低反射のタイプ。

値段が1000円前後なので、いつも中国から安物保護フィルムを買ってる自分としては高いなあと思う。

でもスマホとは違って持ち歩くわけでもないのに結構傷つけてるので、もう少し大切にしてあげないとなあと反省して購入。

 

画面のツヤと、フィルムのマット感の差。

貼っちゃうと、当たり前だけどサイズぴったりでもうわからないので。

こっちは低反射だけのタイプ。

自分は反射しない方が好きなので、これは嬉しい。

 

もう一方の傷修復タイプ(ちょっと値段が高い)は、M5Stack Grayが新しく届く予定なのでそれに貼るつもり。

壊したやつとは別にまだ持ってたのに、またうっかり注文してしまった…。
こうやって手持ちのM5Stackが増えてくんだな。困らないけど。

Sponsered Link

M5STACK(その16)

しつこいですが、ESP-CAMの画像をM5Stackに表示させるメモ、解決編。
結局、M5Stackはほぼ問題なく、ESP-CAMに書き込むファームウェアを変えるだけで終わりました。

ESP-CAMは以前取り上げた、ESP-IDFで書き込む方法の「esp-who」にあるサンプルプログラムを使えばOKでした。
 https://github.com/espressif/esp-who
にある、
 https://github.com/espressif/esp-who/tree/master/examples/single_chip/camera_web_server
です。

 

参照したサイトの説明通り、githubからクローンして~/esp-who/tree/master/examples/single_chip/camera_web_serverのフォルダ内でmenuconfigで設定を書き換え、フラッシュしてmonitorでURLを確認。
この画像を参照するURLで、
 http://IPアドレス/capture
と、IPアドレスの末尾に/captureを追加すると、取得した画像のみweb上で見ることができました。
(どこかのESP32関連のフォーラムに書いてあったんだけど、場所忘れた…)
形式はjpgになってるようです。というか、なってた。

画像サイズは元の
 http://IPアドレス
側で設定できるので、その場で変えられて便利。

 

M5Stackのスケッチも、参照先のURLをcapture付に変更して書き込み。
画像サイズはM5Stack用に320x240にして、無事表示することができました。

謎の物体が映ってますが、一応ポンデライオンのフィギュアを写そうとしたんです…。

難点は見ての通り、ESP-CAM本体の配線が邪魔なことですね。
書き込みは終わってるので、動作をmonitorで見る必要がなければ電源GND以外のピンは抜いても良さそうですが。

スッキリした基板がいいなら、やはりM5StackオフィシャルのESP32-CAMを使用するのがいいと思います。

Sponsered Link