SUPERNATURAL ENCOUNTER M August November · 平安夜聖誕節 國慶日 ... 神蹟之夜 神蹟之夜 神蹟之夜 神蹟之夜 神蹟之夜 神蹟之夜 聖誕神蹟之夜 跨年禱告會
Arduino 習作工坊 - Lesson 5 機械之夜
-
Upload
cavedu-education -
Category
Education
-
view
557 -
download
2
Transcript of Arduino 習作工坊 - Lesson 5 機械之夜
![Page 1: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/1.jpg)
Arduino PlusMakerBar Taipei Workshop
![Page 2: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/2.jpg)
![Page 3: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/3.jpg)
BLUE TOOTH CAR藍牙遙控車
![Page 4: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/4.jpg)
![Page 5: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/5.jpg)
![Page 6: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/6.jpg)
![Page 7: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/7.jpg)
![Page 8: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/8.jpg)
![Page 9: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/9.jpg)
原理說明
![Page 10: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/10.jpg)
TA7279PIC Arduino1 不⽤用接
2 63 94 motor1 +5 5V6 motor1 -7 GND8 GND9 motor2 -10 vcc11 motor2 +12 313 514 5V
![Page 11: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/11.jpg)
阻抗值
煞⾞車
逐漸停⽌止
![Page 12: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/12.jpg)
電路ARDUINO IC6 29 33 125 13
MOTOR ICM1+ 4M1- 6M2+ 11M2- 9
ARDUINO BT5V VCCGND GND10 Tx11 Rx
![Page 13: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/13.jpg)
13
![Page 14: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/14.jpg)
motoduino⽤用來控制2個直流⾺馬達的腳位分別為D5+D8、D6+D7兩組,⽤用來做⽅方向及轉速的控制
PWM正反轉
![Page 15: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/15.jpg)
#include <SoftwareSerial.h> int Data = 0; SoftwareSerial I2CBT(10,11); void setup() { //開啟通訊 Serial.begin(9600); I2CBT.begin(9600); }
void loop() { if(I2CBT.available()>0) { //讀取鍵盤訊息 Data = I2CBT.read(); I2CBT.println(Data); }
switch(Data) { case 'f': //前進 MotorControl(0,200); MotorControl(1,200); break; case 'l': //左轉 MotorControl(0,100); MotorControl(1,200); break; case 'r': //右轉 MotorControl(0,200); MotorControl(1,100); break; case 'b': //後退 MotorControl(0,-200); MotorControl(1,-200); break; case 's': //停⽌止 MotorControl(0,0); MotorControl(1,0); break; } }
![Page 16: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/16.jpg)
void MotorControl(int motor,int velocity) { if(motor==0) { if(velocity > 0) { analogWrite(6,velocity); analogWrite(9,0); } else { velocity = velocity*(-1); analogWrite(6,0); analogWrite(9,velocity); } }
if(motor==1) { if(velocity > 0) { analogWrite(3,velocity); analogWrite(5,0); } else { velocity = velocity*(-1); analogWrite(3,0); analogWrite(5,velocity); } } }
副程式
![Page 17: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/17.jpg)
ME ARM機械手臂
![Page 18: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/18.jpg)
Pulse Width Modulation (PWM)脈衝寬度調變
• 數位輸出可以控制訊號的開和關,開和關同時
意味著通電與斷電
• 如果我們可以進一步控制通電的時間比例,就
能讓輸出的訊號產生變化,例如LED燈通電時
間為50%,就可以控制LED燈只有50%的亮度
![Page 19: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/19.jpg)
PWM
• 以數位訊號模擬類比訊號的技術
![Page 20: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/20.jpg)
PWM 使用方法
• IDE code 為 analogWrite() • 格式:analogWrite(pin, value) • 在uno板子中只有pin 3,5,6,9,10,11腳位為
PWM腳位 • Value: duty cycle,介於0-255,0為0%,
127為50%,255為100%
![Page 21: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/21.jpg)
mearm範例(mearmtest)
![Page 22: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/22.jpg)
#include <Wire.h>#include <Servo.h>
Servo servo_3;
int i=135;
void setup(){ Serial.begin(9600); delay(100); servo_0.attach(9); servo_0.write(i); delay(100);}
void loop(){ int readnum = Serial.read(); if(readnum==49) //“1” { if(i<180) i++; } else if(readnum==50) //“2” { if(i>0) i=i-1; } Serial.print("i= "); Serial.println(i); servo_3.write(i); delay(50);}
![Page 23: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/23.jpg)
mearm範例(mearm)
![Page 24: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/24.jpg)
24
0
13
2
![Page 25: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/25.jpg)
• servo_0.attach(3); • servo_0.write(i0);
• servo_1.attach(5); • servo_1.write(i1);
• servo_2.attach(6); • servo_2.write(i2);
• servo_3.attach(9); • servo_3.write(i3);
25
![Page 26: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/26.jpg)
26
![Page 27: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/27.jpg)
搖桿:類比+數位輸入
按鈕: int btn_l = digitalRead(4); int btn_r = digitalRead(7); 遙桿: int vrx = analogRead(A0); int vry = analogRead(A1); int vlx = analogRead(A2); int vly = analogRead(A3);
27
![Page 28: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/28.jpg)
int i0 = 90; int i1 = 150; int i2 = 110; int i3 = 130; int i0max=180; int i0min=0; int i1max=175; int i1min=120; int i2max=140; int i2min=90; int i3max=140; int i3min=120;
初始值
最⼤大最⼩小值
![Page 29: Arduino 習作工坊 - Lesson 5 機械之夜](https://reader030.fdocuments.net/reader030/viewer/2022013102/55cb32d2bb61eb8c688b46a3/html5/thumbnails/29.jpg)
29
0
13
2
0
12
3
1
03
2
3