« 2020年4月 | トップページ | 2020年7月 »

2020年5月

2020年5月 9日 (土)

micro:bit (5) スクロール時計

Microbit_scroll_clock

 以前,大阪日本橋のシリコンハウス共立で買ったmicro:bit用Breakoutボードを使ってみました。これを使うとmicro:bitが持つたくさんのGPIOを簡単に利用できるようになるので便利ですよ。マルツパーツ千石電商でも買えるようですね。

これにRTC(リアルタイムクロック)DS3231をつないで,スクロールクロックを作ってみました。(スクロールクロック,これで何度目かなw )
もちろん,Arduino IDE でスケッチを書きました。

//micro:bit スクロールクロック

#include <Wire.h>
#include <RtcDS3231.h>
#include <Adafruit_Microbit.h>
Adafruit_Microbit_Matrix microbit;
BLEPeripheral blePeripheral = BLEPeripheral();
RtcDS3231<TwoWire>
Rtc(Wire);

void setup() {
  Rtc.Begin() ;
  blePeripheral.begin();
  microbit.begin();
  //RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__) ;
  //Rtc.SetDateTime(compiled) ;
}

void loop() {
  char buff[12] ;
  RtcDateTime dt = Rtc.GetDateTime() ;
  //sprintf(buff, "%04u/%02u/%02u", dt.Year(), dt.Month(), dt.Day()) ;
  //microbit.print(buff) ;
  sprintf(buff, " %02u:%02u:%02u", dt.Hour(), dt.Minute(), dt.Second()) ;
  microbit.print(buff) ;
}

| | コメント (0)

2020年5月 7日 (木)

micro:bit (4) 温度計 

 micro:bit のダイ温度をLEDマトリクスでスクロール表示してみました。
sd_temp_get()の戻り値がセ氏温度の4倍なので,4で割ってから表示します。

//micro:bit 温度計

#include <Adafruit_Microbit.h>
Adafruit_Microbit_Matrix microbit;
BLEPeripheral blePeripheral = BLEPeripheral();
int32_t temp;

void setup() {
  Serial.begin(9600);
  blePeripheral.begin();
  microbit.begin();
}

void loop() {
  sd_temp_get(&temp);
  microbit.print(temp/4);
  microbit.print("C ");
  Serial.println(temp/4);
  delay(100);
}

| | コメント (0)

2020年5月 5日 (火)

micro:bit (3) Arduino IDE による開発環境ができた

 昨日からの続きです。ネットで解決策を検索してJH1LHVさんのサイトを見つけました。
ココで「microbit-adv.hexをダウンロードして,micro:bitのフォルダに放り込めばよい」ということらしいので,やってみました。
20200505_1

 しかし,やはりスケッチの書き込みはできるものの,プログラムが実行されません。
んで次は「Flashing a SoftDevice」ってのをやってみました。ココに書いてあるこれ ↓ です。
20200505_2

 上の手順通り,Arduinoのスケッチが置いてあるフォルダ下に tools/nRF5FlashSoftDevice/tool/ というディレクトリを作って,toolの中に nRF5FlashSoftDevice.jarを放り込みます。
 Arduino IDEを起動して,ツール > nRF5 Flash SoftDevice をクリックします。
20200505_3

ところが,ここでエラーが出て先へ進めません。うーむ...

 またまた検索してこのサイトを見つけました。
ココs130_nRF51_201.zip をダウンロードし,展開して得られる s130_nrf51_2.0.1_softdevice.hexC:\Users\USER\AppData\Local\Arduino15\packages\sandeepmistry\hardware\nRF5\0.6.0/cores/nRF5/ SDK/components/softdevice/s130/hex/ の中へ放り込んでやればいいみたい。(僕はWindows10を使ってます)

 もう一度 Arduino IDE で ツール > nRF5 Flash SoftDevice をクリックすると,今度はうまくいきました。やれやれ。
Done_flashing_softdevice

件の matrixdemo もちゃんと動きました :)

| | コメント (0)

2020年5月 4日 (月)

micro:bit (2) ライブラリを3つインストールしたが...

 昨日に引き続き,このサイトを参考にしながら Arduino IDE で micro:bit のプログラミングができるように環境整備中です。

 まずはBLEPeripheralライブラリのインストールです。BLE(Bluetooth Low Energy) 用のライブラリなんでしょうな。
スケッチ > ライブラリをインクルード > ライブラリマネージャ で 検索すれば見つかります。
Blep

 続いて Adafruit GFX ライブラリのインストール。これはグラフィックディスプレイ用かな。
Adafruit_gfx

 最後に Adafruit Microbit ライブラリ。LEDマトリクスとBLE用?
これを入れるとmicro:bit用のスケッチ例がたくさん入ります。
Adafruit_microbit

 さて,これで準備完了っぽいので,ファイル > スケッチ例 > Adafuruit microbit Library > matrixdemo を書き込んでみました。
ところが,書き込み自体はうまくいったのに LEDマトリクスは沈黙したまま。
なんでやねん。

| | コメント (0)

2020年5月 3日 (日)

micro:bit (1) やっぱりArduino IDEを使いたい

20200502

 2年くらい前にmicro:bitを買ってMakeCodeエディタ を少し使ってみたのですが,〈日本語で書かれたブロック〉を組み合わせるというコーディング方法がどうにも肌に合わず,放置していました。
 今年のGWは〈外出自粛〉しててヒマなので「Arduino IDEでmicro:bitを使ってみようかな」と考え,Micro:bit with Arduinoというサイトに書いてあることをそのまんまマネしてやってみることにしました。

まず,ファイル > 環境設定 > 追加のボードマネージャのURL
https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json をコピペしておいて,ツール > ボード > ボードマネージャnRF5を検索して見つかるNordic Semiconductor nRF5 Boardsをインストールします。(けっこう時間がかかります)
20200502image1

 これで,ツール > ボードBBC micro:bit が現れるのでこれを選択,SoftdeviceS130書込装置CMSIS-DAP とします。

20200502image3

これで準備完了。先のサイトにあるblink demoを書き込んでみました。

const int COL1 = 3; // Column #1 control
const int LED = 26; // 'row 1' led

void setup() { 
  Serial.begin(9600);
  Serial.println("microbit is ready!");
  // because the LEDs are multiplexed, we must ground the opposite side of the LED
  pinMode(COL1, OUTPUT);
  digitalWrite(COL1, LOW);
  pinMode(LED, OUTPUT);
}

void loop(){
  Serial.println("blink!");
  digitalWrite(LED, HIGH);
  delay(500);
  digitalWrite(LED, LOW);
  delay(500);
}

うまく書き込めると,一番上の写真のように左上のLEDが点滅します。
よし,今日はこれくらいで勘弁してやろうかな :)

| | コメント (0)

2020年5月 1日 (金)

Arduinoで作ろう(51) パルスオキシメータ

Esp32max30102_

 新型コロナウイルスに感染した「軽症者」が,自宅療養中に急速に肺炎が悪化し手遅れになるケースがあるようです。
これを防ぐために,パルスオキシメータでときどき血中酸素飽和度SpO2を測定することをお勧めします。SpO2が96~99%なら大丈夫ですが,90%を下回ったら早急に医師に連絡すべきです。僕は2月にちゃんとした製品を買ってときどき測定していますが,今回はマイコンで自作してみましょう。

 MAX30102というパルスオキシメータ用のセンサを手に入れたので,ESP32につないでみました。
20200501-184622

 ライブラリはコレで,スケッチ例「Example8_SPO2」を少し書き換えて,OLEDディスプレイSSD1306に心拍数とSpO2を表示させてみました。
スケッチはこれです→ 20200501example8_spo2.ino

20200501-184503

| | コメント (0)

« 2020年4月 | トップページ | 2020年7月 »