software_development」カテゴリーアーカイブ

M5Stackとmicro:bitを合体させてみる – その2 (M5Stack側で動かしているプログラム)

M5Stackとmicro:bitを合体させてみるという話の続き。

M5Stack側に入れるプログラムを書く方法としては主なものは3つある。
(1) Arduino開発環境で、ESP32ライブラリ+M5Stack用ライブラリを使う方法で、言語はほぼC++。
(2) Espressifの開発環境ESP-IDFとSDKを使う方法で、言語は原則C言語。
(3) microPython

micro:bit側はmicroPythonを使っているので、M5Stack側もmicroPythonを使ってみたいのだが、自分はまだPythonを使うのが得意でないので出来ていない。
結局、一番簡単なArduinoで開発している。

とりあえずSerial2というM5Stack用のexampleをちょっとだけ改変して、画面に受信した文字列を表示するプログラムを作った。

インターフェース誌2018年9月号などを参考にしている。

Interface(インターフェース) 2018年 09 月号(Amazon)
続きを読む

micro:bitのオンライン開発環境でhexをダウンロードせず、テキストデータとして表示して欲しいのだけど

micro:bitのオンライン開発環境でhexをダウンロードせず、テキストデータとして表示して欲しいのだけど。
そういう機能はないのかなあ。

学校とかでmicro:bitを使う場合、インストール禁止以外に「ダウンロード禁止」というルールのせいで困るという。

micro:bitでは、実行させる前にhexファイルをダウンロードして、そのファイルをストレージデバイスにコピーしてプログラム書き込みするのだけど。ダウンロードが禁止されている学校だとhexの書き込みで詰んでしまうから駄目ということらしい。
続きを読む

機械学習 名古屋 第15回勉強会に参加してなかったので、発表資料を見て次回の予習

機械学習名古屋 第15回勉強会に参加してなかったので、発表資料を見て次回の予習をしてる。
(マンションの管理組合の仕事みたいなつまらない用事のため昨年度は土曜や日曜が多く潰れてしまってあまり勉強会に参加できなかった)

第16回勉強会には参加予定だ。
機械学習 名古屋 第16回勉強会 【ゲームの強化学習ハンズオン OpenAI Gym パート2】

前回の資料を読んでる。
ゲームの強化学習ハンズオン — OpenAI GymOpenAI gymで強化学習入門(機械学習名古屋第15回勉強会)

OpenAIのgymというライブラリを使ってみるという内容だ。
続きを読む

micro:bitでBluetooth-UARTを作るには その2 挫折編

micro:bitでBluetooth-UARTを作るには。という話の続き。

Make:CodeでBluetoothのブロック部品を使って、micro:bitとmicro:bitでBluetooth通信ができないか試してみた。
設定の項目で、ペアリングをどうするのかの設定が3種類あるのだが、それによってペアリングの挙動が変わる。

しかし、どの設定を使ってもmicro:bitどうしではBluetoothのペアリングをすることはできなかった。

それもそのはずで、Bluetoothの接続は片方がmasterとなり、もう片方がslaveとならないといけない。
masterは親機となり、子機を検索して接続をかける方になる。
slaveは子機側で、親機から接続を掛けられたらそれに応答する方になる。

micro:bitの場合には、slaveの機能しかないので、micro:bitとmicro:bitでBluetoothの接続は不可能だ。
そして、将来その機能が追加される予定もないそうだ。(ロードマップには無い)

ということで、Bluetoothを使ったUARTの無線ブリッジを作るという目論見は断念した。
Nordic Semiconductor独自方式の無線を使ったUARTの無線化はできているので、こちらを使うのがよいだろう。
micro:bitでUARTと無線通信をブリッジし、シリアル通信を無線化するのを試してみた

micro:bitでBluetooth-UARTを作るには

micro:bitでBluetooth-UARTを作るには、どうすればいいのだろうか。

自分はmicroPythonでmicro:bitのプログラムを書いているのだが、残念ながらmicro:bitのmicroPythonはBluetoothに対応していない。

一番ポピュラーな開発環境であるMake:codeではBluetoothに対応しているので、そちらを使えば可能なようだ。これはTypeScript(Microsoft版JavaScript)の開発環境だが、Node-REDみたいにGUIでブロックを組み合わせてプログラムをするグラフィカルな開発環境だ。

Make:codeでBluetoothのブロック部品を配置するのは、標準では出てこないので、Advanceという項目からAdd PackageでBluetoothを追加する。日本語だと、高度な機能→パッケージを追加という操作となる。
microbit Bluetooth Low Energy serial UART Support

Bluetoothのブロック部品には、このようなものがある。

加速度サービスとかボタンサービス、入出力端子サービスなどのサービスと名前のついたブロックは、これだけでBluetoothに加速度センサーなどの状態を送信してくれるもののようだ。

下の方にあるアドバタイズという名前のものはiBeaconのようなものを作るときに使うもののようだ。

基本的にはBluetoothのシリアル通信プロファイルを使うものばかりなので、Bluetooth HIDとかを使うことはできなさそう。
続きを読む

micro:bitで温度を測定して、無線で計測データを受信側micro:bitで受け取る

micro:bitで温度を測定して、無線で計測データを受信側micro:bitで受け取る。

前回の続き。
micro:bitでUARTと無線通信をブリッジし、シリアル通信を無線化するのを試してみた

温度を計測して、無線で送信するプログラムを書いてみた。

import radio
from microbit import display, Image, sleep, temperature

display.show(Image.HAPPY)
radio.on()
while True:
    s="t = "+str(temperature())+"\r\n"
    radio.send_bytes(s)
    sleep(5000)

続きを読む

M5StackというESP32マイコンのキットを手に入れた

M5StackというESP32マイコンのキットを手に入れた。

ESPマイコンのボードを今までいくつか買っていた。それらに比べて、M5Stackは、コンパクトな筐体に入っていて液晶やスピーカーやバッテリーなどが内蔵されているというのが特徴だ。


M5Stack拡張可能なマイクロ制御モジュールWiFi Bluetooth ESP32開発キットArduino LCD用2インチLCD ESP-32内蔵ESP8266(Amazon)
続きを読む

micro:bitでUARTを基板エッジコネクタ端子に出して使う場合、どのピンを使えばよいのか

micro:bitでUARTを基板エッジコネクタ端子に出して使う場合、どのピンを使えばよいのか。ちょっと調べてみた。

micro:bitでは、UARTをどのI/Oピンで使うのかは固定されていなくて、好きなI/OピンをUARTに設定して使用することができる。

結論から言うと、P0かP1かP2かP8のうち2つをUARTのTXとRXに設定して使うのがよい。
microPythonだと、次のようにUARTの初期化を書いて設定する。

uart.init(baudrate=9600, bits=8, parity=None, stop=1,tx=pin0,rx=pin1)

このようにtx=pin0,rx=pin1と書けば、UART送信用のTXはP0に設定され、受信用のRXはP1に設定される。
続きを読む