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

Teclast F5用スタイラスペン

今回のAliExpressのセールで購入したもののうち、最後に届いたのがこれ。

Teclast F5のスタイラスペン。

通常25ドルぐらいなんだけど、送料無料で20ドルまで下がっていたところがあったので購入した。

お店によっては、安いものは評判がものすごく悪い。使えないとかの評価が付いてる。

でも一応、Teclastのロゴがある…と思われるものを選択して購入。

 

届いたものにはちゃんとロゴも入っていて、問題なさそうだったんだけど、マニュアルも何も付いてない。

どうやってスイッチ入れるのかなと思ったら、中に電池を入れるタイプだった。

開けてみると、中に電池の向きとAAAAと書いてある。

このAAAAというのが、単6電池のこと。

でも国内では通常、単5までしか売ってない。

 

調べてみたら、amazonに独自ブランドの乾電池があって、単6電池も普通に買える。

これが結構悪くないらしい。

で、素直にこれを買えば良いのに、自分はわざわざ楽天で買ってしまった。

amazonにはポイントなかったもんだから…。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

単6 アルカリ乾電池 LR61 AAAA 4本セット LAZOS
価格:498円(税込、送料無料) (2019/4/24時点)

まあどちらを買っても問題ないと思うんですが、とにかくペンには単6電池一本入れて、動作確認したところ問題なし。

マウスの代わりにしたかったので便利。マウスより小さいし。

その分、失くさないように気をつけないといけない。

 

しかしお絵描きに使うとどうなんだろうか。

画面がタッチパネルだから、うっかり別の指が触ると反応しちゃうので使いにくいんじゃないかと思ったけど。

また何かソフトウェアを入れて遊んでみるか。

Sponsered Link

Servo Driver for micro:bit

サーボモータというか、モジュール話ばかりメモしてる今日この頃。

先々月のセールで買ったのがこんな基板ばかりだから。

(さらに今だに問題が解決してないものもある)

 

とりあえず、先日のメモで最後に載せた画像の片方の基板の件。

Micro:bit用のサーボモジュール。

AliExpress.com Product - 16Channel 12-bit I2C 5V 3A PCA9685 PWM Servo Driver Board for BBC Micro:bit Microbit SG90 MG90S MG996R Servo

上記のお店で購入したんだけど、ここは独自のDIY Mallと言うショッピングモールを持っていた。参考までに。

 http://www.diymalls.com/

ここで購入した商品のデータというかチュートリアルは、専用のところからダウンロードできるようになっている。

(と、URLとパスワードが書かれたカードが同梱されていた)

が、それらしいファイルはなかったので諦めた。

 

しかしWaveshareの商品なので、情報は問題ないだろうなと思って検索してみたところ、すぐに発見。

 https://www.waveshare.com/wiki/Servo_Driver_for_micro:bit

こういう時はそれなりのメーカーの商品だととても助かる。

 

上記のマニュアルを見て、「https://github.com/waveshare/pxt-Servo」を読み込んだんだけど…ブロックが出てこなかった。

なんか以前もこんなことがあったなあ。

メーカーの提供するコードがバージョンアップに付いていけてないと、こんなことになった気がする。

これは自分でなんとかするより、いずれ修正してくれるのを期待。

 

なので試しに上記のリンクの、「Demo code」というのをダウンロード。

入っていたhexファイルのうち、microbit-Servo.hexというのを読み込んでみた。

すると表示もブロックになって、ちゃんとServoのブロックが追加された。

使うならこっちのコードをカスタムした方が良さそうだ。

Micro:bitに転送して、動くことを確認。

…画像だとわからないけど、動いたんです…。

このコードだと、0〜15のどのピンに挿してもモーターが動きます。

今は一つだけだから問題ないけど、サーボモータを増やしたら電源もそれなりのものを付けないとダメだろうな。

でもMicro:bitからの電源のみでちょっと動かしたいものがある時は、サイズも大きくないので便利かも。

Sponsered Link

Micro:bitのサーボモジュール

ちょっと前にどうしても中国から届かない荷物でメモってたモノは、リチウム電池付のmicro:bitのサーボモジュール。

Robobitという、18650のリチウム電池が載ってるもの。

AliExpress.com Product - Micro:bit Extension Board Robotbit - Support Scratch & Python Programming with 18650 Lithium Rechargeable Battery

現在はリチウム電池は空輸できないので、結局は中国から出られず販売店に戻る、ということになっちゃたようだ。


しかし上記の購入先のAliExpressのお店はとても対応が良く、2度ダメだった後返金をお願いしたら速攻で応じてくれた。
(めんどくさくなっただけかもしれないが)
電池が届かなかったのもごまかして送らなかったわけだから、安心できる業者といえる。
ただ、今回のトラブルでメールするまで、過去に買い物したことのあるお店とは自分も気付いてませんでした…。

 

で、上記のサーボモジュールは、以前から作ってるOTTOロボットのmicro:bit版を作るために欲しかった。
もう3Dプリンタで外形だけ出力してスタンバイしていたんで、残念。
ちなみにデータ類は以下からダウンロードできる。

 https://wikifactory.com/+OttoDIY/microbit-biped

 http://learn.kittenbot.cn/zh_CN/latest/kittensuite/otto.html

しかしAliExpressではすでにパーツがそろったものが購入できる。これも気になるといえば気になる。

 

それにツイッターで知ったけど、Robobitは国内のamazonにも置いてあった。

販売業者は中国のような気もするけど、それでも国内から購入できるならトライしてみようかな…と考え中。

 

でも上記とは別に他に手はないかなあと考えて、いくつか電池でなく外部から電源を取るタイプのmicro:bit用のモジュールをAliExpressで購入している。

こういうの。

これについても使ったらレビューを書くかも。

 

先日のセールでサーボモータも10個ほど購入して準備万端だし、おかげで軍資金が底をついてるけど、やっぱり動くものって楽しいのでまだまだ買い続けると思います。

(さらにM5Stack用のサーボモジュールも欲しいのがある…)

Sponsered Link