ブロックを積みながら(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で「特性」読み出し” の続きを読む

部品屋根性(43) M5Stack用CAN-BUSユニット, CA-IS3050G搭載

M5Stack_CAN_UNIT
Joseph Halfmoon

前回、Arduino用のCANバス・インタフェース・ボードを使って、CANフレームを観察できることを確かめました。でも1台では肝心の通信ができません。それでもう一台CANバス・インタフェース・ボードを購入してあります。M5Stack用のCAN UNITです。動いたです。でも最初、早合点で接続間違えました。私のせい。

“部品屋根性(43) M5Stack用CAN-BUSユニット, CA-IS3050G搭載” の続きを読む

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

PIOtestDUT
Joseph Halfmoon

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

部品屋根性(42) OBD-II CAN-BUS Dev Kit、CAN送信波形を確認

OBD-II_CAN-BUS_Dev_Kit
Joseph Halfmoon

GW前にスイッチサイエンス社から買い込んだものの一つにOBD2コネクタ付きのCAN-BUS Dev Kitというものがあります。マイコン間をCANで接続したかっただけなので、OBD2コネクタを使う予定がある分けではないのですが何故か嬉しい。大体自分の車のOBD2コネクタの位置など知らないのですがね。本日はサンプルソフトでフレーム垂れ流し、CAN信号を観察できることを確認。

“部品屋根性(42) OBD-II CAN-BUS Dev Kit、CAN送信波形を確認” の続きを読む

ブロックを積みながら(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” の続きを読む

MicroPython的午睡(19) ラズパイPico、「普通の」SRAM接続に手こずる

SRM2B256SLMX55
Joseph Halfmoon

前回前々回とシリアル接続のメモリをRaspberry Pi PicoのMicroPythonで読み書きしてみました。今回は「普通の」バスのSRAMを読み書きしてみようと思います。今時、「普通の」バスを扱えるMCUなど滅多に見ないし、ラズパイPicoにも外バスはありません。例のPIO使えばデキそうなんだけれど。

“MicroPython的午睡(19) ラズパイPico、「普通の」SRAM接続に手こずる” の続きを読む

ブロックを積みながら(17) micro:bitとラズパイ、ペアリング+Wireshark

BBC micro:bit paired with Raspberry Pi
Joseph Halfmoon

前回はmicro:bitからの垂れ流し(broadcast)パケットをラズパイで一方的に受信してみました。今回は、micro:bitとラズパイをpairingいたし、双方向のBLE通信をラズパイ上のWiresharkで覗き見してみようと思います。とはいえ、BLEプロトコル素人なので、まずは遠くからやり取りの様子を眺めてみた、というところ。

“ブロックを積みながら(17) micro:bitとラズパイ、ペアリング+Wireshark” の続きを読む

MicroPython的午睡(18) ラズパイPico、SPIでシリアルSRAM接続

23LC512
Joseph Halfmoon

前回はシリアルEEPROM、I2C接続でした。今回はシリアルSRAM、SPI接続であります。前回はMicroPythonからのI2C制御、釈然としない部分ありだったのですが、今回のSPIは明朗会計なんであります。ほとんど何も考えずに接続すれば動作してしまう感じ。落差大きいです。 “MicroPython的午睡(18) ラズパイPico、SPIでシリアルSRAM接続” の続きを読む

MicroPython的午睡(17) ラズパイPico、I2CでシリアルEEPROM接続

24LC64 I2C EEPROM
Joseph Halfmoon

前回はRaspberry Pi Picoに独特なPIOの利用でしたが、今回は一般的なI2Cです。接続するのはEEPROMです。マイクロチップ製の24LC64、64Kbit品です。MicroPythonからメモリの読み書きは「とりあえず」出来たんでありますが、いまだ釈然としない事項が残ります。おまけにI2CバスをSCAN時のロジアナ波形もあり。

“MicroPython的午睡(17) ラズパイPico、I2CでシリアルEEPROM接続” の続きを読む

MicroPython的午睡(16) ラズパイPico、PIOで74HC595制御、簡単

PIO_74HC595_LGANA
Joseph Halfmoon

前回は、Raspberry Pi PicoのProgramable IO(PIO)が可能性無限大、みたいな話を書きましたが、オシロで波形を観察したにとどまりました。今回はその威力を実地に確かめるべく、前々回の7セグLED4桁駆動回路に適用してみます。一撃で任意の波形を作れるPIOがあると本当に楽だ。 “MicroPython的午睡(16) ラズパイPico、PIOで74HC595制御、簡単” の続きを読む

MicroPython的午睡(15) ラズパイPico、プログラマブルIOの威力

Raspberry Pi Pico Programmable IO DUT
Joseph Halfmoon

Raspberry Pi PicoのMCU RP2040の大きな特徴がPIO(Programable IO)とよぶ、IO制御の仕組みだと思います。プログラム可能なステートマシンでIO端子を直接制御するもの。可能性無限大。そしてMicroPythonからでも「プログラム」可能でした。まずは今回はお試し。ちょっとした波形を作って観察してみます。 “MicroPython的午睡(15) ラズパイPico、プログラマブルIOの威力” の続きを読む

MicroPython的午睡(14) ラズパイPico、7セグ4桁、とりあえずタイマ駆動

Raspberry Pi Pico with 7 segment LED
Joseph Halfmoon

前回までLEDの4個ばかりでラズパイPicoのマルチコアの動作とかを確かめてきました。今回、Picoの機能を活かしても少しIOを触ってみるために外付けのハードを追加しました。とはいえLEDに変わりありません。が、4桁の7セグLEDなのでダイナミック駆動必須です。今回から時間縛りがあって多ピンの連動が必要なIO操作をやって行く予定です。 “MicroPython的午睡(14) ラズパイPico、7セグ4桁、とりあえずタイマ駆動” の続きを読む