Bye Bye Moore

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

arduino

raspberry PiとArduinoをシェルだけで通信する場合、ちゃんと通信レートは初期化しないとダメ

どうしてもシェルだけで完結させたいアプリがあったものの、今までことごとくシェル単体での初期化に失敗していました。 仕方なくArduino IDEで通信したのですが……これではいつまで経ってもスタンドアローンにならないので調査。 その結果、実に初歩的なミス…

【読書メモ】超特急Web接続!ESPマイコン・プログラム全集

超特急Web接続!ESPマイコン・プログラム全集[CD-ROM付き] (ボード・コンピュータ・シリーズ)作者: 国野亘出版社/メーカー: CQ出版発売日: 2019/01/22メディア: 単行本この商品を含むブログを見るみんな大好きWiFi接続可能な超高性能マイコンESP32の特集ムッ…

Groveシステムのモジュールを使って楽にプロトタイピングする

GroveシステムはMaker系の人がプロトタイピングでよく使うコネクタ規格です。 wiki.seeedstudio.com シンプルな4本線で「アナログ」「デジタル」「UART」「I2C」を扱うという豪快な仕様。 電源電圧や実際に繋ぐ種類はユーザーが判断しろって事のようです……俠…

bitSet/bitClear関数で特定のビットをHigh/Lowする

実際のところ Xという変数のA番目ビットをHighにするbitSet関数、 Aは最下位(右端)ビットを0としてA番目です。 bitSet(X, A); LowにするのはbitClear関数。 bitClear(X, A); 参考もと www.arduino.cc www.arduino.cc

Arduinoの割り込み許可/禁止関数(interrupts/noInterrupts)はそれぞれのボード固有の命令の読み替えをしてくれている

割り込み許可はinterrupts関数、割り込み禁止はnoInterrrupts関数。 というわけで……余計な最適化を阻止したいなら 割り込み禁止と許可の関数でサンドイッチ。 noInterrupts(); //割り込み禁止 // ...ここに割り込み禁止な内容を interrupts(); //用が済んだ…

cuコマンドで簡単にシリアル通信をやる

実際のところ $ cu -s 9600 -l /dev/ttyUSB0やめるときは "~"の後に"." 参考もと 【入門】Linux機にUSB-シリアル変換ボードをつなげてみる【備忘録】 | 團長の小部屋 https://linuxjf.osdn.jp/JFdocs/Remote-Serial-Console-HOWTO/index.html ttyについて tt…

Raspbian Lite系で急遽デスクトップ環境が必要になったとき

Raspbian Liteを入れたけど、退っ引きならない事情……たとえばArduino IDEのようなGUI前提のツールを使う時……などで 急遽デスクトップ環境が必要になった際の手順です。いまどきはPIXILという超格好いいあれがあるのですが……まぁ、導入コストは重いです。 実…

raspi 3b+にarduino ide環境をつくる

ARM用1.8.7系IDEのリンクは以下の通り。 https://downloads.arduino.cc/arduino-1.8.7-r1-linuxarm.tar.xz マグカップやTシャツが御用入りの際は、ぜひロゴ入りのやつを買ってくださいね。 $ #{YOUR_DOWNLOAD_DIR} $ tar -xvf arduino-1.8.7-r1-linuxarm.tar…

【読書メモ】ICT農業の環境制御システム製作: 自分でできる「ハウスの見える化」

ICT農業の環境制御システム製作: 自分でできる「ハウスの見える化」作者: 安東赫,中野明正,栗原弘樹出版社/メーカー: 誠文堂新光社発売日: 2018/08/16メディア: 単行本この商品を含むブログを見る農業系雑誌「農耕と園芸」に掲載されていた連載をもとにした…

avr-libにはrint()がなく、lrint()はある

arduinoのavr系実装ではavr-libが使われています。 実際のところ rint()は浮動小数点をまるめ込んで整数にしてくれる奴です。 いくつか派生関数があるのですが、avr-libにはlong型を返すlrint関数しかありません。 'rint' is not declare in this scope とか…

RobotDyn STM32F103 Dev.Boardのシリアル通信

shuzo-kino.hateblo.jp の続きRobotDyn STM32F103 Dev.Boardは小型でありながら、 シリアル通信用のポートが3個も存在しています。 なので、一つをセンサー、もう一つをPCとの通信に使ってもまだ余るという豪華仕様。 本体が軽く、短時間ならボタン電池でも…

オープンソースな実用ロボットアームTsukArm その5:グリッパー

shuzo-kino.hateblo.jp 皆さんお待ちかね、グリッパーの操作です。 他のサーボとは異なり、確度でなく1.0 ~ 0.0の範囲で設定を行うものになります。 実際のところ // グリップを開く builder.setGripper(1.0); queue->enqueue(builder.build()); // グリップ…

オープンソースな実用ロボットアームTsukArm その4:ベジェ曲線での軌跡

shuzo-kino.hateblo.jpアーム軌跡を点やサーボ角度だけで指定するのは大変です。 TsukArmライブラリは、この点をベジェ曲線を活用してクリアできます。 実際のところ 以下のようにやると、(0.0, 100.00, 90.00)を起点として グリッパーを並行に保ったまま左…

オープンソースな実用ロボットアームTsukArm その3:アーム先端の角度を一定に維持

shuzo-kino.hateblo.jp今回はアーム先端の角度を一定に維持する方法です。 たとえば、中身入り容器を端した後だと大事な関数ですね。 実際のところ 位置指定の後に、ピッチ設定を加えます。 たとえば0度(初期姿勢)のまま固定したい場合、以下のようにします…

オープンソースな実用ロボットアームTsukArm その2:セットアップと基本的動作

shuzo-kino.hateblo.jp の続きで、今回はArduino上に環境を構築し、ロボットアームを少し動かしてみます。 実際のところ ライブラリの導入 $ git clone https://github.com/TsukArm/TsukArm-Library.git $ cd TsukArm-Library/arduino_lib $ zip -r tsukarm_…

STM32F103系ボードでFreeRTOSをためす

FreeRTOSはその名の通り、フリーのリアルタイムOSです。shuzo-kino.hateblo.jp 前回導入したボードコンフィグArduino-STM32には、これの動作サンプルがついてます。 Arduino IDEの環境だけで実験できるのは喜楽でいいですね。Lチカさせるだけなら、ここまで…

RobotDyn STM32F103 Dev.BoardをmacOSにてArduinoとして動かす

BluePillシリーズはARM系のSTM32が載ったボードで 恐ろしく低価格なのに使いやすいというボードです。RobotDyn STM32F103 Dev.BoardはそんなBluePillシリーズの一つ。 本家のサイト(海外)から調達すると、なんと2.5USD……どういうことなの( RobotDyn本家の…

秋月電商ESP32-DevKitCでBLEの実験 その4:双方向通信する

秋月公式より引用shuzo-kino.hateblo.jp のシリーズ4番め 今回ためす"BLE_uart"は名前の通りuartな通信を行うものです 実際のところ 環境 iOS (BLE Scanner導入済み) 動作状態 書き込み起動するとこういう風に rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST…

秋月電商ESP32-DevKitCでBLEの実験 その3:データをおくる

秋月公式より引用 実際のところ 今回つかうサンプルは"BLE_write"。 其の名の通り、接続先デバイスに書き込みをします。 rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x…

秋月電商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」を変更…