編集履歴一覧に戻る
Foopingのアイコン画像

Fooping が 2023年07月01日12時25分03秒 に編集

コメント無し

本文の変更

## 概要 M5 ATOM S3を使ってサーボモータを手っ取り早く動かす方法を紹介します。 ++M5 ATOM S3とは https://www.switch-science.com/products/8670++ ## 必要なもの ![キャプションを入力できます](https://camo.elchika.com/a75b06fbcad2e76c4a968c2951ec1e998988f605/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34306535643335612d306636632d343334642d393230302d6562623231383562613066622f38373635616462632d383062632d343131652d383735332d383637313037343461306531/) - 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 ![キャプションを入力できます](https://camo.elchika.com/1e27736dfd2b8d6ace61f5dfe68a8e471737cf84/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34306535643335612d306636632d343334642d393230302d6562623231383562613066622f34353763656365362d343463372d343832622d613433302d326539356435383062373634/) ## M5Stackボードを追加 ツール > ボードマネージャ からM5Stackをインストールします。 ![キャプションを入力できます](https://camo.elchika.com/1b4ac7a56e0a8bcfc60b9eca50e30728f3de0a37/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34306535643335612d306636632d343334642d393230302d6562623231383562613066622f36666334636432322d613034322d343139662d393834652d396636383662353064356435/) ## ライブラリの追加 ツール > ライブラリを管理 からライブラリを追加します。 M5Unified、ESP32Servoを検索してインストールします。 ![キャプションを入力できます](https://camo.elchika.com/af6bbed3cf481d721144e5ca4860283330e041a2/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34306535643335612d306636632d343334642d393230302d6562623231383562613066622f36376266373730652d616534622d343961392d616265652d366339623732356531393465/) ![キャプションを入力できます](https://camo.elchika.com/d55c7d25c6ae6e34a41bcc54e4caf0ad7f40506c/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34306535643335612d306636632d343334642d393230302d6562623231383562613066622f35646139393736352d623562642d343764302d396637362d643737356232663535643238/) ## 接続 図を参考にATOM S3とサーボモータを接続します。サーボモータを接続する配線の色に気をつけてください。茶色がGND(G)、赤が電源(V)オレンジが信号(S)です。 ![キャプションを入力できます](https://camo.elchika.com/697cda1c1d9e3f771906b6a2bde7197b99fcbb79/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34306535643335612d306636632d343334642d393230302d6562623231383562613066622f64393166383966302d643031312d343239302d396531642d303433656336616433623066/) ## スケッチを作成する ファイル > 新規スケッチ から新しいスケッチを作成して以下のソースをコピペしてください。 (初期で表示されているソースは消してください)

-

```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)を選択します。 ![キャプションを入力できます](https://camo.elchika.com/9b56725c7a7f6dc77ffad43b374be53b02e1061d/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34306535643335612d306636632d343334642d393230302d6562623231383562613066622f63323636356339342d303665372d346361322d613663652d626536363961306138663639/) ++認識しない場合はUSBドライバが必要かもしれません。 https://docs.m5stack.com/en/download https://www.koki.muhen.jp/archives/2075++ 書き込みボタン(→)を押す。書き込めたら完成です。 ![キャプションを入力できます](https://camo.elchika.com/6b33bc56f1ed8d744e22af16695ae9347b0f55a0/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34306535643335612d306636632d343334642d393230302d6562623231383562613066622f30376336353864392d326137632d343833372d623338612d613833303432613438393865/) ## 動作を確認する

-

M5 ATOM S3の画面を押し込むとサーボモータが90°回転します。

+

M5 ATOM S3の画面を押し込むとサーボモータが180°回転します。

回転しない場合は接続が正しいか確認してください。 ## 補足 M5Unifiedを使用しているので、```int servo1Pin = 2;```を変更すれば 他のM5Stackシリーズでも動くはずです。この記事の構成ではG2を使用しています。 ![キャプションを入力できます](https://camo.elchika.com/bcdf9f8c566a57c583aab4881feda48dc36aa788/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f34306535643335612d306636632d343334642d393230302d6562623231383562613066622f31616339313531632d646232392d343066352d613432642d646265326263623065386162/)