Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

arduino

【読書メモ】はじめての自作キーボード

はじめての自作キーボード (I/O BOOKS)作者:小池 俊樹工学社Amazon最近、流行っている自作キーボード周りの本。チャタリングや、小型マイコンでのIO数の制限等々、考える事が多いというボンヤリとした理解はありましたが、 その辺りについて回路と理屈で教え…

M5stackとBluetooth keyboard

M5stackにはBluetoothが内蔵されているので、これを有効利用してちょっとしたキーボード的ガジェットへの転用が可能です。 実際のところ 導入 Releases · T-vK/ESP32-BLE-Keyboard · GitHub からlatestのzipを導入。これを、IDEであれば サンプル Aボタンで…

【読書メモ】アイデアをカタチにする! M5Stack入門&実践ガイド[M5Stack Basic/M5StickC対応]

アイデアをカタチにする! M5Stack入門&実践ガイド[M5Stack Basic/M5StickC対応]作者:大澤 佳樹,aNo研,石川 真也,小池 誠,菅原 のびすけ,田中 正吾,豊田 陽介,necobit,廣瀬 元紀,三木 啓司,ミクミンP,若狹 正生技術評論社Amazon

ROSからM5stackにふれる その4:log

実際のところ #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>…

ROSからM5stackにふれる その3:HelloWorldもといpublisher

実際のところ #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>…

ROSからM5stackにふれる その2:Lチカもといsubscriber

実際のところ #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>…

ROSからM5stackにふれる その1:環境構築

何やかんやで、即作りたいときには便利なM5stack こいつをROSと連携する方法を考えていきます。 実際のところ ROSにrosserial-arduinoの環境導入 sudo apt install ros-$ROS_DISTRO-rosserial sudo apt install ros-$ROS_DISTRO-rosserial-arduino cd catkin…

M5Cameraにもう少し詳しく潜る

HTMLファイルはバイナリ化されて読めませんが、さすがにレンダリングされればなんとか読めたので部品だけ切り抜けるように少し調べて見ました 実際のところ 動画 var baseHost = document.location.origin var streamUrl = baseHost + ':81' なので前の結果…

M5Camera Bを試してみる その3:mDNSを設定する

M5Cameraが便利なのは分かりましたが、毎回毎回IPアドレスをコンソールで表示、確認するのも面倒です。 連携するサービスも毎回毎回IPアドレス張替えでは不便ですしね。 こういうときは、mDNSの力を借りましょう。 実際のところ まずはライブラリのインクル…

M5Camera Bを試してみる その2:GETで画像を入手する

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…

M5Camera Bを試してみる

M5stack兄弟のひとつ、M5CameraのBタイプを使ってみました。 実際のところ デフォでM5Camera自身がAPになるサンプルが書き込まれていますが……後々自分でいじる事を考え、配信するタイプをコンパイルして書き込んでみることに。 ボードの用意 M5とかついてる…

Ubuntu20LTSにArduino-cli環境をいれM5stackのスクリプトを構築できるようにする

Raspberry Pi、それもリモート環境だと、お世辞にも便利とはいえないArduino IDEが余計に不便に感じます。 幸い、公式がCLIツールを出してるので、そいつを導入してみます。 実際のところ $ curl -fsSL https://raw.githubusercontent.com/arduino/arduin…

M5stackをweb鯖化してMCP23017への命令を遠隔で行えるようにする

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>…

M5stackにMCP23017をつかってIOを拡張する

MCP23017という石があります。 IO拡張系の石なのですが、マイコン側からはI2Cで通信できるので線の分お得。 配線も減るし、上手に分離すればモジュール化も容易なんじゃないかと思い、手元のM5stackで実験してみました。 実際のところ #include <M5Stack.h> #include "W</m5stack.h>…

VSCodeにArduino IDE + M5stackな環境を構築する(書き途中)

前回VSCodeにUnityに構築して威力を痛感したので、この機会にArduino IDEもやってみようと思いたちました。 今の作業環境にM5stackの環境もないのでついでに。 実際のところ 環境 Windows10 Arduino IDE 1.18.4 Visual Studio Code 1.56.1 M5stack系はなし …

arduino INPUT_PULLUP

雑に作って試すプラットフォームとして丁度良い、Arduino。 徹底的に楽するなら、いっそプルアップ抵抗もなくなればいいのになんて思うこともありますが。 AVRの石には、実は内部プルアップが備わってる石があり、Arduino公式ボードはその品種を採用していま…

ATOM 2D/1D Barcode Scanner Development Kitで遊ぶ

公式より引用M5atomにQRコード読み取り機の拡張機能がついたキットです。 調べるまで知らなかったンですが、バーコードリーダーと同じアプローチで二次元バーコードも読み取りできるんですね。バーコードやQRコードのような日本でもお馴染みの様式に加えて、…

RaspberryPiのUSBポートにつないだM5stackをコマンド越しにリセットする

遠隔地にあって、気安く抜き差しできないM5stackを弄りたい場合。 ハードウェアフロー制御がマトモに機能してるデバイスでも再現性がある……かも? 実際のところ 作業ボードはRaspberryPi4B、ターゲットデバイスはM5stackを想定。 pythonでやる リセット回路…

RaspberryPiとArduinoとの通信がうまくいかないときはハードウェアフロー制御をOFFにするとうまくいくケースがある

RaspberryPiとArduinoとの通信がうまくいかないトラブルがありました。 アレコレ試したところ、ハードウェアフロー制御をOFFにするとうまくいくケースがあったのでメモを。 多分、Debian系OSとUSBシリアル経由のRTS/CTSがうまく動いてない外部機器……という関…

超小型ボードM5Atom Liteをつかう その5:POSTのアクションをうけとる

shuzo-kino.hateblo.jp の続きWEBサーバがたてられるなら、POSTアクションもいけるのが道理。 設定値の書き換えを模したものをつくります、 実際のところ 前回の記事をベースに、handleRootを改編する形で。 なんか記述が冗長な気がしますが、後で見返して確…

超小型ボードM5Atom Liteをつかう その4:mDNSをつかって社内ネットワークから内部データ

shuzo-kino.hateblo.jp の続き。 実際のところ シンプルな文字配信 サンプルをもとに、200と404には対応したサーバーを用意。 SSIDやPASSは今使っているWiFiのを設定してください。 #include "M5Atom.h" #include <WiFi.h> #include <WiFiClient.h> #include <WebServer.h> #include <ESPmDNS.h> const char</espmdns.h></webserver.h></wificlient.h></wifi.h>…

超小型ボードM5Atom Liteをつかう その3:EEPROMの切り分け

shuzo-kino.hateblo.jp の続き。EEPROM手打ちしてもいいですが、保存領域の値を分離したりします。 たとえば、初期設定値の領域はそのままにしたいけど、 センシング領域は一定タイミングでクリアしたい……とか。 実際のところ そのまんまサンプル写経。 /* E…

OctaveでArduino IDEのシリアルプロッタみたいなのをやる

OctaveでArduino IDEのシリアルプロッタみたいなのをやる。 実際のところ $ git clone https://gitlab.com/ville-klar/splot.gitディレクトリに移動し、Octaveをひらく $ cd ville-klar/splot $ octave --gui splot.mGUI上で splot /dev/ttyUSB0 115200 Ardu…

GNU OctaveとArduinoを連携する その3:GUIのスライドバーなどと値を連携する

shuzo-kino.hateblo.jp と shuzo-kino.hateblo.jp を応用して、ArduinoとOctaveのGUIを連携する方法について 実際のところ 今書いてまs

GNU OctaveとArduinoを連携する その2:ArduinoからOctaveにシグナル

実際のところ 今書いてまs 参考もと octave.sourceforge.io Arduino package - Octave

GNU OctaveとArduinoを連携する その1:環境構築とLチカ

MATLABにArduinoとの連携パッケージがあります。 その競合品であるGNU Octaveにも、あります。 実際のところ pkg install -forge arduinopkg load arduino Ardino側の用意 パッケージを読むと、ArduinoIDEを起動するコマンドが実行できるのでこいつを利用 ar…

超小型ボードM5Atom Liteをつかう その2:内部保存領域をつかう

shuzo-kino.hateblo.jp の続きwww.switch-science.com には4MBの不揮発フラッシュメモリが搭載されています。ちょっとしたデータロガーを作ろうとSDカードモジュール引っ張り出したのですが 短い稼働時間なら十分かなと思い、このフラッシュメモリを使ってみ…

複窓のSSH -Xでは、別の端末でも同名のttyは同時に扱えない(?)

.複窓のSSH -Xでは、別の端末でも同名のttyは同時に扱えない(?)という話。SSHコマンドにXオプションをつけるとXwindow対応なら、接続先のGUIが起動します。 たとえば以下のようにやると、単発でArduino IDEが起動します。 $ ssh -X pi@192.168.XXX.YYY ./…

Arduino IDEのボード参照先を追加したとき、設定ファイルはどうかわるか

".arduino15"の続報。 Ardino IDEが指定する設定ファイルに直接ボードマネージャーを書いてしまえば一々GUI開かないで良いんじゃないかという考察 実際のところ Arduino IDEの指定するtxtをみると、こんな感じの記述が。 board=uno browser=mozilla build.ve…

RasPiに構築したArduinoIDEのビルド関係ディレクトリ

挙動を追う必要があったので、メモ。 RasPiに構築したArduinoIDEのビルド関係ディレクトリは執筆時点で「.arduino15」です 18系つかってんのになんで……?? 実際のところ $ ls .arduino15 cache logs package_index.json.sig library_index.json package_e…