Arduino UNOの基盤

基盤上のボタン:リセットボタン
USBケーブル:PCに繋げる、電源を取ることもできる、プログラムの転送も行う
ACアダプター電源

ピン
Power: Arduino自体を電源と考えた場合に、”5V”がプラス, “GND(ground)”がマイナス(0V)
Analog: アナログセンサーのピンを0〜5に差し込む
Digital PWM: 0〜13がデジタル入出力

LEDランプ
電源に繋げると、”ON”と”L”が点灯する

dav

すげー、これだけでもArduino UNO買って良かった。感動。

ブレッドボード
両端の+,-は横に繋がっている
真ん中のA〜E、F〜Jは縦に繋がっている EとFは繋がっていない

LED
長い針がアノード: プラス
短い針がカソード: マイナス

抵抗
カラーコード: 茶1、黒0、赤10^2、金+-5%
-> 1kΩ誤差5%

タクトスイッチ

dav

ああああ、ArduinoのLED、購入したのに捨ててしまった。捨てなきゃ良かった。。。

Arduinoのセットアップ

Arduinoとは?
– 電子工作のあらゆる問題を解決する
– イタリアで開発された教育用のシングルボードコンピューター
– アクチュエータ、センサーを簡単に扱える

macにArduino IDEをダウンロードします
https://www.arduino.cc/en/Main/Software

IDEを起動します

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

ツール -> ボード がArduino Unoになっている事を確認
前準備はこれでOK

### ハードウェア
– Arduino Uno 基盤
– 電線(ジャンパーワイヤ)20本
– ブレッドボード(ジャンパーワイヤを差し込んで配線する)
– USBケーブル
– LM35DZ 温度センサIC
– 7セグメントLED
– タクトスイッチ
– 1.0kΩ抵抗

マイコンは ATMEL AVR MEGA シリーズ、C言語ベース
Arduinoができる事

ピンの電圧を 5V (電源電圧)か0Vにする(デジタル出力, 10-20mAぐらいまで出力できる)
ピンの電圧を 5V/0V に高速に切り替える(アナログ出力, 10-20mAぐらいまで出力できる)
ピンに加えられた電圧が約2.5V以上なら 1, そうでなければ 0 と判断する (デジタル入力)
ピンに加えられた電圧を測って 0 から 1023 の数値で表す(アナログ入力, 電圧計として使える)
時間を測ったり、数を数えたり、計算をしたりできる(プログラム)

ArduinoとRaspberry Piの違い

### Arduinoとは
AVRマイコン、入出力ポートを備えた基板
C言語風のArduino言語によってコンパイル、デバック等を行う
Arduinoを動かすプログラムをSketch(拡張子は.ino)といい、統合環境はArduino IDE
OSがインストールされていないので、プログラムを送信する必要がある
基本はArduino Uno

Github: Arduino
機能: 温度センサー、気圧センサー、赤外線センサーなどの様々なセンサーをArduinoに接続することで、その値を使って処理可

### Raspberry Piとは
OSが搭載されている
SDカードから、Raspberry Pi専用のLinuxを起動でき、そこからプログラミングができる
Raspberry Pi用のカメラも発売されている
主にPythonやbashでプログラムを書く
無線通信が出来る

### ArduinoとRaspberry Piの違い
Arduinoは、組み込みや電子回路を学びたい人向け
Raspberry Piはソフトウェアを組み合わせたい人向け

両方とも実際にやってみないとわからなそうやな。

Arduino

void setup(){
  pinMode(LED_PIN, OUTPUT);
}

void loop(){
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);
  delay(500);
}

ハードウェアの制御

#define LED_PIN 9

void setup(){
  pinMode(LED_PIN, OUTPUT);
}

void loop(){
  int i;
  for(i=0; i<256; i++){
  analogWrite(LED_PIN, i);
  delay(10);
  }
}

音声制御

#define LED_SPK 9

void setup(){
  pinMode(LED_PIN, OUTPUT);
}

void loop(){
  int i;
  for(i=0; i<256; i++){
  tone(SPK_PIN, i*10, 20);
  delay(10);
  }
}

タクトスイッチ

#define LED_PIN 13
#define BUTTON 2

void setup(){
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUTTON, INPUT);
}

void loop(){
  if (digitalRead(BUTTON) == HIGH){
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW)
  }
}

Cdsセル

#define SENSOR 0

void setup(){
  pinMode(SENSOR, INPUT);
  Serial.begin(9600);
}

void loop(){
  int i;
  i = analogRead(SENSOR);
  Serial.print(i, DEC);
  Serial.print("\n");
  delay(1000);
}