arduino
M5stamp S3にはESP32-S3FN8が搭載されているのでBLEにも対応しています。 別件でBLEビーコンを実験してみたかったので、Google大本営謹製のEDDYstoneという実装をお借りして、色々実験してみようと思います。 実際のところ 実装のうち、Eddystone-URL……名前…
実際のところ #include <Arduino.h> #include <M5Core2.h> #include <BleGamepad.h> BleGamepad bleGamepad; // 円の初期位置と色 int circleX = 160; int circleY = 120; int circleRadius = 20; uint32_t circleColor = WHITE; void setup() { M5.begin(); Serial.begin(115200); Serial.printl</blegamepad.h></m5core2.h></arduino.h>…
実際のところ #include <Arduino.h> #include <BleGamepad.h> BleGamepad bleGamepad; void setup() { Serial.begin(115200); Serial.println("Starting BLE work!"); bleGamepad.begin(); // The default bleGamepad.begin() above enables 16 buttons, all axes, one hat, and no si</blegamepad.h></arduino.h>…
実際のところ レインボーカラーで段階的に色が変わっていくサンプル 後々のため、I2Cでステータスを出すコードもコメントアウトで残しておきます #include <M5Unified.h> #include <FastLED.h> //#include <Wire.h> // LED Strip Configuration #define LED_PIN 3 // GPIO pin for LED data (</wire.h></fastled.h></m5unified.h>…
実際のところ ボードは "M5stack-stamps3"、 m5stackのような専用ライブラリはなく、"M5Unified"というのがあるので、これをつかうfastLEDもついでに使うと、platformIO.iniのファイルはこんな感じになる [env:m5stack-stamps3] platform = espressif32 boar…
shuzo-kino.hateblo.jp の構成*1を踏襲して、M5stack版を作ります。RASBEE 5個セット RepRap A4988 ステッピングモータドライバモジュール HR4988 3Dプリンター 交換チップ 並行輸入品 StepStick HR-A4988 Ramps 1.4用 モーター駆動 コントローラ ラジエータ…
の続き。 このままだと電源を再投入しようがファームを書き換えようがEEPROMが消えないので上書きリセットの方法を実装します 実際のところ まずsetup関数より先に二つの関数を追加 // EEPROMをクリアする関数 void clearEEPROM() { for (int i = 0; i < ROM…
基本ロジックが同じだがデバイスIDが違う場合……というケースの対処方法 実際のところ #include <M5Stack.h> #include <EEPROM.h> // デバイスIDを保存するEEPROMアドレス #define DEVICE_ID_ADDRESS 0 // 書き込みを行うEEPROMの確保サイズ #define ROMSIZE 4 // デバイスID(初期</eeprom.h></m5stack.h>…
実際のところ 送信側 #include <M5Stack.h> #include <mcp_can.h> #include <SPI.h> const int SPI_CS_PIN = 12; MCP_CAN CAN(SPI_CS_PIN); void setup() { M5.begin(); M5.Power.begin(); M5.Lcd.println("M5Stack wake up!"); if (CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_8MHZ) == CAN_OK</spi.h></mcp_can.h></m5stack.h>…
shuzo-kino.hateblo.jp の続き 今度は受信側です 実際のところ 何も受信できてないとクラッシュするのでバッファに何か入れられるようになるまでヒアします #include <M5Stack.h> #include <mcp_can.h> #include <SPI.h> #define CAN0_INT 15 // 割り込みピンを設定 volatile bool message</spi.h></mcp_can.h></m5stack.h>…
実際のところ VScode上のplatformio環境でやります ライブラリ導入 lib_depsに必要なライブラリ記述を追記 [env:m5stack-core2] platform = espressif32 board = m5stack-core2 framework = arduino lib_deps = m5stack/M5Stack@^0.4.6, coryjfowler/mcp_can…
実際のところ #include <M5Stack.h> #include <SD.h> File myFile; double imuData[3]; // pitch, roll, yaw void setup() { M5.begin(); M5.IMU.Init(); SD.begin(TFCARD_CS_PIN); // SDカードに書き込むファイルを開く myFile = SD.open("/temp.txt", FILE_WRITE); if (myFi</sd.h></m5stack.h>…
実際のところ #include <M5Stack.h> #include <SD.h> File myFile; double imuData[3]; // pitch, roll, yaw void setup() { M5.begin(); M5.Lcd.fillScreen(TFT_BLACK); // 画面をクリア SD.begin(TFCARD_CS_PIN); myFile = SD.open("/temp.txt"); if (myFile) { while (myFi</sd.h></m5stack.h>…
実際のところ デフォだと作業直下のbinフォルダに導入されるようです。 パスも通ってるので、home直下に入れる事にします。 $ cd $ curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh動作確認にバージョン情報を出…
段々内容が入り組んできましたが…… rclpyでttyUSB0を経由してM5stackにテキストを送り込むserviceを書いてみます これが出来たら、もうあとはカメラやサウンドデバイスみたいな事例しかないんでは 実際のところ サービス定義の作成 まずはサービスの定義ファ…
Arduinoで動くCNCコントローラーの有名どころとしてGRBLというのがあります Arduino UNOピン数があれば3軸のCNCが動くので趣味プロジェクトでは中々有効かも ただし、ライセンスはGPLv3なのでよく理解してご利用のこと 実際のところ 導入 Arduino IDE Relea…
実際のところ Arduino:1.8.19 (Linux), ボード:"STAMP-PICO, Default, 1500000, None" Traceback (most recent call last): File "/home/ubuntu/.arduino15/packages/m5stack/tools/esptool_py/3.3.0/esptool.py", line 27, in <module> import serial ModuleNotFo</module>…
はじめての自作キーボード (I/O BOOKS)作者:小池 俊樹工学社Amazon最近、流行っている自作キーボード周りの本。チャタリングや、小型マイコンでのIO数の制限等々、考える事が多いというボンヤリとした理解はありましたが、 その辺りについて回路と理屈で教え…
M5stackにはBluetoothが内蔵されているので、これを有効利用してちょっとしたキーボード的ガジェットへの転用が可能です。 実際のところ 導入 Releases · T-vK/ESP32-BLE-Keyboard · GitHub からlatestのzipを導入。これを、IDEであれば サンプル Aボタンで…
アイデアをカタチにする! M5Stack入門&実践ガイド[M5Stack Basic/M5StickC対応]作者:大澤 佳樹,aNo研,石川 真也,小池 誠,菅原 のびすけ,田中 正吾,豊田 陽介,necobit,廣瀬 元紀,三木 啓司,ミクミンP,若狹 正生技術評論社Amazon
実際のところ #include <ros.h> #include <M5Stack.h> ros::NodeHandle nh; void setup() { // initialize the M5Stack object M5.begin(); M5.Power.begin(); nh.initNode(); } void loop() { //wait until you are actually connected while (!nh.connected()) { nh.spinOnce</m5stack.h></ros.h>…
実際のところ #include <ros.h> #include <std_msgs/String.h> #include <M5Stack.h> ros::NodeHandle nh; std_msgs::String str_msg; ros::Publisher chatter("chatter", &str_msg); char hello[10] = "hello ROS"; void setup() { // initialize the M5Stack object M5.begin(); M5.Power.begin(</m5stack.h></std_msgs/string.h></ros.h>…
実際のところ #include <ros.h> #include <std_msgs/Empty.h> #include <M5Stack.h> ros::NodeHandle nh; bool flag = true; void messageCb( const std_msgs::Empty& toggle_msg){ if ( flag ) { M5.Lcd.fillScreen(WHITE); flag = false; } else { M5.Lcd.fillScreen(BLACK); flag = true; } } </m5stack.h></std_msgs/empty.h></ros.h>…
何やかんやで、即作りたいときには便利なM5stack こいつをROSと連携する方法を考えていきます。 実際のところ ROSにrosserial-arduinoの環境導入 sudo apt install ros-$ROS_DISTRO-rosserial sudo apt install ros-$ROS_DISTRO-rosserial-arduino cd catkin…
HTMLファイルはバイナリ化されて読めませんが、さすがにレンダリングされればなんとか読めたので部品だけ切り抜けるように少し調べて見ました 実際のところ 動画 var baseHost = document.location.origin var streamUrl = baseHost + ':81' なので前の結果…
M5Cameraが便利なのは分かりましたが、毎回毎回IPアドレスをコンソールで表示、確認するのも面倒です。 連携するサービスも毎回毎回IPアドレス張替えでは不便ですしね。 こういうときは、mDNSの力を借りましょう。 実際のところ まずはライブラリのインクル…
shuzo-kino.hateblo.jp 実際のところ 接続先のIPアドレスがhttp://192.168.X.Yのとき 国際標準のタイムスタンプをファイル名に採用して $ curl http://192.168.X.Y/capture --output "$(date -Iseconds).jpg" 何が起きている app_httpd.cppの1104行目に http…
M5stack兄弟のひとつ、M5CameraのBタイプを使ってみました。 実際のところ デフォでM5Camera自身がAPになるサンプルが書き込まれていますが……後々自分でいじる事を考え、配信するタイプをコンパイルして書き込んでみることに。 ボードの用意 M5とかついてる…
Raspberry Pi、それもリモート環境だと、お世辞にも便利とはいえないArduino IDEが余計に不便に感じます。 幸い、公式がCLIツールを出してるので、そいつを導入してみます。 実際のところ $ curl -fsSL https://raw.githubusercontent.com/arduino/arduin…
shuzo-kino.hateblo.jp の続き。 M5stackと、それにつないだMCP23017とでLEDをブラウザ越しにいじったりできるようにする。 実際のところ #include <M5Stack.h> #include "Wire.h" #include <WiFi.h> #include <WiFiClient.h> #include <WebServer.h> #include <ESPmDNS.h> const char* ssid = "###"; const char* pass</espmdns.h></webserver.h></wificlient.h></wifi.h></m5stack.h>…