[[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]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS