Fooping が 2023年07月01日12時25分03秒 に編集
コメント無し
本文の変更
## 概要 M5 ATOM S3を使ってサーボモータを手っ取り早く動かす方法を紹介します。 ++M5 ATOM S3とは https://www.switch-science.com/products/8670++ ## 必要なもの  - M5 ATOM S3 https://ssci.to/8670 - サーボモータsg90 https://akizukidenshi.com/catalog/g/gM-08761/ - Groveケーブル https://ssci.to/798 - Grove -サーボ 変換コネクタ https://ssci.to/6922 - USBケーブル (Type-C) - パソコン ArduinoIDE バージョン:2.1.0 ++ArduinoIDE開発環境はセットアップはセットアップ済みであることを前提とします。参考記事↓ https://invisiblepotato.com/arduino00/++ ## ボードマネージャーの設定 ArduinoIDE > 基本設定 を開き、以下のURLを追加のボードマネージャに設定します。 > https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json  ## M5Stackボードを追加 ツール > ボードマネージャ からM5Stackをインストールします。  ## ライブラリの追加 ツール > ライブラリを管理 からライブラリを追加します。 M5Unified、ESP32Servoを検索してインストールします。   ## 接続 図を参考にATOM S3とサーボモータを接続します。サーボモータを接続する配線の色に気をつけてください。茶色がGND(G)、赤が電源(V)オレンジが信号(S)です。  ## スケッチを作成する ファイル > 新規スケッチ から新しいスケッチを作成して以下のソースをコピペしてください。 (初期で表示されているソースは消してください)
```arduino:ボタン(ATOMS3の画面)を押すとサーボモータが90°回転するプログラム
```arduino:ボタン(ATOMS3の画面)を押すとサーボモータが180°回転するプログラム
#include <M5Unified.h> #include <ESP32Servo.h>
Servo servo1; // create four servo objects int servo1Pin = 2;
Servo servo1; // サーボオブジェクト作成 int servo1Pin = 2; //ピンG2を指定
// Published values for SG90 servos; adjust if needed
// サーボモータ設定
int minUs = 500; int maxUs = 2400;
int pos = 0; // position in degrees int button = 0;
//サーボモータ角度 int pos = 0;
void setup() {
auto cfg = M5.config(); // M5Stack初期設定用の構造体を代入 // configを設定する場合はここで設定 // 例 // cfg.external_spk = true;
// M5Stack初期設定用の構造体を代入 auto cfg = M5.config();
M5.begin(cfg); // M5デバイスの初期化 servo1.setPeriodHertz(50); // Standard 50hz servo
// M5デバイスの初期化 M5.begin(cfg); //サーボモータ初期化 servo1.setPeriodHertz(50);
servo1.attach(servo1Pin, minUs, maxUs); } void loop() { M5.update();
//ボタンを押した時の動作
if (M5.BtnA.wasPressed()) {
for (pos = 0; pos <= 180; pos += 1) { // sweep from 0 degrees to 180 degrees // in steps of 1 degree
//サーボモータを0-180°まで1°ずつスイープする。 for (pos = 0; pos <= 180; pos += 1) {
servo1.write(pos);
delay(2); // waits 20ms for the servo to reach the position
delay(2);
} }
//ボタンを離した時の動作
if (M5.BtnA.wasReleased()) {
for (pos = 180; pos >= 0; pos -= 1) { // sweep from 180 degrees to 0 degrees
//サーボモータを180°-0°まで1°ずつスイープする。 for (pos = 180; pos >= 0; pos -= 1) {
servo1.write(pos); delay(2); } } delay(1); } ``` ## 書き込む ArduinoIDE上部のプルダウンバーからボード(M5Stack-ATOMS3)を選択します。  ++認識しない場合はUSBドライバが必要かもしれません。 https://docs.m5stack.com/en/download https://www.koki.muhen.jp/archives/2075++ 書き込みボタン(→)を押す。書き込めたら完成です。  ## 動作を確認する
M5 ATOM S3の画面を押し込むとサーボモータが90°回転します。
M5 ATOM S3の画面を押し込むとサーボモータが180°回転します。
回転しない場合は接続が正しいか確認してください。 ## 補足 M5Unifiedを使用しているので、```int servo1Pin = 2;```を変更すれば 他のM5Stackシリーズでも動くはずです。この記事の構成ではG2を使用しています。 