Bye Bye Moore

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

arduino

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-02開発ボード)出版社/メ…

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の実装に…

ArduinoでJSONを扱う「ArduinoJSON」

arduinoでJSONを扱うライブラリに「ArduinoJSON」というのがあります。 IoT系で計測データをJSONで吐き出したかったり、あるいはJSONファイルをDSL風に使いたい場合にはとても重宝します。 ちなみに……Arduino-Jsonなんて名前ですが、OS XやWin、Linuxでも動…

Arduino IDEにデフォルトで存在しないボードを追加する。

Arduino IDEには公式がサポートしているAVR系の石を採用したボードが一通り把握されています。ARM系*1やIntel系*2はデフォルトではリストにありません。 これらはボードマネージャで明示的に入れてあげる必要があります。 実際のところ 32bit ARMが乗ってるM…

7Botに自力でコードを書き込んでみた

shuzo-kino.hateblo.jp 以前の記事のように7botを導入してはみたものの、待てども待てどもサンプルが上がってくる気配がありません。このままでは月が変わりそうなので……試しに有志が作ったサンプルコードを動かしてみました。 発送時点で公開はされてたのに…

Arduinoで"error: expected unqualified-id before numeric constant"が2個出たら、原因は後の方にある

"error: expected unqualified-id before numeric constant"とかいうトンチキなエラーが2個連続で起きたら……エラーが指定されたトコではなく、全く例外の所に問題がある可能性があります。 実際のところ 実際に起きたエラーはこちら。 Controller:5: error:…

「3ボタンのUSB-キーボード」をArduino microでチョチョイと作る

社内のちょっとしたシステムの試験用に「3ボタンのUSB-キーボード」を作る必要が出てきました。 耐久性と予算は度外視、とにかく急ぎで作る必要とのことだったので、こういう場合にはArduino。 誂向きにUSBガジェットとして機能するmicroがあるので、チョイ…

PORTDをつかってArduinoのレジスタをまとめて設定する

PORTDは、D系列……つまりデジタルピンの0〜7をまとめて設定できる機能です。 Arduinoはこういうのはラッピングされて無いと思ってたのですが……ちゃんとありました。 実際のところ Blinkをベースに。 DDRDでレジスタをまとめて設定し、あとはPORTDで都度設定…

Arduino-pro-mini(5V)を使う

Arduino Pro Mini 328 5V 16MHz出版社/メーカー: スイッチサイエンスメディア: エレクトロニクス クリック: 4回この商品を含むブログ (1件) を見る Arduino pro mini を導入しました。 100円玉並みに小さいデバイスで、Unoでは組み込めないような隙間にもね…

OpenWRTとポケットルータでArduino Ethernetシールドもどきを作る

OpenWTRとは、オープンソースのアクセスポイント用Linuxディストリビューション……ぽいものです。 OpenWrt is described as a Linux distribution for embedded devices. これを活用して、Arudinoの計測データをweb上にアップロードしようと試みた方がいるよ…

Arduinoの省電力化まわり

現状、Arduinoで省電力動作を実現するには、いくつか方法があるようです。 AVRマイコン関連のヘッダファイル群にある、を使用*1 "Arduino playground"*2よりEnerlib.h*3をインストールして使用 この記事では、最初のの方法を紹介します。 導入方法 http://ww…

Arduino Fio導入

センサネット子機用に、ArduinoFioを導入しました。 Arduino Fio出版社/メーカー: スイッチサイエンスメディア: エレクトロニクスこの商品を含むブログを見る 秋葉原で難なく調達できる*1ため、これに決めました。一般に出回っているArduinoに比べて小型で、…