[[FrontPage]] #contents *概要 [#y19e7acd] -Arduino Uno R3を動かす方法 *Arduinoの比較 [#keec4ad6] -[[Arduinoの違い>http://arms22.blog91.fc2.com/blog-entry-501.html]] --Megaが70本もPIO付いててすごい --Duoは3.3Vなので注意 *インストール [#z349e997] **Ubuntu 12.04 [#bb795dbb] sudo apt-get update && sudo apt-get install arduino arduino-core -dailoutグループにはいらなければならない? *ライブラリの追加 [#g1a37e09] **Ubuntu 13.04 [#uee1695c] -~/sketch/library/にライブラリを置いて,arduino IDEを再起動する. *サンプル集 [#gaf02ad5] -[[github>https://github.com/hamko/sample/tree/master/arduino]] -フォルダ内にlibraryというフォルダがある場合は,その中に入っているライブラリをインストールしてください. *ピンアサイン [#ua2dd91d] -シリアル通信をしている場合は,pin0とpin1は使えない. &ref(./arduino_uno_pin_assign.png,50%); *環境開発設定 [#b20b125d] **Ubuntu 13.04 [#ydbe4dc8] -未接続状態で sudo add-apt-repository -y ppa:webupd8team/java sudo apt-get -y update sudo apt-get -y install oracle-java7-installer sudo apt-get -y install arduino arduino-core **動作確認 [#wddbe00b] -Arduino IDE起動 --Ubuntu13.04では"arduino"をterminalで打つ. --Ubuntu12.04では"sudo arduino"をterminalで打つ. -コードを書く場所に以下を記述 int led = 13; void setup(){ pinMode(led,OUTPUT); } void loop(){ digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); } --Verifyを押す --Uploadを押す --基板上のLが1秒ごとに光っていることを確認 *Tips [#e50e08be] **ファイル分割 [#v7051e16] -ファイル分割は,タブ追加によって可能. -タブ追加 --タブの行の謎の逆三角形をクリック→新規タブ→cppを追加、でcppを追加できる。 --externやincludeする場合はextern "C" { #include "hoge.h"}を忘れずに。 -ソースコードを外部から変更したい場合 --Arduinoをいったん閉じる --ドキュメント/arduino/プロジェクト/hoge.cppを変更 --Arduinoを起動してプロジェクトを開く --tabも更新されている。 **PIO inputの内部プルアップ機能の利用方法 [#t21607a7] pinMode(enc1A, INPUT); pinMode(enc1B, INPUT); // プルアップを有効にします digitalWrite(enc1A, HIGH); digitalWrite(enc1B, HIGH); *シールド [#r700b476] -Arduinoの上に乗っける拡張器版 **[[USB Host Shield>http://www.amazon.co.jp/USB%E3%83%9B%E3%82%B9%E3%83%88%E3%82%B7%E3%83%BC%E3%83%AB%E3%83%89-Arduino-compatible-Google-Android/dp/B007YNG6RW]] [#w82996c0] -僕は普通に動いたが,「setup関数にdelay(500)を入れたら動いた」なるレビューがある -[[ここ>http://blog.goo.ne.jp/roboz80/e/9d2fc6e1266932f7ace682b43393217b]]が参考になる -USB_Host_Shield_20ライブラリは,デフォルトデバッグモード. --デバッグモードを切る場合は,USB_Host_Shield_20/settings.hのENABLE_UHS_DEBUGGINGを0にする. *Flash Air [#l57bc1ab] -arduinoをkonashiみたいにする方法 --http://www.geocities.jp/bokunimowakaru/diy/arduino/flashair.html *Sample [#p4e0abff] **[[LEDチカチカ>https://github.com/hamko/sample/tree/master/arduino/led_tikatika]] [#fd48d532] -オンボードをチカチカさせる. **[[シリアル通信>https://github.com/hamko/sample/tree/master/arduino/serial_io]] [#g2003f54] -シリアルIO **[[タイマ割り込み>https://github.com/hamko/sample/tree/master/arduino/timer]] [#w61a33fd] -library: MsTimer2 **[[シリアル通信をprintfで行う>https://github.com/hamko/sample/tree/master/arduino/serial_printf]] [#i7fb40e7] **時間取得 [#wc88ee5d] unsigned long ms, us; ms = millis(); // Arduino をリセットしてからの時間(ミリ秒) us = micros(); // Arduino をリセットしてからの時間(マイクロ秒) **[[GY-86>https://github.com/hamko/sample/tree/master/arduino/gy-86]] [#a7223156] -GY-86のGyroX, AccelZを使って,傾斜角とジャイロの0点をカルマンフィルタで推定するサンプル. **ロータリーエンコーダ(タイマ利用) [#nc49598c] -ロータリーエンコーダはプルアップとコンデンサをつけると安定 --コンデンサが必要なのは[[こういう理由>http://lao.blog.so-net.ne.jp/2014-05-25]] -http://radiopench.blog96.fc2.com/blog-entry-556.html **モータドライバ(TA7291P) [#bfe4a216] -http://www.hiramine.com/physicalcomputing/arduino/motordriver.html -本当に結構電線をつなげるだけなので楽 *I2C [#w6c6ff92] -[[Wireライブラリ>http://www.musashinodenpa.com/arduino/ref/]](標準で入っている)を使う. -wire -手順 --プログラムで一回だけ ---Wire.begin(); --送信 ---Wire.beginTransmission((uint8_t)address); ---Wire.write(data); ---Wire.endTransmission(); --受信 ---Wire.requestFrom((uint8_t)address,(uint8_t)nu,); // request a total of num registers ---Wire.read()をnum回呼んでバッファを空にする *gy-86との通信 [#n0ce3aa3] -概要 --内部にMPU6050 (Gyro&Accelerometer&Tempreture), HMC58831 (Compass), MS5611 (Altimeter)が入っている。 --''FreeIMUv0.4と同じハードウェア'' ---ピンの順番は異なる、GY-86のデータシートは一体どこ? -[[Arduinoとの結線>http://www.varesano.net/files/FreeIMU_v04-Arduino_connections.pdf]] --SDA->SDA, SCL->SCL, VCC_IN->3.3V, GND->GND、とするだけ。 -通信 --[[I2C Adress>http://www.varesano.net/files/freeimu-v04-address_selection.png]] |