MIDI出力のメトロノームを作成

Sparkfun社製MIDIシールドを使って、MIDI出力のメトロノームを作成しました。

2つあるボリュームのA1の方をテンポ、A0の方を拍子の選択に使っています。
また、シールド上の緑のLEDをテンポに合わせて点滅させています。

#include <MIDI.h>

MIDI_CREATE_DEFAULT_INSTANCE();

static const unsigned ledGreenPin = 6;
static const unsigned ledRedPin = 7;

static const unsigned analogPin1 = 1;
static const unsigned analogPin2 = 0;

static const unsigned closeNote = 42;
static const unsigned openNote = 46;

int val1 = 0;
int val2 = 0;

int tempo = 0;
int count = 0;
unsigned noteNo = closeNote;

int delay_h = 500;

void setup()
{
  pinMode(ledGreenPin, OUTPUT);
  pinMode(ledRedPin, OUTPUT);
  digitalWrite(ledGreenPin, HIGH);
  digitalWrite(ledRedPin, HIGH);
  count = 0;
  MIDI.begin(MIDI_CHANNEL_OFF);
}

void loop()
{
  val1 = analogRead(analogPin1);
  val2 = analogRead(analogPin2);

  val1 = val1/6;
  val1 += 30;
  val2 = val2/114;
  delay_h = 500 * 60 / val1;

  if (val2==0) {
    noteNo = closeNote;
  } else if (count==0) {
    noteNo = openNote;
  } else {
    noteNo = closeNote;
  }
  count++;
  digitalWrite(ledGreenPin, LOW);
  MIDI.sendNoteOn(noteNo, 127, 10);    // Send a Note
  delay(delay_h);
  MIDI.sendNoteOff(noteNo, 0, 10);     // Stop the note
  digitalWrite(ledGreenPin, HIGH);
  if (count>=val2) {
    count = 0;
  }
  delay(delay_h);
}
カテゴリー: Arduino, MIDI, 作ったモノ | タグ: , , , | コメントする

Arduinoのピンソケットが…

最初の頃に買ったArduino(それでも純正のUNO)だけど、普段シールドを差していたらピンソケットがガバガバになっていて、他のシールドを差したらうまく動かなくて調べたら接触不良だった。
まだ動くのでピンソケットを交換できないかなぁ…

カテゴリー: Arduino | コメントする

MIDIシールド

MIDIシールドをスイッチサイエンスで買った。

MIDI Shield

MIDI Shield(組み立て後)

シールド上にプログラムの書き込みとMIDI入出力の切り替えスイッチが付いている。

※ ゴーン、ゴーン、ゴーンという音です(ヘッドホン経由なので非常に小さい音なので注意)。

回路図

カテゴリー: Arduino, MIDI | タグ: , | コメントする

赤外線リモコン受信センサーの置物

100円ショップでLEDを入れるのにちょうどいい穴の開いた植木鉢に挿す飾り(?)を見つけたので、赤外線リモコン受信センサーを組み込んでみた。

100円ショップで見つけたオブジェ

100円ショップで見つけたオブジェ

秋月で買っておいたペットボトルのキャップサイズのユニバーサル基板に実装した。(裏側にボタン電池ホルダーを付けた。)

ペットボトルのキャップサイズの基板へ実装

ペットボトルのキャップサイズの基板へ実装

できた回路をグルーガンで貼り付けた。さらに100円ショップの造花というか模造の観葉植物(?)に挿した。

100円ショップの飾り物に赤外線リモコン受信センサーを組み込んだ

100円ショップの飾り物に赤外線リモコン受信センサーを組み込んだ

動作動画。
動画ではわかるようにすぐ近くでリモコンを操作していますが、2mとか離れていても反応します。

3/30に居間に設置して、そのまま生活(テレビの操作とシーリングライトのON/OFF)していたら4/13に反応しなくなっていたのを認識した。約2週間で電池切れになった。

カテゴリー: 作ったモノ, 回路, 部品 | タグ: | コメントする

三度、赤外線リモコン

まずは赤外線リモコンの受信モジュールを使って、赤外線リモコンの信号を受けたらLEDが点滅する回路を描いた。

赤外線リモコン受信センサー回路図

赤外線リモコン受信センサー回路図

赤外線リモコン受信センサー

赤外線リモコン受信センサー

これ、赤外線リモコンの電池切れのチェックにも使える。

カテゴリー: 作ったモノ, 回路, 部品 | タグ: | コメントする

0.96インチ I2C 128×64 OLED LCDディスプレイ SSD1306液晶

0.96'' OLED LCDディスプレイ

0.96” OLED LCDディスプレイ

説明:
超高輝度(調整可能)
スーパーハイコントラスト(調整可能)
組み込みドライバ/コントローラ
フォントの色:ブルー
駆動デューティ:1/64デューティ
画素数:128×64
パネルサイズ:26.70mm x 19.26mm x 1.85mm
アクティブエリア: 21.74mm x 11.2mm
ピクセルサイズ: 0.15mm x 0.15mm
このOLED品番UG-2864HSWEG01、UG-2864AMBAG01ではない
バックライト必要はなく、表示装置は、自発光することができ
高解像度:128*64
視野角:>160°
多くの制御チップをサポートしています:Arduino、51シリーズ、MSP430シリーズ、STM32/2、CSR ICなどと完全な互換性があります。
超低消費電力:フルスクリーン点灯0.08W
電圧:3V~5VDC
働く温度:-30℃~70℃
モジュールサイズ:27.0MM*27.0MM*4.1MM
I2C/ IICインタフェースは、わずか2 IOを必要としています。
ドライバIC:SSD1306
パッケージは以下を含みます: 1*0.96″I2C IIC SPIシリアル・128×64 OLEDのLCDディスプレイ

追記
今回もAdafruit_SSD1306ライブラリを使って動かせなかったので、いろいろ調べたらこのページを見つけ、このシリーズを読んでとりあえず表示されるようになった。
でも、自由に描画できるわけじゃないので、これからいろいろ調べる。

カテゴリー: Bookmark, 部品 | タグ: , | コメントする

素Bme280Serverを電池で動かす

レギュレータを外して、アルカリ単三乾電池2本で動かしてみた。

単三電池2本でBme280Server

単三電池2本でBme280Server

一晩持たなかった。
(寝る前に起動して、起きたらアクセス不能になっていた。)

レギュレータを元に戻して、Ankerのモバイルバッテリーでも動かしてみる。

Bme280Server(Ankerバッテリー)

Bme280Server(Ankerバッテリー)

まだ動かしている途中なので、何日持つのかわからない。
追記:12時間くらいの時はまだ半分残っていたけど、26時間くらいの時には空だった。)

そこで、消費電力を調べてみようとググったら、ありました。

ESP8266の消費電流の徹底調査

どうも、ESP-WROOM-02をサーバーにするのではなく、定期的にデータを取得してサーバーに送信するクライアントとして使うのが正しいらしい。

で、deepSleepについてもググった。

ESP8266の真骨頂Deep-Sleepモードの使い方

次はサーバーを用意してクライアントとして作ってみる。

カテゴリー: Bookmark, ESP-WROOM-02, 作ったモノ | コメントする

素のESP-WROOM-02でBme280Serverを動かす

前の記事を元に素のESP-WROOM-02にBME280を接続した回路図を描いた。
(ただし、使うポートをGPIO12, GPIO14に変更した。)

Bme280Server(素のESP-wROOM-02)

Bme280Server(素のESP-wROOM-02)

ブレッドボードに組んでみた。

Bme280Server(素のESP-WROOM-02)

Bme280Server(素のESP-WROOM-02)

カテゴリー: ESP-WROOM-02, センサー, 作ったモノ, 回路 | タグ: | コメントする

素のESP-WROOM-02を動かす

DIP化した素のESP-WROOM-02を動かすための回路を再度回路図にした。

ESP-WROOM-02基本回路図

ESP-WROOM-02基本回路図

回路図をブレッドボードに組んだ。
(写真にはGPIO16にLEDをつないで、Blinkを書き込んだ。)

基本回路をブレッドボードに

基本回路をブレッドボードに

書き込む際はSW2 FLASHを押した状態で、SW1 RESETを押して放し、Arduino IDEで転送を行う。転送が終わったらSW2 FLASHを放す。

カテゴリー: ESP-WROOM-02, 作ったモノ, 回路 | コメントする

Bme280Server

ESP-WROOM-02の開発ボードを使って、BME280の情報をJSONで取得できるようにBme280Serverを作った。

Bme280Server

Bme280Server

秋月のESP-WROOM-02開発ボードからI2C経由でBME280にアクセスするArduino IDEのライブラリを探したけど、自分で使いたいピン(SDA=GPIO2, SCL=GPIO14)で動かせなかったので、AdafruitのBME280ライブラリを参考に書き換えた。
そして、ESP-WROOM-02のサンプルのHelloServerに組み込んでBme280Serverとしてビルドした。

秋月ESP-WROOM-02開発ボードとBME280の回路図

秋月ESP-WROOM-02開発ボードとBME280の回路図

Bme280Server.zip

カテゴリー: ESP-WROOM-02, センサー, 作ったモノ | タグ: , , | コメントする