obnizでTTLシリアルJPEGカメラでハマって解消したメモ

だいぶ前にAdafruitのJpegカメラを秋月電子通商で購入してobnizで試したんですが「あれ全然撮れないぞ?」となって以来ずっとパーツを眠らせていたところ、先日のIoTLTでの発表資料を拝見させていただいて解決法が判ったので自分でも忘れないうちにメモしておくことにしました。

参考にした資料: ピンのピッチ幅で苦しんだ #obniz や #gwhack の話 #iotlt

パーツは発表の中でも出てきたobnizのパーツライブラリJpegSerialCamで紹介されている製品で、秋月電子通商の小型TTLシリアルJPEGカメラ(NTSCビデオ出力付)から購入できます。
“obnizでTTLシリアルJPEGカメラでハマって解消したメモ” の続きを読む

距離センサー VL53L0X の使い方 (Arduino、ESP32)

スイッチサイエンスで、PololuのVL53L0Xモジュールを購入してArduinoとESP32で試してみたメモです。

PololuのVL53L0Xモジュールのピンアサイン

Pololuのピンホールは7つあります。

シルク 説明
VDD 電源
VIN 主電源 (基本こちらを使う)
GND グランド
SDA I2Cのシリアルデータ
SCL I2Cのシリアルクロック
XSHOT ハードウェアスタンバイ
GP01 ???

“距離センサー VL53L0X の使い方 (Arduino、ESP32)” の続きを読む

Amazon FreeRTOS ESP32-DevKit-CでMQTT Hello World (Mac版)

Amazon FreeRTOSをESP32開発ボードESP32-DevKit-Cにセットアップして、マイコンからMQTTのメッセージを送信し、AWS IoTのコンソール上で確認するHello Worldサンプルを動かしてみたので手順をまとめてみました。

FreeRTOSのセットアップ手順は公式ドキュメントの「Espressif ESP32-DevKitC と ESP-WROVER-KIT の開始方法」を参考にしています。
このドキュメントではESP-IDF v3とESP-IDF v4を利用したセットアップ方法が記載されていますが、今回は「ESP-IDF v4」の手順を選択しました。
“Amazon FreeRTOS ESP32-DevKit-CでMQTT Hello World (Mac版)” の続きを読む

小型のMP3プレーヤーモジュールDFPLayerの使い方

コピペテックで技術書典Vol8向けに書いた「ESP32 と obnizOS で作る IoT 電子工作」で使ったMP3プレーヤーモジュールのDFPlayer Miniの使い方についてまとめてみました。

ピンアサインの確認

こちらは、DFPlayerのデータシートに記載されているピンのラベル付きの写真です。

本記事で使用するピンは以下の通りです。

ピン 用途 備考
VCC 電源電圧 動作電圧は3.2から5.0Vに対応
RX UARTの入力信号端子
TX UARTの出力信号端子
SPK_1 スピーカー端子+ 3W以下
GND グランド
SPK_2 スピーカー端子- 3W以下
IO1 トリガーポート1 短く押すと前の曲、長く押すとボリュームを下げる
IO2 トリガーポート2 短く押すと次の曲、長く押すとボリュームを上げる
BUSY 再生ステータス LOWのときに再生中

“小型のMP3プレーヤーモジュールDFPLayerの使い方” の続きを読む

NeoPixelリングに使えるエフェクト実装例集

NeoPixelリングに使えそうなエフェクトをいろいろと自作してみました。
テープ状のLEDとリング上のLEDで向いているエフェクトがちょっと異なる気もしますが、今回はリング向けです。

サンプルは、Arduino UNOで動作を確認しています。

事前準備

Arduino IDEのセットアップして、ArduinoとNeoPixelリングを接続します。

NeoPixel制御用ライブラリのインストール

ライブラリはAdafruit_NeoPixelを使用します。
以下の手順で追加します。

  1. Arduino IDEのメニューから[ツール] > [ライブラリを管理…]を選択してライブラリマネージャを開きます。
  2. 「NeoPixel」で検索して「Adafruit NeoPixel by Adafruit」をインストールします。

Arduino UNOとNeoPixelリングを接続

以下の配線図に従ってArduino UNOとNeoPixelリングをつなぎます。

対応表

Arduino NeoPixelリング
DIGITAL 6 IN
5V V+
GND GND

Adafruit_NeoPixelの基本的な使い方

Adafruit_NeoPixelの使い方を以下のスケッチ例を使って説明します。

こちらは、GithubのREADMEにも載っている例simpleと同じです。

#include <Adafruit_NeoPixel.h>
#define PIN        6 // 信号用のピンを指定
#define NUMPIXELS 16 // LEDの数を指定

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500

void setup() {
  pixels.begin(); // NeoPixel出力ピンの初期化
}

void loop() {
  pixels.clear(); // すべてのLEDの色を0にセット

  for(int i=0; i<NUMPIXELS; i++) {
    pixels.setPixelColor(i, pixels.Color(0, 150, 0));
    pixels.show();
    delay(DELAYVAL);
  }
}

“NeoPixelリングに使えるエフェクト実装例集” の続きを読む

ESP32のデジタル入力 プルアップ/プルダウンを検証、Arduinoとの違い

ボタンスイッチからの入力をESP32で処理する場合、プルアップ、プルダウンという言葉が出てきますが理解が怪しかったので、実機で試しつつまとめてみました。

ESP32の開発ボードは、ESPr Developer 32で試しています。

スイッチにプルアップ、プルダウンがなぜ必要か?

スイッチの回路にプルアップ、プルダウンがなぜ必要かについてですが、もし以下のようにスイッチがGNDと入力用のピンのみに接続されている回路で内部抵抗によるプルダウンなしの場合

このとき読み取られる値は直感的には0Vになりそうですが、そうはなりません。
実際にどこにも接続されていないピンをanalogReadした値は以下のようになぞの電圧が観測されます。

“ESP32のデジタル入力 プルアップ/プルダウンを検証、Arduinoとの違い” の続きを読む

M5Stick-Cで光センサユニット(LIGHT UNIT)を試す

M5Stack-Cで、光センサーのユニットLIGHTを試してみました。

LIGHT UNITの光センサは、フォトレジスタ(CdSセル)が組み込まれているモジュールで、光の強さをアナログおよびデジタルで読み取れます。

公式リファレンスのページ: Light – M5Stack Docs

プログラムは、上記の公式リファレンスのページで紹介されているサンプルを修正してみました。

Github: M5Stack/examples/Unit/LIGHT/LIGHT.ino

公式リファレンスのM5Stack Coreを利用した例と同じ様に、LIGHT UNITから読み取ったアナログとデジタルの値をLCDに表示します。


“M5Stick-Cで光センサユニット(LIGHT UNIT)を試す” の続きを読む

obnizを単3電池2本と5V昇圧 DC-DCコンバータ(TS61200)で動かす

以下の前回とその前の記事の続きで今回はDC-DC昇圧コンバータを使い電池2本3Vから5Vに昇圧してobnizを起動してみます。

秋月電子で買った昇圧DC-DCコンバータは大きな電流が流せずobnizを起動できなかったので、入力電圧が低くて多きな電流が流すことができるテキサス・インスツルメンツのTS61200という製品を使った昇圧モジュール超低電圧DC-DCコンバータモジュール(3.3V/5V)をストロベリー・リナックスで見つけたので試してみました。

低電圧入力でも大きな電流も確保できる昇圧コンバータを探してみると、テキサス・インスツルメンツのコンバータがいくつか見つかりましたが、それを自分で実装するのは素人にはハードルが高いのでストロベリー・リナックスのモジュールは扱いやすく大変便利です。送料もかかるので安くはないですが。

購入するとこんな感じでパッケージされてきました。


“obnizを単3電池2本と5V昇圧 DC-DCコンバータ(TS61200)で動かす” の続きを読む

3端子レギュレータを使った5V定電圧回路でobnizを動かしてみた

前回の記事「J1端子を使ったobnizの電池駆動について検証してみた」に引き続きJ1端子を使ってobnizを起動する実験の記録になります。

今回は、秋月電子通商で買ってきた 低損失三端子レギュレーター 5V500mA TA48M05F(S Q) を使って5V電圧を供給する電源回路を作成してobnizを起動してみます。

定電圧5Vの3端子レギュレーターはもっと安いのもありますが、このパッケージは、入出力のパスコンとして使うコンデンサも含まれているので使いやすいです。

パーツの配置図は以下のとおりです。

配置図に沿ってパーツを並べます。

次に、電池とobnizをつないで動作を確認してみます。
無事動きました。

前回の記事と同様に、電圧・電流計を入れて電圧と電流を測ってみます。
パーツはこのようにつなぎます。

電圧・電流計をつないでみると、電圧はおよそ5.1V 電流はおよそ110mAで動作していることが確認できました。

写真では、9V電池をつないでいますが、通常の単4電池 x 4の6V電源でもデータシートの通り問題なく動作しました。

J1端子を使ったobnizの電池駆動について検証してみた

先日コピペテックの記事に タミヤ カムプログラムロボットをobnizでラジコン化してみた を投稿しましたが、100円ショップのモバイルバッテリーがロボットにちゃんと収まってなかったりと完成度がイマイチでした。
そこでカムロボットに付いている電池ボックスからobnizに電源を供給できれば、もとの見た目を崩さずに完成度を上げられるのでは?と考え、5V電源作れれば良いんだろうと秋月電子から 5V出力昇圧DCDCコンバータを買ってきて試してみたところ、残念ながらobnizは起動せずでした。。
そこで、改めてobnizの電池駆動について検証してまとめてみることにしました。

obnizの動作電源について確認

スイッチサイエンスのobnizで仕様を確認すると

  • 動作電圧: 5V(microUSB or J1ピン)
  • 動作電流: 平均 170 mA(Wi-Fiにつながり、BLEはスタンバイ、外部に何もつながっておらず、OLED使用中の場合)

とあります。

結論から言うと、秋月のモジュールでobnizが起動しなかったのは、流せる電流の負荷をオーバーしていて電圧も下がってしまっていたからです。

電池で5Vかつ170mA以上の電流を供給可能な電源の作成方法

モバイルバッテリーでのUSB給電はどうしても場所を取るので、5Vかつ170mA以上の電流を供給可能な電源を作成して、J1端子を利用してobnizを電池駆動するを考えてみると、以下のような方法があります。

  1. 電池のみで5Vの電源を作る
  2. 9V電池など5V以上の電源から3端子レギュレータを使用して5V電源を作る
  3. 5V以下の電源、電池1本1.5Vまたは2本3.0vなどから昇圧DCDCコンバーター・モジュールを使用して5V電源を作る
  4. 9V電池など5V以上の電源から降圧DCDCコンバーター・モジュールを使用して5V電源を作る

この記事では、まず1の電池での動作を確認してみます。
次回以降の記事では、2.の3端子レギュレータ、3.昇圧DCDCコンバーター・モジュールを使った場合について検証結果をまとめる予定です。
4.の降圧DCDCコンバーター・モジュールについては2.と概ね同じなので試していません。

obnizのJ1コネクタの使い方

obnizでUSB以外から給電する場合、USBコネクタ横のJ1コネクタを使います。

今回J1ピンにつなぎやすくするために以下のようにL字コネクタをはんだ付けしました。

表側からみて + のシルクが付いている方をVCCについてない方をGNDにつなぎます。

電源電圧・電流の計測

obnizに電源をつないだときに、電圧5Vが維持できていること、電流がどのくらい流れていか確認したいので、電源と電流が同時に計測し表示できる計測器をAmazonで購入してみました。

パネル取付け型DCデジタル電圧計電流計 赤青 100V 10A バルク品 323円

とても安いですがちゃんと動きます。
(デジタルマルチメーターなどが手元にあれば、それで代替可能です)

この計測器は、電流は10mA単位で細かくは計測できませんが、おおよその消費される電流と電圧が5Vを維持できているかは確認できますので、今回の用途としては十分です。

使い方は、類似商品 デジタル電圧計&電流計 (DC 100V 10A) 【赤V&黄A】 のページに詳しく書いてありましたので、こちらを参考につないでいきます。

電池のみ5V電源でobnizを起動

最終的には、電池一本で動作させることが目標ですが、J1端子の使い方を確認するため確実に5V電源とそこそこ電流を供給できるであろう構成を調べたところ、ラズパイなどの5V電源のマイコンを電池駆動させる方法についていくつかの記事を見つけました。
ラズパイを起動するには電流500mAくらい必要らしいですが、ニッケル水素電池1.2v x 4本を使うとちょうど5Vを超えたくらいの電圧になり電源として使えるらしいです。
obnizはラズパイほどの電流は必要ないので、確実に起動しそうです。

ニッケル水素電池と電池ボックスは、秋月電子で以下のものを買ってきました。

この単4 x 4本の電池ボックスはコンパクトかつスイッチ付きで便利おすすめです。

電圧・電流の計測器も含めて以下のようにつなぎます。

電圧・電流計は、左の赤黒が太い線になります。

無事、obnizが起動して、wifiに繋がることを確認できました。

起動後電圧は5.2V、電流はおよそ110mAで落ち着いています。
意外と小さな電流で動いています。

モーター起動時の電流

今回は、通常のモーターをobnizから動かすことを目的としているので、さらにモーターを動かせるかも確認してみます。

以下のようにobnizの0と1にDCモーターをつないで、プログラムはobnizのサイトのSDK パーツライブラリ DCMotorあたりを動かしてみます。

モーターを動かしたときの電流の大きさの変化はこんな感じです

モーター起動時、電流は一時的に150mAくらいの大きさになり、その後50mA程度で安定するようです。
カムロボットはモーター2つなので、400mAくらいの電流を流すことができる必要がありそうだということがわかりました。