Last active
June 7, 2024 13:15
-
-
Save katsuyoshi/7b64820cb834dd7543779e17b990f5ad to your computer and use it in GitHub Desktop.
M5AtomS3とToioで倒立振子に挑戦
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <Arduino.h> | |
| #include <M5Unified.h> | |
| #include <MadgwickAHRS.h> | |
| #define Serial USBSerial | |
| Madgwick madgwick = Madgwick(); | |
| float roll = 0; | |
| float pitch = 0; | |
| float yaw = 0; | |
| static void imu_task(void*) | |
| { | |
| int freq = 100; | |
| madgwick.begin(freq); | |
| while(true) { | |
| float val[6]; | |
| M5.Imu.getGyro(&val[0], &val[1], &val[2]); | |
| M5.Imu.getAccel(&val[3], &val[4], &val[5]); | |
| madgwick.updateIMU(val[0], val[1], val[2], val[3], val[4], val[5]); | |
| roll = madgwick.getRoll(); | |
| pitch = madgwick.getPitch(); | |
| yaw = madgwick.getYaw(); | |
| delay(1000 / freq); | |
| Serial.printf("roll: %f, pitch: %f, yaw: %f\r\n", roll, pitch, yaw); | |
| } | |
| } | |
| void setup() { | |
| // M5Stack の初期化 | |
| auto cfg = M5.config(); | |
| cfg.clear_display = true; // default=true. clear the screen when begin. | |
| cfg.output_power = true; // default=true. use external port 5V output. | |
| cfg.internal_imu = true; // default=true. use internal IMU. | |
| cfg.internal_rtc = true; // default=true. use internal RTC. | |
| cfg.internal_spk = true; // default=true. use internal speaker. | |
| cfg.internal_mic = true; // default=true. use internal microphone. | |
| cfg.external_imu = true; // default=false. use Unit Accel & Gyro. | |
| cfg.external_rtc = true; // default=false. use Unit RTC. | |
| cfg.led_brightness = 64; // default= 0. system LED brightness (0=off / 255=max) (※ not NeoPixel) | |
| M5.begin(cfg); | |
| Serial.begin(115200); | |
| xTaskCreatePinnedToCore(imu_task, "imu_task", 4096, NULL, 25, NULL, APP_CPU_NUM); | |
| } | |
| void loop() { | |
| int h = M5.Display.height() / 8; | |
| int w = M5.Display.width() / 2; | |
| int ox = (M5.Display.width()+h)>>1; | |
| static int prev_xpos[3]; | |
| int xpos[3]; | |
| float val[3]; | |
| int color[3] = { TFT_RED, TFT_GREEN, TFT_BLUE }; | |
| xpos[0] = roll * w / 180; | |
| xpos[1] = pitch * w / 180; | |
| xpos[2] = yaw * w / 180; | |
| M5.Display.startWrite(); | |
| M5.Display.setClipRect(0, h, M5.Display.width(), M5.Display.height()); | |
| M5.Display.waitDisplay(); | |
| for (int i = 0; i < 3; ++i) | |
| { | |
| if (xpos[i] == prev_xpos[i]) continue; | |
| int px = prev_xpos[i]; | |
| if ((xpos[i] < 0) != (px < 0)) | |
| { | |
| if (px) | |
| { | |
| M5.Display.fillRect(ox, h * (i+2), px, h, M5.Display.getBaseColor()); | |
| } | |
| px = 0; | |
| } | |
| if (xpos[i] != px) | |
| { | |
| if ((xpos[i] > px) != (xpos[i] < 0)) | |
| { | |
| M5.Display.setColor(color[i]); | |
| } | |
| else | |
| { | |
| M5.Display.setColor(M5.Display.getBaseColor()); | |
| } | |
| M5.Display.fillRect(xpos[i] + ox, h * (i+2), px - xpos[i], h); | |
| } | |
| prev_xpos[i] = xpos[i]; | |
| } | |
| M5.Display.clearClipRect(); | |
| M5.Display.endWrite(); | |
| M5.Display.display(); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [env:ATOMS3] | |
| platform = [email protected] | |
| framework = arduino | |
| platform_packages = platformio/framework-arduinoespressif32@^3.20005.220925 | |
| board = esp32-s3-devkitc-1 | |
| lib_ldf_mode = deep | |
| monitor_speed = 115200 | |
| upload_speed = 1500000 | |
| board_build.f_cpu = 240000000L | |
| board_build.f_flash = 80000000L | |
| board_build.flash_mode = dio | |
| build_flags = | |
| -DCORE_DEBUG_LEVEL=3 | |
| -DUSE_USEBSERIAL | |
| -Iinclude | |
| lib_deps = | |
| M5Unified | |
| arduino-libraries/Madgwick@^1.2.0 |
Author
* { font-size: 13px; font-family: 'MS Pゴシック', sans-serif;}p, ul, ol, blockquote { margin: 0;}a { color: #0064c8; text-decoration: none;}a:hover { color: #0057af; text-decoration: underline;}a:active { color: #004c98;}
承知しました。
ご連絡ありがとうございました。
また進展ありましたら、お教えいただけますと幸いです。
…----- Original Message -----
From: "Katsuyoshi Ito" ***@***.***>
To: "katsuyoshi" ***@***.***>
Cc: "Comment" ***@***.***>
Date: 2024/06/06 木 20:33
Subject: Re: katsuyoshi/main.cpp
Re: katsuyoshi/main.cpp
@katsuyoshi commented on this gist.M5AtomS3とToioで倒立振子に挑戦 とても面白そうです。 ハードウェア含めて、作製方法お教えいただくことは可能でしょうか? 講義料支払います。 ご検討いただけますと幸いです。
これは成功してないので残念ながらお教えできることはないです。
Toioの通信で時間がかかっているのと、機構的にあまり良くないのだと思います。
—
Reply to this email directly, view it on GitHub or unsubscribe.
You are receiving this email because you commented on the thread.
Triage notifications on the go with GitHub Mobile for iOS or Android.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
これは成功してないので残念ながらお教えできることはないです。
Toioの通信で時間がかかっているのと、機構的にあまり良くないのだと思います。