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)