ATOM Lite 購入しました ~ UDPソケット受信までテスト
このたび、ATOM Liteを購入しました。ATOM Liteは、M5Stackシリーズの中では最小のマイコンモジュール(※投稿時)です。そのATOMシリーズには、ディスプレイがありません。ATOM Liteは1個のLEDがあるだけで、上位機種のATOM Matrixは25個のLEDを持ちます。
今までM5StickCを使ってきましたが、組み込んで使うには大きすぎるということで、ATOM Liteを購入てみました。
1.ATOM Lite の構成
ATOM Liteは、GPIOがM5StickCよりも多くて、6つあります。またGrove端子も持ちます。
とにかくコンパクトで軽いのですが、電源がないことには注意です。でもWi-FiやBluetoothは搭載しているので、工作におけるコントロールモジュールとして大いに期待できます。そして操作の指示をスマートフォンで行えば、簡単なラジコンが作れるでしょう。
2.環境の構築
ATOM Liteは、電源を持ちません。開発においては、母艦であるパソコンとUSB接続して使います。
Arduino IDEの環境構築
ATOM Liteの開発環境を構築します。基本的なセットアップを別記事で用意しました。まずは、そちらを読んでセットアップしてください。
ATOMライブラリだけでビルドすると、エラーが出ました。上図の「FastLED」ライブラリを追加する必要があります。ライブラリマネージャーで追加しておいてください。
※上図ではすでにインストールされている画面です。
3.サンプルプログラム
今回作成するプログラムは、Wi-Fiの接続を確立して、UDPソケット通信の受信ができるところまでとします。
#include "M5Atom.h"
#include <WiFi.h>
#include <WiFiUdp.h>
#define BUFSIZE 1024
const char* ssid = "xxxxxxxxxx";
const char* password = "xxxxxxxxxx";
const int port = 60000;
WiFiUDP udp;
void setup_wifi(){
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
}
Serial.println("\nConnected");
Serial.println(WiFi.localIP());
delay(100);
udp.begin(port);
M5.dis.drawpix(0, 0xff0000);
delay(100);
}
void setup() {
M5.begin(true, false, true);
delay(100);
M5.dis.drawpix(0, 0x0000f0);
delay(100);
setup_wifi();
}
void loop() {
char packetBuffer[BUFSIZE];
M5.update();
delay(100);
int packetSize = udp.parsePacket();
if (packetSize){
udp.read(packetBuffer, packetSize);
Serial.println("received");
Serial.println(packetBuffer);
delay(100);
}
}
ATOM Liteはディスプレイがないので、シリアルポートにログを出力しています。それは「Serial.println」などの関数で出力しています。出力結果は、「ツール」「シリアルモニタ」で表示されるウインドウに表示されます。
また、適度に「delay」を入れていますが、入れないとタイミングが合わずに動作がストップします。サンプルは少し多すぎだと思いますが、シリアル出力のタイミングは調整すると良いでしょう。
LEDの色に「M5.dis.drawpix」を使っています。第一引数はLEDの番号?で、ATOM Liteは一つしかないので「0」です。第二引数は色を指定しています。その色の指定ですが、緑、赤、青の並びであることに注意してください(最初嵌った)。
※色の並びはLEDにより異なるようです。実際にやってみて、その都度修正する必要がありそうです。
4.動作させてみる
UDPソケット通信のスマートフォン側送信プログラムは今回は割愛します。上図のように、スマートフォンから送られた時刻などが受信できました。(受信データの語尾にゴミがあるようですが、今回はここまで)
5.何を作ろう?
ATOM Liteを使った工作はいろいろありそうですが、まだ具体的には決まっていません。一番多いのはロボットですが、私が参戦するまでもないでしょう。
ATOM Liteは、こんな風にバッテリーと接続してもコンパクトです。
今のところ、ラジコンの船か飛行機の作成を想定しています。これから構想を練っていきたいと思います。