FrontPage

概要

  • Arduino Uno R3を動かす方法

Arduinoの比較

  • Arduinoの違い
    • Megaが70本もPIO付いててすごい
    • Duoは3.3Vなので注意

インストール

Ubuntu 12.04

sudo apt-get update && sudo apt-get install arduino arduino-core  
  • dailoutグループにはいらなければならない?

ライブラリの追加

Ubuntu 13.04

  • /sketch/library/にライブラリを置いて,arduino IDEを再起動する.

サンプル集

  • github
  • フォルダ内にlibraryというフォルダがある場合は,その中に入っているライブラリをインストールしてください.

ピンアサイン

  • シリアル通信をしている場合は,pin0とpin1は使えない.

arduino_uno_pin_assign.png

環境開発設定

Ubuntu 13.04

  • 未接続状態で
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 

動作確認

  • 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

ファイル分割

  • ファイル分割は,タブ追加によって可能.
  • タブ追加
    • タブの行の謎の逆三角形をクリック→新規タブ→cppを追加、でcppを追加できる。
    • externやincludeする場合はextern "C" { #include "hoge.h"}を忘れずに。
  • ソースコードを外部から変更したい場合
    • Arduinoをいったん閉じる
    • ドキュメント/arduino/プロジェクト/hoge.cppを変更
    • Arduinoを起動してプロジェクトを開く
    • tabも更新されている。

PIO inputの内部プルアップ機能の利用方法

 pinMode(enc1A, INPUT);
 pinMode(enc1B, INPUT);
 // プルアップを有効にします
 digitalWrite(enc1A, HIGH);
 digitalWrite(enc1B, HIGH);

シールド

  • Arduinoの上に乗っける拡張器版

USB Host Shield

  • 僕は普通に動いたが,「setup関数にdelay(500)を入れたら動いた」なるレビューがある
  • ここが参考になる
  • USB_Host_Shield_20ライブラリは,デフォルトデバッグモード.
    • デバッグモードを切る場合は,USB_Host_Shield_20/settings.hのENABLE_UHS_DEBUGGINGを0にする.

Flash Air

Sample

LEDチカチカ

  • オンボードをチカチカさせる.

シリアル通信

  • シリアルIO

タイマ割り込み

  • library: MsTimer2

シリアル通信をprintfで行う

時間取得

unsigned long ms, us;

ms = millis();  // Arduino をリセットしてからの時間(ミリ秒)
us = micros();  // Arduino をリセットしてからの時間(マイクロ秒)

GY-86

  • GY-86のGyroX, AccelZを使って,傾斜角とジャイロの0点をカルマンフィルタで推定するサンプル.

ロータリーエンコーダ(タイマ利用)

モータドライバ(TA7291P)

I2C

  • Wireライブラリ(標準で入っている)を使う.
  • 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との通信

  • 概要
    • 内部にMPU6050 (Gyro&Accelerometer&Tempreture), HMC58831 (Compass), MS5611 (Altimeter)が入っている。
    • FreeIMUv0.4と同じハードウェア
      • ピンの順番は異なる、GY-86のデータシートは一体どこ?
  • Arduinoとの結線
    • SDA->SDA, SCL->SCL, VCC_IN->3.3V, GND->GND、とするだけ。
  • 通信

添付ファイル: filearduino_uno_pin_assign.png 3件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-16 (月) 11:14:38 (2659d)