Bye Bye Moore

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

arduino

秋月電商ESP32-DevKitCでBLEの実験 その2:認識させる

秋月公式より引用 実際のところ 今回つかうサンプルは"BLE_notify"です。 書き込みをしてシリアルをみると rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv…

秋月電商ESP32-DevKitCでBLEの実験 その1:開発環境構築と接続先のスキャン

秋月公式より引用 github.com 実際のところ 環境 Arduino:1.8.5 (Mac OS X), ESP32_BLE_Arduino 0.4.2 ESP32-DevKitC ESP-WROOM-32開発ボード(通販コード M-11819) ボード設定:"ESP32 Dev Module, QIO, 80MHz, 4MB (32Mb), 11520…

ESP32 on Arduinoで "static std::string gattcServiceElementToString(esp_gattc_service_elem_t *pGATTCServiceElement);"などと言われたら

実際のところ 環境 Arduino:1.8.5 (Mac OS X), ボード:"ESP32 Dev Module, QIO, 80MHz, 4MB (32Mb), 115200, None" ESP32_BLE_Arduino 0.4.7 対策 In file included from /Users/shuzo_kino/Documents/Arduino/libraries/ESP32_BLE_Arduino/src/BLEDevice.…

Arduino IDEでESP32を使おうとして"xtensa-esp32-elf-g++"がないなどと言われたら

これまで動いていたArduino IDE用ESP32用ライブラリarduino-esp32が "YOUR_ARDUINODIR\hardware\\espressif\\arduino-esp32-master/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++": file does not exist てなエラーを吐いて止まった場合の対処法。 実際…

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 の続きみたいな話です。sprintfはCの標準ライブラリにあるデータ列を生成する関数です。 こいつを使って文字列をつくり、それをシリアルに繋ぐ方向で実装します。 実際のところ void setup() { // put your setup code here, to run o…

ArduinoでTDDをしたい際の選択肢

shuzo-kino.hateblo.jp でC言語のTDDという奴を試しました。 ArduinoはC++の方言なので、厳密には適用できないケースは結構あります。 最近は状況が大分マシになったようで、いくつか案がでています。 arduinounit 専用テスト環境arduinounit! 公式配布では…

メモリをケチって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まで、スター型やクラスタツリー型のネットワークを構築可能。 送信専用のデバイスに至っては、なんとボタン電池一個で一年持つとかいう脅威の低消費電力。 通信距離も…

ArduinoIDE環境で"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…