M5StickC(その3)

先日M5StickVを購入したんだけど、そのついでにM5StickCの小物も購入していた。

買ったのはスピーカーと、温度湿度とかの環境センサー。

AliExpress.com Product - M5StickC ESP32Mini IoT Development Board Finger Computer Compatible Speaker PAM8303 Amplifier MP4/MP3

 

AliExpress.com Product - M5StickC ESP32Mini IoT Development Board Finger Computer Compatible Hat ENV Weather Station and Compass Application

どちらも数ドル程度で安いし、ちっちゃいしでお手軽に扱える。

やっぱりM5StickCに直接刺せるのがいい。

ちなみにわざわざ中国から買っちゃったけど、今はスイッチサイエンスで買えるようになっていた。

 

Aruino IDEで簡単に動作確認。

今回サンプルのスケッチは公式のを使う。

 https://github.com/m5stack/M5StickC/tree/master/examples/Hat

念のため、M5StickCのドキュメントも見直し。

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

日本語なのは良いなあ。

 

M5StickCのライブラリはちょっとだけバージョンアップしていた。

それとENVのスケッチでコンパイル時にエラーが出て焦ったけど、Adafruit_BMP280のライブラリが自分の環境にインストールされてなかっただけだった。

問題があったのはそれぐらいで、元々M5StickCの環境が整っていればあとは普通に使用できるはず。

 

しかし見てるとどんどん温度が上がっていくぞ。

やっぱ発熱してるのかな。

ちゃんと動作してるということだから、これはこれで良いか。

Sponsered Link

M5StickV(その1)

とうとう自分もM5StickVを購入。

スイッチサイエンスの在庫がなかった時に、AliExpressから直接注文してしまった。

 

 

AliExpress.com Product - M5Stack New Arrival! StickV K210 AI Camera 64 BIT RISC-V MPU6886 Chip with 16M Flash ST7789 IPS LCD

他にも欲しいものがあったのでまとめて買ったんだけど、それもスイッチサイエンスで取り扱ってたので、そっちから買えば早かった。

でも中国からの商品とはいえ、M5Stackのお店は他と比べて発送も到着も早いんで不満はないです。

 

とりあえすUSBを接続して起動し、感動したのは画像が結構きれいなこと。

ちっちやいLCDでとても鮮明に見える。

先日からいじくり回してるSipeed MAix GOの画像がなんかイマイチだったので、これは嬉しい。

画面サイズが気にならないぐらい。

 

起動が確認できたので、実際にプログラムを入れて動かしてみることにする。

ツイッターで知った、認識した物体の名前を音声で教えてくれるという優れた代物。

 https://github.com/ksasao/brownie/blob/master/README.ja.md

こういうのをやりたくてM5StickVに手を出したようなもんです。

やり方は書いてある通りで、上記からデータをダウンロードし、src ディレクトリの中身をMicroSDカードにコピーするだけ。

 

SDカードの選択がシビアなようですが、V10とかなら大丈夫なのかな?

ファームウェアがバージョンアップしたら、かなり良くなったとも聞いた気がするけど。

自分が使ったのは以下。

先日の楽天のセールでポイント使って購入。

結論からすると、今のところ問題なく動いてます。

 

データを入れたSDカードをM5StickVに刺して、再び起動。

で、さっきのポンデライオンをもう一度認識させると…

「犬です」って言われた…。

証拠の動画はないけど。(ポンデライオン持ってる人は試してみてください)

 

とにかくこれだけで満足しそうなくらい楽しい。買ってよかった。

自力で画像を登録するのは敷居が高くて自分には無理だけど、M5StickVのみでもまだまだ遊べそう。

でもまだM5StickCもSipeed MAix GOも遊びきっていないんで、夏休みに向けてまたいじり倒そうかな。

Sponsered Link

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