Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

arduino

Arduino on ESP32 でMQTTの実験をしてみる その4:ESP32でsubmitする

shuzo-kino.hateblo.jp では送信をやりました。 次は受信です。 実際のところ 動作環境 macOS 10.12.6 mosquitto 1.4.14 (build date 2017-09-30 02:42:20+0100) Arduino IDE 1.8.4 デバイス:Adafruit HUZZAH32 スクリプト 前回と同様、以下をベースにしま…

Arduino on ESP32 でMQTTの実験をしてみる その3:ESP32からPublishする

shuzo-kino.hateblo.jp のシリーズです。 いよいよ、今回から 実際のところ 動作環境 macOS 10.12.6 mosquitto 1.4.14 (build date 2017-09-30 02:42:20+0100) Arduino IDE 1.8.4 デバイス:Adafruit HUZZAH32 スクリプト arduino向けMQTTクライアント"pubsu…

Adafruit HUZZAH32を動かしてみる

画像は公式より拝借 ESP32を手軽に使えるボードとして、Adafruit HUZZAH32*1があります。 そこそこ小型でUSB Microのポートがあり、電池用ソケットなんかもついてるちょっと嬉しい仕様。 日本では千石電商なんかで売ってます。 www.sengoku.co.jp 実際のとこ…

GOBOT+Arduinoでアナログデータを返すモジュールから値をとってみる

これまで、GOBOT+ArduinoでモーターやLEDをつかってみました。 とはいえ、必ずしもあったドライバーが用意されてるわけじゃありません。 アナログジョイスティックみたいなので操作したいときとか。 アナログピン用のドライバーとしてはAnalogSensorDriverと…

GOBOT+Arduinoでサーボモーターを動かしてみる その3:複数個動かしてみる

shuzo-kino.hateblo.jp package main import ( "fmt" "time" "gobot.io/x/gobot" "gobot.io/x/gobot/drivers/gpio" "gobot.io/x/gobot/platforms/firmata" ) func main() { firmataAdaptor := firmata.NewAdaptor("/dev/tty.usbmodem1421") servo1 := gpio.N…

GOBOT+Arduinoでサーボモーターを動かしてみる その1:Lチカまで

実際のところ 環境構築 shuzo-kino.hateblo.jp Lチカ /dev/tty.usbmodem1411にFirmata搭載済みArduinoが接続されている状態で、 13番のLチカしたい場合。 package main import ( "time" "gobot.io/x/gobot" "gobot.io/x/gobot/drivers/gpio" "gobot.io/x/g…

Sloeberでポート番号を変更したい時

これは割りと頻繁に忘れそうなのでメモ。 高機能Arduino向けIDE、Sloberで書き込みポートを変更する場合、以下のようにします。 実際のところ プロジェクトで右クリックメニュー一番したの「Property」 Arduinoの設定項目のうち、下の方にある「port」を変更…

Arduino IDEの生産性に辟易してきたらSloeberを使ってみるのも手?

Sloeber はEclipseをArduino用にアレコレ拡張した子です。本家Arduino IDEでは隠蔽されている各種ライブラリも、ちゃんと視認できるようになってます。 トレースしたい時なんかは有り難いですね。mac OS版のダウンロードはこちらから。 Arduino Eclipse IDE …

Arduino UNO + LCD + 二軸アナログジョイスティックでワンコインMP3プレイヤーめいた画面送りをやる

昔は秋葉原で良くみかけた、ワンコインMP3プレイヤーめいたUIを実現する奴です。 shuzo-kino.hateblo.jp と shuzo-kino.hateblo.jp の続き。 実際のところ #include <LiquidCrystal.h> #define axis_x A0 #define axis_y A1 #define wordsize 16 #define minregister 0 #defin</liquidcrystal.h>…

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30とか出たらドライバーをいれて再起動すると直る……こともある

今日日秋葉原のジャンク屋ですら少数派になったWindows7にArduino IDE 183を導入したときのこと。 インストールしIDEを起動、blinkスケッチを描いたところ…… 以下のようなエラーが10行ほど avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=…

アナログジョイスティックDIP化キットをArduinoでつかう

akizukidenshi.com アナログジョイスティックDIP化キット[AE-JY-DIP(KIT)]をArduino UNOと合わせてつかってみます。 実際のところ 回路図 説明図によると、中の可変抵抗はこんな感じ 今回はCH1とシルクが書いてある方を遣います。 うえから321321と…

ArduinoでLCDに点滅するカーソルをつける

LCDライブラリには色々便利な関数がついています。 今回のblinkとnoBlink関数もそんな中の一つ 実際のところ サンプルによると、使い方は以下のような感じになります。 3秒毎に黒い■が点滅している状態と固定されている状態で切り替わります。 #include <LiquidCrystal.h> //</liquidcrystal.h>…

Arduino LCDディスプレイを表示してみる

電子工作における表示の王道、LCD。 実際のところ 左いって右に戻るサンプルは、以下の通り。 使ったハードは相当古いLCDシールドですが、レイアウトは今でもあんまり変わってないようです。 そのまま使えるでしょう。 #include <LiquidCrystal.h> #define LCD_WIDTHS 16 #def</liquidcrystal.h>…

substring関数で文字列から特定の部分を切り出す

LL言語にありがちな、文字列の一部を切り取る関数はArduinoにもあります。 substring関数という奴で、わりと高速に動いてくれます 実際のところ NMEAパケットのGPGGAから経度・緯度を拾う処理は以下の通り。 もっとも、これだと信号未受信の時の対処ができて…

startsWith関数で

startsWith関数は引数に指定した文字列を持っていた場合true/falseを返す関数です。 実際のところ 前回のコードを元に、GPS受信パケットから"$GPGGA"を切り出すのは以下の通り #include <SoftwareSerial.h> #define SOFT_RX 10 #define SOFT_TX 11 SoftwareSerial mySerial(SOF</softwareserial.h>…

Arduino UNO R3 と秋月のGPS受信キット「AE-GYSFDMAXB」をつかう

Arduino UNO R3 と秋月のGPS受信キット「AE-GYSFDMAXB」をつかう方法です。AE-GYSFDMAXBは2200円で購入可能ならくらくGPSキットです。 レギュレーターやバックアップ電池まわりが予め実装されておりお手軽。 画像は秋月公式よりお借りしましたakizukidenshi.…

GOBOT:Firmata経由でGO言語からガジェットを操作できるパッケージ

gobot.io nodeからガジェットを操作するJohnny-fiveのGO版とでも呼ぶことができるツールです。 github.com 実際のところ ガジェット 今回はArduino UNO R3を対象とします。 大前提として、操作先がFirmataの受け入れ体制ができてる必要があります。 直接Firm…

Arduinoでゼロ埋めや右詰めした文字列を関数に渡したいなら、諦めてsprintf

shuzo-kino.hateblo.jp の続きみたいな話です。 実際のところ void setup() { // put your setup code here, to run once: Serial.begin(19200); while (Serial.available()) { ; } //まずは何も考えずに Serial.println(B0001); //駄目元で型キャストだ! S…

Arduino でTDD

shuzo-kino.hateblo.jp でC言語のTDDという奴を試しましたが…… ArduinoはC++の方言なので、厳密には適用できないケースは結構あります。 そこで登場するのが、専用テスト環境arduinounit! 公式配布ではなく、有志がつくったソフトウェアです。 GitHub - mmu…

メモリをケチってchar型でカウンターを作ると

arduinoで動作チェックも兼ねたカウンターを作っておりました。 ここ数年、型を意識しないですむ言語ばかり扱っていたためか、久々にやらかしたのでメモ。 マイナスになる可能性がないカウンターなら、最初から符号なしにしましょう。 実際のところ char cnt…

Arduinoで文字列のゼロ埋め/左揃えをやりたいなら、素直にsprintfを使おう

Arduinoで文字列のゼロ埋め/左揃えをやりたいなら、素直にsprintfを使うと楽です。 実際のところ 打っ込むのはString型でなくChar配列型文字列です。 char sendPacket[24] = ""; cnt = ((cnt + 1) & 0xff); sprintf(sendPacket, "x%s", cnt, "0203"); Serial…

315MHz帯通信モジュールIM315をArduinoで試す その2:送受信スクリプト編

shuzo-kino.hateblo.jp の続きです。 今回は送受信用のスクリプトを書いてみます。 実際のところ 送信側 #include <SoftwareSerial.h> SoftwareSerial IM315Serial(8, 9); // ソフトウエアシリアル int busy; unsigned char cnt = 0; String inputstr = ""; char sendPacket[24</softwareserial.h>…

315MHz帯通信モジュールIM315をArduinoで試す その1:Arduinoシールド編

IM315シリーズは"特定小電力無線"と呼ばれる帯域を使う通信モジュールです。 1:1からN:Mまで、スター型やクラスタツリー型のネットワークを構築可能。 送信専用のデバイスに至っては、なんとボタン電池一個で一年持つとかいう脅威の低消費電力。 通信距離も…

"multiple definition of ..."とか出ていたら、ライブラリを多重に読み込んでいる可能性

Arduino用スケッチにて"multiple definition of ..."とか出ていたら……ライブラリを多重に読み込んでいる可能性があります。 お手製ライブラリを組み込んだアプリを受け取った際に起こりがちです。 依存関係を消して、再度ライブラリを導入すると何とか成るか…

Arduinoの自前ライブラリを消す

自前のライブラリを導入する場合はZipファイルで固めて指定します。 が、これはパッケージマネージャーを介さないので削除は古い方法でやる必要があります。 実際のところ OS Xの場合、Arduino IDEのdefault設定であれば "~/Documents/Arduino/libraries/"に…

スイッチサイエンスさんのesp8266開発ボード「ESPr Developer」とgroveカメラを繋ぐ

スイッチサイエンスさんのesp8266開発ボード「ESPr Developer」とgroveカメラを繋ぐ方法です。 開発ボードだと面倒ごとが大分緩和されます。 実際のところ カメラで画像を取る POSTはしない。ブラウザで確認するだけ。 必要資材 ESPr Developer(ESP-WROOM-0…

Arduino Moter Shield Rev3でDCモーターを動かしてみる

Arduino Moter Shield Rev3を使って、DCモーターを動かしてみました。 実際のところ 使ったもの 【永久保証付き】Arduino Uno出版社/メーカー: スイッチサイエンスメディア: Personal Computers購入: 2人 クリック: 15回この商品を含むブログを見るArduino …

JSON-RPCが便利そう

RPC=>遠隔制御。 JSON-RPCは、そのJSON版。JSONらしいシンプルな記法で、遠隔操作を実現します。 ダウンローダのAria2ですとか、BItcoin、あとはopenElecみたいなエンタメサーバの制御に使われています。RESTなAPIと違い、受け手がHTTPを解釈できなくとも…

Groveの水分センサー+ArduinoUNO+microSDカードシールドでお手軽湿り気ロガーを作る

Groveの水分センサーを買いました。GROVE - 水分センサ出版社/メーカー: スイッチサイエンスメディア: エレクトロニクスこの商品を含むブログを見るこいつを使って、10秒ごとに湿度をSDカードの記録する奴を作りました。 毎度のことながら、精度はそれほど要…

C言語的構文のfor文において、変数宣言部では複数の変数を設定する事が可能

C言語的構文のfor文において、変数宣言部では複数の変数を設定する事が可能です。 まことに恥ずかしい話ではありますが、プログラミングで飯喰って5年は経つのに最近はじめて知りました。 実際のところ for文の宣言部に書くことで(コンパイラなりVMの実装に…