Bye Bye Moore

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

arduino

【読書メモ】みんなのM5Stack入門

メディア: この商品を含むブログを見るみんな大好きスタック型つよつよマイコンボードM5Stackの本です。 一部の大きなお友達に大人気のM5StickCに言及した章もあります。他のみんなの〜系と同様、そこまで突っ込んだ記述はないのですが その分、人に勧めやす…

Arduinoで辞書型風のデータを使いたい場合、構造体を使う

考えてみりゃ当たり前なのですが……Arduinoで辞書型やハッシュ型風のデータを使いたい場合、 Typedefをつかった構造体を定義すればつかえます。 実際のところ typedef struct { uint8_t lang; char* sound; char* value; } dataDictionary; const dataDiction…

ROSと相性がよいArduino互換ボードOpenCR その2:環境構築

実際のところ 環境 導入 macのインストール手順https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json のURLをボード設定に追加 ボードを追加 最新版をインストール。結構重いので、のんびりと。 …

ROSと相性がよいArduino互換ボードOpenCR

Robotis社がだしているArduino互換のオープンソースボードです。 コアはSTM32系の216MHzでArduino系としては相当パワフル。github.comROSというロボットを動かすミドルウェアとの相性が良いので

Arduino UNO系でも動くLISP実装 uLISP その2:Digital/Analog Pinを扱う

Arduinoの上で動いているので、DigitalやAnalogも使えます。 公式リファレンスによると以下のような関数があります。 Arduino interface millis, for-millis, with-i2c, restart-i2c, with-serial, with-spi, with-sd-card, pinmode, digitalread, digitalwr…

Arduino UNO系でも動くLISP実装 uLISP その1:説明と導入

Arduino UNO系でも動く軽いLISP実装として、 uLISPというのがあります。www.ulisp.com 暫定的目標として、これでロボットアームを動かせるようにしつつ obnizとのシリアル通信連動で遠隔制御できるようにまで持っていきたいと思います。 実際のところ なんと…

つよつよIoTボードobnizがヤバい その3:UARTで通信

軽いボード間の通信なら、UART。 今回はそのUARTをobnizで扱う方法について。 実際のところ 初期設定 デフォの通信レートは公式から情報を拝借すると…… 速度 115200bps 非同期 フローコントロールなし 8bit パリティなし 1 ストップビット 電気的には 5v pus…

【読書メモ】 Arduinoでロボット工作をたのしもう!

Arduinoでロボット工作をたのしもう!作者: 鈴木美朗志出版社/メーカー: 秀和システム発売日: 2014/09/29メディア: 単行本この商品を含むブログ (2件) を見るタイトルまんまの、Arduinoをコントローラーとしたロボットをつくってみようって本です。 ロボット…

プリプロセッサifで入り組んだ内容を記述

実際のところ ifdefと違い、if-else構文に落とし込む事ができます。 やれる事の幅が広がりますね。 #if defined(CREDIT) credit(); #elif defined(DEBIT) debit(); #else printerror(); #endif 参考もと docs.microsoft.com e-words.jp

ifdefの使い方

//#define DEBUG_MODE //... #ifdef DEBUG_MODE Serial.print("Set Patlite: 0x"); Serial.println(state, HEX); #endif defineをコメントアウトしたままだと、ifdef~endifの部分は読み飛ばされます。 参考元 stackoverflow.com docs.microsoft.com

webIoPiでRasPiのIOにブラウザから簡易的にアクセスする その3:ArduinoとSerial経由で接続する

多少凝ったセンサーやインターフェイスを用意したい場合 Arduinoの力を借りるケースありますよね。 ボタンたくさんつけたりとか。付属のwebiopi.jsとシリアルをつかうと、シリアル経由でArduinoと通信できます。 実際のところ 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…

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メディア: 単行本この商品を含むブログを見る農業系雑誌「農耕と園芸」に掲載されていた連載をもとにした…

【自習メモ】typedefとusing

typedefやusingはc/cppにて独自のデータ型を作るときに使用する予約語です。 マイコンを跨いだ実装でありがちな取り扱いビット数の差も、これらを用いて吸収できます。 基本型の機能を極力使いたいけど、一部振る舞いだけ変えたいとき、 あるいはアーキテク…

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…