鳥なき里のマイコン屋(124) M5StackとUno間、CANフレームのラウンドトリップ

RoundTrip_DUT
Joseph Halfmoon

前回はM5StackからArduino Unoへ向かって一方通行のCANフレームの通信を行ってみました。当然、今回は双方向での通信の確認であります。お手軽にM5Stack発でUno経由M5Stack着の「ラウンドトリップ」です。同じArduino IDE使用で同じような仕事ですが、衣の下がちょっと違うのが見えまする。 “鳥なき里のマイコン屋(124) M5StackとUno間、CANフレームのラウンドトリップ” の続きを読む

MicroPython的午睡(26) ラズパイPico、入力端子からの割り込みの反応時間

ITR_TEST_DUT
Joseph Halfmoon

前回Timerコールバック関数の呼び出し周期の上限目安(被呼び出し関数にもよりますが)を測定しました。今回は端子からの割り込みに対してMicroPythonの関数が反応するまで(割り込み入力をトリガとして出力端子の状態を変更するまでの時間)の目安を測ってみたいと思います。最速どのくらいの処理がデキそうなのか。

“MicroPython的午睡(26) ラズパイPico、入力端子からの割り込みの反応時間” の続きを読む

モダンOSのお砂場(23) Arm MbedでBBC micro:bitプログラミング

Mbed_MB
Joseph Halfmoon

今までJavaScript(実際にはTypeScript)環境にてプログラムしていたBBC micro:bitですが、C/C++環境への移行を考えております。移行先として、Arduino環境(別シリーズ)、Arm Mbed環境、Zephyrの3候補のうち、本シリーズではMbedとZephyrの2つをやってみる所存。まずはArm Mbed環境を調べてみました。

“モダンOSのお砂場(23) Arm MbedでBBC micro:bitプログラミング” の続きを読む

MicroPython的午睡(25) ラズパイPico、Timer周波数設定の上限?

TimerMeasureDUT
Joseph Halfmoon

MicroPythonが用意してくれているTimerクラスは便利なものです。面倒な設定もなく、指定した周波数でタイマハンドラを呼び出してくれます。ただ、周波数の上限あるはずだよね、どのくらいなの?ちょっと別件でマイクロ秒単位の制御をしたかったのです。どこまで対応できるものだか調べてみることにいたしました。

“MicroPython的午睡(25) ラズパイPico、Timer周波数設定の上限?” の続きを読む

MicroPython的午睡(24) ラズパイPico、CDSセンサをADCに接続

CDS
Joseph Halfmoon

さて今回は、ラズパイPicoのADCを使ってみたいと思います。12ビットのADコンバータであります。真面目に精度を出そうと思うとチョッと大変そうですが、今回はとりあえず精度は気にせず。明るい、暗いがアナログ値で分かれば良いだろ~ということでCdSセンサを接続。

“MicroPython的午睡(24) ラズパイPico、CDSセンサをADCに接続” の続きを読む

トホホな疑問(34) BBC micro:bit V2のArduinoピン番号はまた違う

microBitV2 Arduino Blink
Joseph Halfmoon

別シリーズにてMakeCode環境(JavaScript)でBBC micro:bit v2をプログラムしていたのですが問題に遭遇し、C/C++系に開発環境を変えてやり直してみるかと考えました。候補となる環境はArduino、Mbed、Zephyrなのですがそれぞれにまた一長一短あります。まずは前回に続きArduino環境を調べてみることにいたしました。

“トホホな疑問(34) BBC micro:bit V2のArduinoピン番号はまた違う” の続きを読む

MicroPython的午睡(23) ラズパイPico、Passive Buzzer接続

Pico_PassiveBuzzer_DUT
Joseph Halfmoon

今回 Raspberry Pi Picoに接続する「定番の」部品はパッシブ・ブザーであります。片やONするだけで特定の周波数で鳴ってしまうアクティブ・ブザーに比べると、パッシブ・ブザーの場合、与える周波数を制御する必要はあるものの、音程を変えることができるので表現力が上回るっと。まあPWM波形を与えれば良いのでPWM出力に対応しているPicoにとっては何の問題もありませぬ。

“MicroPython的午睡(23) ラズパイPico、Passive Buzzer接続” の続きを読む

ブロックを積みながら(21) MakeCode、Compilation failed

CompilationFailed
Joseph Halfmoon

前回、ラズパイPythonからBluetooth UARTサービスを使って「コマンド」をmicro:bitに送り込み、それに反応させることができました。今回はmicro:bitから処理結果をラズパイに返信するとともに、各種コマンド大拡充、と目論んだのですが障害あり。MakeCodeのコンパイル時エラー発生。

“ブロックを積みながら(21) MakeCode、Compilation failed” の続きを読む

MicroPython的午睡(22) ラズパイPico、AQM1602 LCDパネル接続

Pico_AQM1602
Joseph Halfmoon

このところ Raspberry Pi Picoに各種デバイスを接続し、MicroPythonで操作してきております。が、定番のデバイス、どうせ接続できるでしょ、ということでやってませんでした。しかし、やっておかないと何が起きるかわからない。念のためということで今回は、秋月電子製LCDモジュールキット、AE-AQM1602Aであります。 “MicroPython的午睡(22) ラズパイPico、AQM1602 LCDパネル接続” の続きを読む

ブロックを積みながら(20) micro:bit, BLE UartへPython書き出し

uartBLK
Joseph Halfmoon

前回は、BBC micro:bit のBLE特性(Characteristics)のうち、読めばわかりそうなものをラズパイPython3で読み出してみました。今回は、BLE Uartサービスに「書き込んで」micro:bitを鳴かせてみたいとおもいます。また、前回のコードだとmicro:bit v2ではうまく行かないことも発覚したので修正しました。

“ブロックを積みながら(20) micro:bit, BLE UartへPython書き出し” の続きを読む

MicroPython的午睡(21) ラズパイPico、M5AtomLiteとUART通信

RPiPico_M5AtomLite
Joseph Halfmoon

今回はハードウエアの周辺機能の利用に戻りたいと思います。毎度毎度「お世話になっている」のに取り上げてこなかったUART(調歩同期方式シリアル通信)であります。当然、通信する相手なければ使ってみることができませぬ。そこで今回用意いたしましたのは、M5Stack社の超小型デバイスATOM Liteであります。Raspberry Pi Picoに比べても小さいです。機能的には相互補完的?

“MicroPython的午睡(21) ラズパイPico、M5AtomLiteとUART通信” の続きを読む

ブロックを積みながら(19) micro:bit BLE, Pythonで「特性」読み出し

microbit_back_bbox
Joseph Halfmoon

前回、bluepy モジュールを使ってラズパイ上のPython3のスクリプトでBBC micro:bit のBLEアトリビュート内の「特性(characteristic)」のハンドルをリストいたしました。ハンドルが分かれば実際の値にアクセスできます。今回は、読み出すだけの特性を中心に「読んで」みたいと思います。

“ブロックを積みながら(19) micro:bit BLE, Pythonで「特性」読み出し” の続きを読む

MicroPython的午睡(20) ラズパイPico、PIO操作は最大8ビット?

PIOtestDUT
Joseph Halfmoon

Raspberry Pi PicoのPIO(Programmable IO)は、Picoのユニークな機能であり、かつ適応能力最強の「ペリフェラル」だと思います。勿論MicroPythonからも利用できます。しかし前回、普通のSRAMをPIO経由で制御しようとしてトラぶりました。今回は釈然としない部分に絞ってその動作を実機確認してみたいと思います。 “MicroPython的午睡(20) ラズパイPico、PIO操作は最大8ビット?” の続きを読む

ブロックを積みながら(18) BLE、ハンドル、UUID、CHARACTERISTICS

uartService
Joseph Halfmoon

前回は、micro:bitとRaspberry Pi 3 model B+をペアリングし、ラズパイ上のPython3からbluepyモジュールを使ってコネクトしました。そしてその様子をラズパイ上のWiresharkで観察してみました。そこで痛感したことは、Handle / UUID / Characteristic などというものを理解しないと何が何だかサッパリということであります。今回は、micro:bitの「それら」をダンプして何があるのか調べてみます。

“ブロックを積みながら(18) BLE、ハンドル、UUID、CHARACTERISTICS” の続きを読む