前回は、BBC micro:bit のBLE特性(Characteristics)のうち、読めばわかりそうなものをラズパイPython3で読み出してみました。今回は、BLE Uartサービスに「書き込んで」micro:bitを鳴かせてみたいとおもいます。また、前回のコードだとmicro:bit v2ではうまく行かないことも発覚したので修正しました。
MicroPython的午睡(21) ラズパイPico、M5AtomLiteとUART通信
今回はハードウエアの周辺機能の利用に戻りたいと思います。毎度毎度「お世話になっている」のに取り上げてこなかったUART(調歩同期方式シリアル通信)であります。当然、通信する相手なければ使ってみることができませぬ。そこで今回用意いたしましたのは、M5Stack社の超小型デバイスATOM Liteであります。Raspberry Pi Picoに比べても小さいです。機能的には相互補完的?
ブロックを積みながら(19) micro:bit BLE, Pythonで「特性」読み出し
前回、bluepy モジュールを使ってラズパイ上のPython3のスクリプトでBBC micro:bit のBLEアトリビュート内の「特性(characteristic)」のハンドルをリストいたしました。ハンドルが分かれば実際の値にアクセスできます。今回は、読み出すだけの特性を中心に「読んで」みたいと思います。
部品屋根性(43) M5Stack用CAN-BUSユニット, CA-IS3050G搭載
前回、Arduino用のCANバス・インタフェース・ボードを使って、CANフレームを観察できることを確かめました。でも1台では肝心の通信ができません。それでもう一台CANバス・インタフェース・ボードを購入してあります。M5Stack用のCAN UNITです。動いたです。でも最初、早合点で接続間違えました。私のせい。
MicroPython的午睡(20) ラズパイPico、PIO操作は最大8ビット?
Raspberry Pi PicoのPIO(Programmable IO)は、Picoのユニークな機能であり、かつ適応能力最強の「ペリフェラル」だと思います。勿論MicroPythonからも利用できます。しかし前回、普通のSRAMをPIO経由で制御しようとしてトラぶりました。今回は釈然としない部分に絞ってその動作を実機確認してみたいと思います。 “MicroPython的午睡(20) ラズパイPico、PIO操作は最大8ビット?” の続きを読む
部品屋根性(42) OBD-II CAN-BUS Dev Kit、CAN送信波形を確認
GW前にスイッチサイエンス社から買い込んだものの一つにOBD2コネクタ付きのCAN-BUS Dev Kitというものがあります。マイコン間をCANで接続したかっただけなので、OBD2コネクタを使う予定がある分けではないのですが何故か嬉しい。大体自分の車のOBD2コネクタの位置など知らないのですがね。本日はサンプルソフトでフレーム垂れ流し、CAN信号を観察できることを確認。
ブロックを積みながら(18) BLE、ハンドル、UUID、CHARACTERISTICS
前回は、micro:bitとRaspberry Pi 3 model B+をペアリングし、ラズパイ上のPython3からbluepyモジュールを使ってコネクトしました。そしてその様子をラズパイ上のWiresharkで観察してみました。そこで痛感したことは、Handle / UUID / Characteristic などというものを理解しないと何が何だかサッパリということであります。今回は、micro:bitの「それら」をダンプして何があるのか調べてみます。
MicroPython的午睡(19) ラズパイPico、「普通の」SRAM接続に手こずる
ブロックを積みながら(17) micro:bitとラズパイ、ペアリング+Wireshark
前回はmicro:bitからの垂れ流し(broadcast)パケットをラズパイで一方的に受信してみました。今回は、micro:bitとラズパイをpairingいたし、双方向のBLE通信をラズパイ上のWiresharkで覗き見してみようと思います。とはいえ、BLEプロトコル素人なので、まずは遠くからやり取りの様子を眺めてみた、というところ。
MicroPython的午睡(18) ラズパイPico、SPIでシリアルSRAM接続
前回はシリアルEEPROM、I2C接続でした。今回はシリアルSRAM、SPI接続であります。前回はMicroPythonからのI2C制御、釈然としない部分ありだったのですが、今回のSPIは明朗会計なんであります。ほとんど何も考えずに接続すれば動作してしまう感じ。落差大きいです。 “MicroPython的午睡(18) ラズパイPico、SPIでシリアルSRAM接続” の続きを読む
MicroPython的午睡(17) ラズパイPico、I2CでシリアルEEPROM接続
前回はRaspberry Pi Picoに独特なPIOの利用でしたが、今回は一般的なI2Cです。接続するのはEEPROMです。マイクロチップ製の24LC64、64Kbit品です。MicroPythonからメモリの読み書きは「とりあえず」出来たんでありますが、いまだ釈然としない事項が残ります。おまけにI2CバスをSCAN時のロジアナ波形もあり。
MicroPython的午睡(16) ラズパイPico、PIOで74HC595制御、簡単
前回は、Raspberry Pi PicoのProgramable IO(PIO)が可能性無限大、みたいな話を書きましたが、オシロで波形を観察したにとどまりました。今回はその威力を実地に確かめるべく、前々回の7セグLED4桁駆動回路に適用してみます。一撃で任意の波形を作れるPIOがあると本当に楽だ。 “MicroPython的午睡(16) ラズパイPico、PIOで74HC595制御、簡単” の続きを読む
MicroPython的午睡(15) ラズパイPico、プログラマブルIOの威力
Raspberry Pi PicoのMCU RP2040の大きな特徴がPIO(Programable IO)とよぶ、IO制御の仕組みだと思います。プログラム可能なステートマシンでIO端子を直接制御するもの。可能性無限大。そしてMicroPythonからでも「プログラム」可能でした。まずは今回はお試し。ちょっとした波形を作って観察してみます。 “MicroPython的午睡(15) ラズパイPico、プログラマブルIOの威力” の続きを読む
MicroPython的午睡(14) ラズパイPico、7セグ4桁、とりあえずタイマ駆動
前回までLEDの4個ばかりでラズパイPicoのマルチコアの動作とかを確かめてきました。今回、Picoの機能を活かしても少しIOを触ってみるために外付けのハードを追加しました。とはいえLEDに変わりありません。が、4桁の7セグLEDなのでダイナミック駆動必須です。今回から時間縛りがあって多ピンの連動が必要なIO操作をやって行く予定です。 “MicroPython的午睡(14) ラズパイPico、7セグ4桁、とりあえずタイマ駆動” の続きを読む