環境構築:Arduino IDE 入門チュートリアルを参考に IDE をインストールし、実際に使用する開発ボードに応じてボードマネージャおよび必要なライブラリをインストールしてください。
使用ライブラリ:
使用するハードウェア製品:

G2 になります。
writeMicroseconds 関数でサーボの回転位置を制御しています。Servo Kit 180° と Servo Kit 360° の両方に対応します。COUNT_LOW と COUNT_HIGH はそれぞれサーボの最小・最大パルス幅で、STEP はパルス幅増加のステップ値、SERVO_PIN はサーボ信号線接続用のデジタルピンを定義します。COUNT_LOW は通常 0° 位置、COUNT_HIGH は 180° 位置に対応します。writeMicroseconds 関数で値を指定すると、その位置まで回転し保持します。下記サンプル中の servo.writeMicroseconds(1500) は 180° サーボを 90° 位置へ回転させ、その位置を保持します。writeMicroseconds は回転速度と方向を制御します。COUNT_LOW は最大速度の反時計回り、COUNT_HIGH は最大速度の時計回り、中間値は停止状態を示します。COUNT_LOW ~ 中間値 の範囲では反時計回りで、値が大きいほど速度が速くなります。中間値 ~ COUNT_HIGH の範囲では時計回りで、値が大きいほど速度が遅くなります。下記サンプル中の servo.writeMicroseconds(1500) は 360° サーボを停止状態にします。#include "M5Unified.h"
#include "M5GFX.h"
#include "ESP32Servo.h"
// Macro definitions for servo control parameters
#define COUNT_LOW 500 // Minimum pulse width in microseconds (μs) for the servo (typically corresponds to 0° position)
#define COUNT_HIGH 2500 // Maximum pulse width in microseconds (μs) for the servo (typically corresponds to 180° position)
#define STEP 100 // Increment step for pulse width (controls how smoothly the servo moves between positions)
#define SERVO_PIN 2 // Digital pin connected to the servo motor's signal wire
Servo servo;
void setup() {
M5.begin();
servo.attach(SERVO_PIN, COUNT_LOW, COUNT_HIGH); // Attach the servo to the specified pin, with defined min (COUNT_LOW) and max (COUNT_HIGH) pulse widths
M5.Lcd.setFont(&fonts::FreeMonoBoldOblique12pt7b);
M5.Lcd.drawCenterString("SERVO", 160, 110);
}
void loop() {
servo.writeMicroseconds(500);
delay(2000);
servo.writeMicroseconds(1500); // 90° for 180° Kit, Stop for 360° Kit
delay(2000);
servo.writeMicroseconds(2500);
delay(2000);
servo.writeMicroseconds(1500); // 90° for 180° Kit, Stop for 360° Kit
delay(2000);
}1. ダウンロードモード:デバイスにプログラムを書き込む前にダウンロードモードへ移行する必要があります。メインコントローラによって手順は異なります。詳細はArduino IDE 入門チュートリアルページ下部のデバイス別書き込み方法一覧を参照してください。
AtomS3R の場合、リセットボタンを約 2 秒間長押しし、内部の緑色 LED が点灯したら放します。この時点でダウンロードモードに移行し、書き込み待機状態になります。