Bye Bye Moore

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

arduino

超小型ボード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…

M5stackで"「***.h」に対して複数のライブラリが見つかりました"とか言われたら、巻き戻した方が早い

M5stackで楽しく工作していたら、ボードの更新がでたという通知の後、 M5stack系の情報は消えるはエラーがでるわでテンヤワンヤ。 調べたところ、作業中のどこかのタイミングでライブラリの衝突をおこしていたようです。 実際のところ 「WiFi.h」に対して複…

小型ボード+小型タッチディスプレイな組み合わせに最適なライブラリ「GUIslice」

Arduinoのような小型ボードと、最近は値段が大分こなれてきて安物キットにすらついている小型ディスプレイ で、画面があると色々格好いい表示をしたくなるのが人情ってやつですが困った事にGUI設計って大変なんですよね。そういうとき、GUIsliceというライブ…

Arduino IDEのコンパイルログを詳細に出す

OepnCRで書き込みができない。 ブートモードにしたけれど、反応がない。 電気的に死んだわけでもなさそうだ。 実際のところ 環境 Windows10 1903 Arduino IDE 1.8.42.0 対処 エラーがでたときに出るエラー出力ボタンでクリップボードにコピーしたところ、こ…

sparkfun社のバッテリーベビーシッターがLiPo用チャージャーとしては高機能で使えそう

switch-science社の公式ページから引用LiPo用の電源管理モジュールです。 単純に充放電するのみならず、残量等の情報をI2Cで出力してくれる機能まで備わっています。出力電圧については少々独特で、電源の接続状態によって決まるようです。 バッテリーのみの…

超小型ボードM5Atom Liteをつかう その1:環境構築とLチカ

新しいプロジェクトで兎に角小さく、ただ出来れば無線接続したいという愉快な要望がありました。 ESP32を使ったArduino互換機ならイケそうだと探したところ……なんやら世間をにぎやかすM5Stack兄弟の内、M5Atom Liteという恐ろしく小さいボードが。 実際のと…

RaspiAPでRasPiをアクセスポイント化する

最近はESP32など小さくてもWiFiにつながる石が増えてきました。 標準サンプルでWiFi接続対応するようなのが出てるご時世ですが、必ずしもインターネットにつながる環境ばっかりじゃありません。今回私が直面したのは……まわりにWiFiがなく、RasPi 4はPoEでイ…

【地獄のバッドノウハウ】シリアル通信でコマンド送るタイプの装置が急制動するような場合、「tail -f」で監視し続けると動くことがある

shuzo-kino.hateblo.jp でやった事ですが、今日周辺で似たことがあったので。シリアル通信でコマンド送るタイプの装置……たとえばシリアルサーボなんかがあります。 それまでArduino IDEやminicomではちゃんと動いてくれたのに、 echoで単発のコマンド叩いた…

【読書メモ】予算1万円でつくる二足歩行ロボット (I/O BOOKS)

予算1万円でつくる二足歩行ロボット (I/O BOOKS)作者:俊幸, 中村発売日: 2020/06/24メディア: 単行本Fusion360、KiCADなどMaker界隈で人気のツールをつかって、12自由度の小型の人型ロボットを作ろう、という中々攻めた本です。こういう本だとプラ加工はつき…

ArduinoIDEが「パッケージを初期化中…」といって固まったら、ArduinoDataを消すと何とかなるかも

ArduinoIDEが「ライブラリを初期化中…」といって固まったら、ArduinoDataをけすどこかしらのプロセスが半端に止まっているのか、あるいはライブラリの読み込みに失敗している可能性があります。 一個一個追跡していってもいいのですが……当時の私のように急ぎ…

systemdでRasPiにつないだArduinoのデータをシリアルからとる。

RasPiとArduinoをつないで、Arduinoのシリアルから情報を取得します。 Arduino側には、GPSロガー的なものを付けています。 shuzo-kino.hateblo.jp 実際のところ ハードウェア 特に工夫もなく、USBコネクタにArduinoのUSBをつなぐだけ。 通常の電力供給だとギ…

Arduinoで簡易的GPSロガー(三軸加速度つき)をつくる

GPSのF9P、三軸加速度、そしてOpenLogをつかって、GPSロガーを作ってみます。 実際のところ 回路構成 Arduino UNO R3 + SparkFun F9P + SparkFun ADXL335 + SparkFun OpenLog + 電源用モバイルルーター動作クロックが16MHzですが、今回の用途では問題なく動…

Arduinoでsprintfを使い文字列を生成する

Arduinoで文字列を作るときはStringクラスが使えますが 速度を高速化したい、既成のsprintfを利用したC言語プロジェクトを流用したいなどのケースでは 標準でsprintf関数を利用することができます。 実際のところ GPSと加速度を模したデータを一つの文字列と…

OpenLogで手間なくロギングを行う

F9Pと同様、QWIICシステムをつかいます。 公式より引用 実際のところ 試してみる 簡易的に、ディレクトリ直下のAppendMe,txtに値を書いてみます。 #include <Wire.h> #include "SparkFun_Qwiic_OpenLog_Arduino_Library.h" OpenLog myLog; //Create instance const b</wire.h>…

三軸加速度センサADXL335をArduinoで使う

画像はsparkfun公式より引用先日のGPSに続いて、今度は三軸加速度を使っていきます。 今回選定したsparkfun社のADXL335は出力がアナログで出てくるタイプのボードです。 ピンは喰いますが、あとで回路的に細工ができるメリットがあります。 実際のところ int…

STEM教育まわりでネタがないなら、Arduino公式のProjectHubをみるとネタがあるかも?

公式にそういうサイトがあるのは把握してたのですが、 なんか見ないうちにかなり充実してたのでメモ。 create.arduino.ccArduino公式にあるProjectHubはMakers*1が作った作例が集積されており、 特にmotors-roboticsの項目は小型ロボット事例の宝庫です。 エ…

高機能なGPSモジュールZED F9Pをつかう その4:ArduinoのNEMAで出力させる

今書いてまs

高機能なGPSモジュールZED F9Pをつかう その3:Arduinoでつかう

RasPiでPythonという方法のほかに、Arduinoでやる手もあります。 実際のところ Qwiicコネクタを経由した構成はこんな感じ。 導入はIDEなら楽々。 SparkFun_Ublox_Arduino_Library/Example1_GetPositionAccuracy.ino at master · sparkfun/SparkFun_Ublox_Ard…

OpenWrtで自前ネットワークをつくる その2:シリアルでつないだ子機を操作する

shuzo-kino.hateblo.jp の続き。 OpenWrt環境構築済みデバイスにarduinoをつないで、TCP越しでデータのやり取りができるようになります。 実際のところ 9600番ポートで、ttyACM0のデバイスで受信待機したい場合、こんな感じに。 $ socat tcp-l:9600,reuseadd…

【読書メモ】マイコンボードで学ぶ楽しい電子工作 Arduinoで始めるハードウェア制御入門

マイコンボードで学ぶ楽しい電子工作 Arduinoで始めるハードウェア制御入門 (NextPublishing)作者:榊 正憲発売日: 2018/08/10メディア: Kindle版

【備忘録】ATコマンドとHayesコマンド

今まで漠然とATコマンドというものを使ってたのですが……この業界入って10年以上経って、 成立経緯とそれなりに統一された規格であることを知りました……。 たとえば AT+RSTとやるとリセットがかかります。大抵のモジュールで同じようなコマンドなので統一性…

Arduino用の超速CRCチェッカー

CRC(Cyclic Redundancy Check / 巡回冗長符号)は、自前でパケットを作るなら必須の項目です。 これがないと、ダメパケットも受け取ってデータがゴミだらけになったりします。 非力な軽量無線やシリアル線直付けな構成なんかだと、特に。 実際のところ ただ一…

arduino-xmodemで簡易的にArduinoと端末間のファイル送受信をする その2:Arduino to Guest

#include <SD.h> #include <XModem.h> Xmodem xmodem(&Serial, ModeXmodem); void setup() { Serial.begin(115200); delay(1000); //待ち File file = SD.open("/1.log"); xmodem.sendFile(file, "datalog.log"); } void loop() { } 参考もと Google Code Archive - Long-ter</xmodem.h></sd.h>…

arduino-xmodemで簡易的にArduinoと端末間のファイル送受信をする その1:環境の構築

arduino みたいな非力なボードにあるログデータを引っ張り出すのは一苦労です。 scp載せるわけにもいかないし。 そんな時にxmodemプロトコル。 昔ながらの規格ですが、その分非力なモンでも動きます。 さらにteratermからも送受信できるので、古臭い環境との…

switch文では文字列や小数点の値は使えない

あまりに初歩的なポカミスで詰まったのでメモ…… switch構文での比較は整数あるいは文字が対象です。 文字列や小数点は使えません!! 実際のところ var: a variable whose value to compare with various cases. Allowed data types: int, char. label1, lab…

bsearch関数

整列済みの配列や構造体をバイナリサーチできる関数です。 ただ、結構使い方が面倒なのでメモ。 今書いてまs

Arduino/C言語環境でスッカスカな配列を作りたい場合……構造体を使った方が軽くなることもある

shuzo-kino.hateblo.jp でも扱った構造体ですが、これをスッカスカな構造体の代わりに使う手があります。 実際のところ typedef struct { uint16_t key; char* value; } data; const data myDataArr[] { {123, "AB"}, {1023, "CD"}, {5011, "FE"} };