組み込み
i2cのインターフェイスが出ているLinux系環境でシェル経由でi2cデバイスを扱うコマンドがあります。 実際のところ 導入 $ sudo apt-get install i2c-tools つかいかた i2cset "-y"は対話モードを無効化。パイプでつなぐなら必須。 i2cset [-f] [-y] [-m mask…
GroveシステムはMaker系の人がプロトタイピングでよく使うコネクタ規格です。 wiki.seeedstudio.com シンプルな4本線で「アナログ」「デジタル」「UART」「I2C」を扱うという豪快な仕様。 電源電圧や実際に繋ぐ種類はユーザーが判断しろって事のようです……俠…
実際のところ まずは公式チュートリアル通りの以下のスクリプトをやってみましょう。 (コメントは日本語してみました) #include <stdlib.h> void f(void) { int* x = malloc(10 * sizeof(int)); x[10] = 0; // 問題その1: ヒープ領域ぶっちぎってる } // 問題その2: </stdlib.h>…
www.nxp-lpc.com そこで出てくるのがLPC1100。 Ichigo Jamで使われてる fukuno.jig.jp「Ichigo JamでARMのハンドアセンブル」というキマった記事もあるので ARM Cortex M0の低水準言語をアレコレ弄り回すスキルもつくよ! http://fukuno.jig.jp/1184ボクのLP…
考えてみりゃ当たり前だったのですが……パイプ経由で出力をうけとる時、単純にscanf使えばいいです。 実際のところ #include <stdio.h> int main() { char str[1][0x100] = { "" }; scanf("%s", str[0]); printf("%s is good!\n", str[0]); return 0; } $ echo 'hoge' </stdio.h>…
#include <stdio.h> int main() { //多次元配列 char str[2][0x10] = { "", "yeah!" }; //ポインタ変数の配列 char *str2[2] = { "", "yeah!!" }; printf("%p,%p\n", &str[0], &str[1]); printf("%p,%p\n", &str2[0], &str2[1]); return 0; } 多次元配列が宣言通りの</stdio.h>…
産業用自動機械の制御は今でも結構な割合がPLC方式です。 学習しようにもシーケンサー高いし、プログラムツールもメーカ固定だし……なんかヤダ。 そんな私と貴方のためのオープンなPLCが存在します。 どちらもラダー言語は国際標準に則っているので、 基本的…
展示会ログなんかでも書いている通り、最近はハードウェアの仕事が増えてます。 そんな中で、品質管理が課題になってました。 いつまでも研究室めいた出たとこ勝負のワンオフ装置ばかり作ってるわけにも行きませんからね。 そろそろ品質管理の必要があるなと…
Arduino UNO R3 と秋月のGPS受信キット「AE-GYSFDMAXB」をつかう方法です。AE-GYSFDMAXBは2200円で購入可能ならくらくGPSキットです。 レギュレーターやバックアップ電池まわりが予め実装されておりお手軽。 画像は秋月公式よりお借りしましたakizukidenshi.…
東芝のTA7291Pは直感的に使いやすいモータドライバです。モータードライバー TA7291P 2個セット出版社/メーカー: 株式会社東芝セミコンダクター社(TOSHIBA)メディア: その他この商品を含むブログを見る 性能表は公式によるとこんな塩梅です。 今回使ったTA72…
ESP8266EXは550円程度で調達できるWiFiモジュールです。 32bitのMCUも内蔵しておりなかなか高性能です。 基本的な設定はよくあるように、ATコマンドで出来ます。 もし、このATコマンドが正常に動作しないなら、配線以外に供給電力を疑ったほうが良…
FlashAirにはLuaという軽量言語が内蔵されています。 RubyやPythonのような文字列、配列を軽く操作できる便利関数が揃っています。 それに加えて、極めて高速。 どれほどかと言えば、ゲームエンジンの開発初期段階でパラメータ調整なんかに使われる程。 フッ…
RPC=>遠隔制御。 JSON-RPCは、そのJSON版。JSONらしいシンプルな記法で、遠隔操作を実現します。 ダウンローダのAria2ですとか、BItcoin、あとはopenElecみたいなエンタメサーバの制御に使われています。RESTなAPIと違い、受け手がHTTPを解釈できなくとも…
アナログ回路系の知識は部品メーカの解説サイトが参考になります。 もちろん、背景知識があるなら、Wikipediaでも問題ありません。 が……大抵の場合妙にアカデミックに寄っており、すんなりアタマに入ってこない可能性があります。 また、テストやレポートの…
今回の話は実にショーもない話です。Armadillo-IoT用にLinuxカーネルをビルドすべく設定画面を出そうとしたところ……画面が出ない! 特に設定いじった訳でも無いのに……ナンデ??次のようなエラーが。 $ make menuconfig config/mkconfig > config.in make -C…
とある案件で、組み込み機器で通信を受けて彼是するアプリを開発した事があります。 いわゆる組み込みLinux関係でしかもdebianだったので楽勝だろーとrubyのSerialPort系gemをつくってチャッチャッとつくってみました。……ところが。 いざ、本番環境の機器で…
FlashAirは遊び甲斐のありそうなSDカード型無線LANカードです。基本的な用途は、デジタルカメラに内臓してスマホと連動させる事でカメラ画像の同期です。 この用途で先行する類似品に「Eye-Fi」があります。が、この子がひと味違うのはこれ自体がWebサーバ風…
volatileはお節介焼きのコンパイラにぶぶ漬けをお出しする修飾子です。*1たとえば、以下のような処理をしたいとします 書き込み先:0x12345678 (外部インタフェイスへのアドレス) 書き込むもの:(順番に)0x31,0x32,0x33 //ASCIIの'1','2','3' この内容ならポ…
以前、職場で組み込みRubyの話をしたことがあります。 ただ、ご存知のようにRubyは高級言語です。 なので、記憶容量も処理速度も劣る組み込みにはまだまだ向かない……とそんな流れでdisられました。時はながれて本日より10日ほど前、組み込み向けRuby……mRub…
PICでUART通信を行う際の注意点。引っ掛かったのでメモ書き。まず、CCSというコンパイラを利用したコード //CCS版 #use delay(CLOCK = 20000000) // Clock Frequency : 20MHz #use rs232(BAUD = 9600, XMIT = pin_c6, RCV = pic_n7, PARITY = N, BITS = 8) /…