ATOM Lite 購入しました ~ UDPソケット受信までテスト

2021年1月20日

このたび、ATOM Liteを購入しました。ATOM Liteは、M5Stackシリーズの中では最小のマイコンモジュール(※投稿時)です。そのATOMシリーズには、ディスプレイがありません。ATOM Liteは1個のLEDがあるだけで、上位機種のATOM Matrixは25個のLEDを持ちます。

今までM5StickCを使ってきましたが、組み込んで使うには大きすぎるということで、ATOM Liteを購入てみました。

1.ATOM Lite の構成

ATOM Liteは、GPIOM5StickCよりも多くて、6つあります。またGrove端子も持ちます。

とにかくコンパクトで軽いのですが、電源がないことには注意です。でもWi-FiBluetoothは搭載しているので、工作におけるコントロールモジュールとして大いに期待できます。そして操作の指示をスマートフォンで行えば、簡単なラジコンが作れるでしょう。

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は、こんな風にバッテリーと接続してもコンパクトです。

今のところ、ラジコンの船か飛行機の作成を想定しています。これから構想を練っていきたいと思います。