« Wio-TermianlのHardwareTest(Arduino版) | トップページ | PlatformIOとArduino(本家)ツールの差分 »

2020年10月17日 (土)

XIAO/M5Atom/Wio-TerminlでCardKB(I2C)を使用する(Arduino版)

2020/10/17
初版

PlatformIO XAIO M5ATOM WIOT CardKB(I2C)

PlatformIO XAIO M5ATOM WIOT CardKB(I2C)

概要

XIAO/M5Atom/Wio-Terminlで以下のCardKB(I2C)を使用する(Arduino版)。
3つのボードのplatformがArduinoなのでソースを共通化して動かしてみる。

CardKB(M5Stack用カード型キーボードユニット)

開発ツールplatformioのインストールについては以下を参照のこと:
開発ツールPlatformIOをcliで使う(Seeeduino-XIAO版)
M5Atomを開発ツールPlatformIOで使う(M5Atom/Arduino版)
M5Atomを開発ツールPlatformIOで使う(Windows10版)
開発ツールPlatformIOをcli(comand line interface)で使う(v2:Seeeduino-Wio-Terminal/Arduino版)

接続

本モジュールはI2Cタイプなので(I2C用の)Grove-Conectorに接続する。
(XIAOは専用のshield経由で接続する)

platformio.ini

XIAO用:

; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:seeed_xiao] platform = atmelsam board = seeed_xiao framework = arduino build_flags = -DXIAO upload_protocol = sam-ba monitor_speed = 115200 lib_ldf_mode = deep+

M5Atom用:

; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:m5stick-c] platform = espressif32 board = m5stick-c framework = arduino build_flags = -DM5ATOM monitor_speed = 115200 lib_deps = # use M5Atom lib 3113 # use "FastLED" 126 lib_ldf_mode = deep+

Wio-Terminal用:

; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:seeed_wio_terminal] platform = atmelsam board = seeed_wio_terminal framework = arduino build_flags = -DWIO_TERMINAL upload_protocol = sam-ba monitor_speed = 115200 lib_ldf_mode = deep+

デモ・スケッチ

以下のようなファイルを作成する:
src/main.ino

#ifdef M5ATOM #include "M5Atom.h" #endif //#include <Arduino.h> #include <Wire.h> #define CARDKB_ADDR 0x5F void setup(void) { Serial.begin(115200); #ifdef M5ATOM M5.begin(); // Wire.begin() must be after M5.begin() Wire.begin(26, 32); // Grove Connector of Atom Matrix (I2C GPIO Pin: G26,G32) #endif #ifdef XIAO Wire.begin(); #endif #ifdef WIO_TERMINAL Wire.begin(); #endif } void loop() { Wire.requestFrom(CARDKB_ADDR, 1); while(Wire.available()) { char c = Wire.read(); // receive a byte as characterif if (c != 0) { Serial.print(c); Serial.print("("); Serial.print(c, HEX); Serial.println(")"); } } // delay(10); }

ビルド・実行

以下の手順でビルド・実行する:
(platformio.iniは、ボードごとに切り替える)

run pio -t upload

スケッチが起動した後、
通信ソフト(「picocom /dev/ttyACM0 -b115200」または「picocom /dev/ttyUSB0 -b115200」)を起動する。
CardKBのキーを押すと、対応した文字が通信ソフトの画面に表示される。

CardKBの操作の詳細は以下を参照のこと:
CardKBドキュメント

表示例

a(61) s(73) d(64) f(66) g(67) h(68) j(6A) k(6B) l(6C) A(41) S(53) D(44) F(46) G(47) H(48) J(4A) K(4B) L(4C) ;(3B) :(3A) `(60) +(2B) -(2D) _(5F) =(3D) ?(3F)

参考情報

Seeeduino XIAO用Grove シールド バッテリー管理チップ 搭載

XIAO/M5Atom/Wio-Terminalでneopixelsを制御する(Arduino版)

XIAO/M5Atomで気圧センサー(HP206C)を動かす(XIAO/Arduino版、M5Atom/Arduino版)
XIAO/M5AtomでLCD240x240(SPI)を制御する((XIAO/Arduino版、M5Atom/Arduino版)

M5AtomでOLED128x128(SPI)を制御する(Arduino版)
XIAOでOLED128x128(SPI)を制御する(Arduino版)
XIAOでLCD160x80(SPI)を制御する(Arduino版)

以上

|

« Wio-TermianlのHardwareTest(Arduino版) | トップページ | PlatformIOとArduino(本家)ツールの差分 »

PlatformIO」カテゴリの記事

Arduino」カテゴリの記事

XIAO」カテゴリの記事

Wio Terminal」カテゴリの記事

M5Atom」カテゴリの記事

CardKB」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« Wio-TermianlのHardwareTest(Arduino版) | トップページ | PlatformIOとArduino(本家)ツールの差分 »