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

ESP-01/ESP-01S用DHT11モジュール(もう少し続き)

先日からの続き。もう少し、DHT11モジュールの動作を検証中。

検索してると今はDHT11よりDHT22やDHT12を使ってる人が多いかな、と言う印象。

そのうちM5Stackにも接続して遊ぼうかなと思ったけど、既にDHT12のプロトモジュールが出てるので、今さらDHT11はあんまり意味なさそう。

AliExpress.com Product - M5Stack Official Experimental Proto Board Set included DHT12 Bus Socke Grove Cable for ESP32 Basic Kit & Mpu9250 Kit for Arduino

そのうちやるかもしれないけど、とりあえず引き続き、ここではESP-01(S)を使ってデータを取ってみます。

 

www.esp8266learning.comという、その名の通りESP8266を使って色々やってるブログで、thingspeak.comにデータを転送する方法があったのでこれを参照して動作確認してみます。

 http://www.esp8266learning.com/dht11-sensor-data-to-thingspeak-using-a-wemos-d1.php

上記で使ってるのはWemos D1だけど、ESP-01でも行ける。

データを送ればthingspeak.com側でグラフにしてくれて、便利。

 

thingspeak.comへの登録は、名前とメールアドレスだけで大丈夫。

 https://thingspeak.com

メールが来て登録確認、その後さらにパスワードを登録して完了。

大量にデータを送らないなら、基本無料で使えます。

 

後で調べたら、日本語でわかりやすく登録方法がまとめられてるところがありました。

参考になります。

 http://iwathi3.hatenablog.com/entry/Data-to-Graph-ThingSpeak

2年ほど前の記事ですが、現在もこれで大丈夫でした。

 

上記を参照してアカウントを取っておき、新しいチャンネルに温度と湿度のフィールドを作っておく。

さらに自分のapi keyの文字列を確認。

esp8266learning.comのページにあるスケッチをArduino IDEにコピペして、多少書き換えます。

ここはよくある編集。

 String apiKey = "thingspeak.comで取得したapi key";
 const char* ssid = "自分ちのwifiの名前";
 const char* password = "自分ちのwifiのパスワード";
 const char* server = "api.thingspeak.com";  //ここはそのまま

これに加えて、さらに10行目はD2を
 #define DHTPIN 2

にしておきます。

あと使うDHTのライブラリはAdafruitのDHTライブラリなんで、入ってるかどうか一応確認しておく。

 

自分の環境ではエラーもなく無事にESP-01に書き込み完了できました。

しばらく見てるとthingspeak.comにデータ転送され、グラフが出来上がるはず。

しかしこっちの湿度はともかく、

温度がいきなり上がり過ぎ。

これ絶対、ESP-01本体の熱を測ってるでしょ。

モジュールがセンサーの真上にESP-01が来る形になるので、しかたないと言えばそうなんだけど。

 

それでもちゃんとしたデータが取れることは確認できたので満足。

安いモジュールだけど、使えないと悔しいので。

thingspeak.comのアカウントもわざわざ取っちゃったので、別のモジュールとかで有効活用したい。

Sponsered Link

ESP-01/ESP-01S用DHT11モジュール(続き)

まだ途中な感じだけど、やってることメモ。

 

DHT11モジュールでもうちょっとキレイな感じでデータを表示させたいな、と思って調べてたことの続き。

ESP-01とDHT11で検索すると、すぐにわかりやすいページが引っかかる。

 https://www.elec-cafe.com/esp8266-temperature-humidity-webserver-with-a-dht11-sensor/

上記のページではスケッチをコピペするだけで良さそうだったので、さっそく参考させていただきました。

 

しかしそのままコンパイルしたところ、スケッチがエラーになる。

難しいエラーではなく、DHT11.hがないと言われるだけ。

すでにインストールしているDHT11用のライブラリでは使えないようだ。

これはどこかからライブラリを拾ってくるのではなく、上記のブログで専用に使っているものを使えばよかった。

下記の、「DHT11 Library」からダウンロードできました。

 https://www.elec-cafe.com/arduino-wireless-temperature-lcd-display-nrf24l01-dht11/

これでエラーなくコンパイルと書き込みができた。

 

動作も問題ないようで、Arduino IDEのシリアルモニタ に出ていたIPアドレスを入力してWebブラウザでアクセス。

…が、アクセスできない。

どうもデータかwifiが重くて、接続しようとしても接続できない感じ。

(ほっとくと接続がタイムアウトになる)

もうちょっとシンプルに表示させたほうがいいんだろうか。

このプログラムでも十分シンプルに見えるんだが。

 

それと書き込みはUSBのモジュールで簡単にできても、その後DHT11モジュールで5Vを確保するのは結局こんな状態になっている。

結局ブレッドボードを使ってるという状態。

まだ改善が必要なところは多いな…。

Sponsered Link