Wa Koodu

Ẹkọ 24/31: Ọkọ̀ Ọlọ́gbọ́n Apá 2: Gbígbé Síwájú, Yíyìpadà, Òsì àti Ọ̀tún àti Ìṣàkóso Ìyára Ọkọ̀

Ẹkọ 24/31: Ọkọ̀ Ọlọ́gbọ́n Apá 2: Gbígbé Síwájú, Yíyìpadà, Òsì àti Ọ̀tún àti Ìṣàkóso Ìyára Ọkọ̀

24-SunFounder-Car-Speed lori ọ̀nà

Ẹ̀kọ́ yìí dá lórí ìpele kejì ti kíkọ́ ọkọ̀ ayọ́kẹ́lẹ́ rẹ: gbígba ìṣàkóso ìṣísẹ̀ rẹ̀ pẹ̀lú kóòdù Arduino. Bí ó tilẹ̀ jẹ́ pé iṣẹ́ àkọ́kọ́ lè mú kí ọkọ̀ ayọ́kẹ́lẹ́ náà gbéra ní ọ̀nà tí ó rọrùn, ìtọ́sọ́nà yìí kọ́ ọ bí o ṣe lè pàṣẹ fún ọkọ̀ ayọ́kẹ́lẹ́ náà láti lọ síwájú, sẹ́yìn, yí padà sí òsì, yí padà sí ọ̀tún, àti láti dúró pẹ̀lú ìpéye. O yóò tún kọ́ bí o ṣe lè ṣàkóso ìyára rẹ̀, tí ó ń jẹ́ kí ìmúyára àti ìdínkù yára rẹ̀ dán. Èyí jẹ́ ìgbésẹ̀ pàtàkì fún èyíkéyìí iṣẹ́-ọnà robotiki, nítorí pé ó fún ọ ní ìpìlẹ̀ ìrònú láti dá àwọn ìwà àdáṣe tí ó túbọ̀ díjú sílẹ̀.

26-SunFounder-Car-4-Ultrasonic.mp4_snapshot_00.00.000

Mímú àwọn ìṣàkóso ìṣísẹ̀ yìí nípa yóò ṣí ọ̀nà àwọn àǹfààní púpọ̀ sílẹ̀. Èyí ni àwọn ìlò tí ó wúlò díẹ̀ fún ìmọ̀ yìí:

  • Àwọn roboti tí ń tẹ̀lé ìlà: Lo àwọn iṣẹ́ yípadà sí òsì àti ọ̀tún láti jẹ́ kí roboti dúró lórí ọ̀nà.
  • Àwọn ọkọ̀ tí ń yẹra fún ìdíwọ́: Ṣe ètò fún ọkọ̀ ayọ́kẹ́lẹ́ láti lọ síwájú, dúró, àti yípadà nígbà tí ó bá rí ohun kan níwájú rẹ̀.
  • Ìṣàwárí tí a ń ṣàkóso láti ọ̀nà jíjìn: Dapọ̀ àwọn àṣẹ wọ̀nyí pẹ̀lú ẹ̀rọ aláìlókùn-okun láti wakọ̀ ọkọ̀ ayọ́kẹ́lẹ́ yìí káàkiri ilé rẹ tàbí àgbàlá rẹ.
  • Àwọn ètò ìfiranṣẹ́ àdáṣe: Ṣẹ̀dá roboti kékeré kan tí ó lè gbéra láàrin àwọn ibi tí a yàn, tí ó ń dúró àti bẹ̀rẹ̀ bí ó ti wù.

Ohun èlò àti Àwọn Ẹ̀yà

Iṣẹ́-ọnà yìí gbé karí àkójọpọ̀ SunFounder 3-in-1 Arduino. Kò sí àwọn ẹ̀yà àfikún tí a nílò yàtọ̀ sí àkójọpọ̀ ìpìlẹ̀, ṣùgbọ́n o yóò ní láti so àwọn okun mẹ́rin àfikún pọ̀ mọ́ Arduino láti ṣàkóso ẹ̀rọ ìwakọ̀ mọ́tò. Àwọn ẹ̀yà pàtàkì ni:

  • Arduino Uno (tàbí bọ́ọ̀dù tí ó báramu)
  • Ẹ̀rọ SunFounder Smart Car pẹ̀lú àwọn mọ́tò
  • Bọ́ọ̀dù ìwakọ̀ mọ́tò (nínú àkójọpọ̀)
  • Àwọn okun Jumper
  • Àkójọpọ̀ bátì fún ọkọ̀ ayọ́kẹ́lẹ́
  • Okun USB fún ìṣètò
smarcar_turning_right  lókè
smartcar_turning_left lókè

Ìtọ́sọ́nà Ìsopọ̀ Okun

Ìsopọ̀ okun fún iṣẹ́-ọnà yìí ṣe pàtàkì fún ṣíṣàkóso ìtọ́sọ́nà mọ́tò kọ̀ọ̀kan. Fídíò náà ṣàlàyé pé àwọn okun ìṣàkóso mọ́tò mẹ́rin láti bọ́ọ̀dù ìwakọ̀ ni a so pọ̀ mọ́ àwọn pin Arduino 5, 6, 9, àti 10. Àwọn pin wọ̀nyí ṣe pàtàkì nítorí pé wọ́n ń ṣètìlẹ́yìn fún Pulse Width Modulation (PWM), èyí tí ó ṣe pàtàkì fún ìṣàkóso ìyára.

Nínú fídíò náà, olùkọ́ni so wọ́n pọ̀ ní ọ̀nà pàtó kan pẹ̀lú àwọn okun aláwọ̀ ofeefee àti bulu, gẹ́gẹ́ bí a ti fi hàn nínú àwòrán ìsàlẹ̀ yìí.

Àkíyèsí ààbò pàtàkì kan tí a mẹ́nu kàn nínú fídíò náà ni láti ge agbára bátì ọkọ̀ ayọ́kẹ́lẹ́ náà kúrò (okun pupa sí 5V àti okun dudu sí GND) nígbà tí o ń ṣètò Arduino nípasẹ̀ USB. Èyí ń ṣèdíwọ́ fún ibùdó USB láti má ṣe di ẹlẹ́rù jù, tí ó sì lè pa á.

Àlàyé Kóòdù

Kóòdù fún ẹ̀kọ́ yìí jẹ́ èyí tí a ṣètò láti rọrùn láti yípadà àti láti lóye. Bí ó ti wù kí ó rí, kókó láti ṣàkóso ọkọ̀ ayọ́kẹ́lẹ́ náà wà nínú àwọn ìtumọ̀ pin ní ìbẹ̀rẹ̀ skẹ́tì. O lè yí àwọn wọ̀nyí padà bí o bá pinnu láti lo àwọn pin tí ó yàtọ̀ lórí Arduino rẹ.

const int in1 = 5;
const int in2 = 6;
const int in3 = 9;
const int in4 = 10;

Àwọn ìlà wọ̀nyí ṣàlàyé àwọn pin Arduino tí a so pọ̀ mọ́ àwọn ìfàṣẹ̀wọ̀n ẹ̀rọ ìwakọ̀ mọ́tò. in1 àti in2 ń ṣàkóso mọ́tò kan, nígbà tí in3 àti in4 ń ṣàkóso èkejì. Nípa ṣíṣètò àwọn pin wọ̀nyí sí HIGH tàbí LOW, o ń ṣàkóso ìtọ́sọ́nà yíyí mọ́tò kọ̀ọ̀kan.

Láti ṣàkóso ìyára ọkọ̀ ayọ́kẹ́lẹ́ náà, kóòdù náà lo àwọn iṣẹ́ àṣàdá méjì: moveForward(int speed) àti moveBackwards(int speed). Àwọn iṣẹ́ wọ̀nyí gba iye odidi kan láàrin 0 àti 255 gẹ́gẹ́ bí àríyànjiyàn. Iye 0 ń dá mọ́tò dúró, nígbà tí 255 jẹ́ ìyára tí ó pọ̀ jù. Fún àpẹẹrẹ, láti mú ọkọ̀ ayọ́kẹ́lẹ́ náà lọ síwájú ní ìyára kíkún, o yóò pe moveForward(255). Láti mú un lọ sẹ́yìn ní ìyára díẹ̀, o yóò lo moveBackwards(100).

Fídíò náà tún ṣàfihàn ọ̀nà "ìmúyára" àti "ìdínkù yára" ní lílo àwọn ìyípo for. Èyí jẹ́ ìlànà tí ó lágbára fún ìmúyára dídán.

for(int i=0;i<=255;i+=5){
  moveForward(i);
  delay(100);
}

Ìyípo yìí bẹ̀rẹ̀ pẹ̀lú i ní 0 ó sì ń pọ̀ sí i ní 5 nígbà kọ̀ọ̀kan títí tí ó fi dé 255. Nígbà kọ̀ọ̀kan, ó ń pe moveForward(i), tí ó ń mú ìyára ọkọ̀ ayọ́kẹ́lẹ́ náà pọ̀ sí i díẹ̀díẹ̀. delay(100) ń pèsè ìsinmi 100-millisecond ní ìpele ìyára kọ̀ọ̀kan, tí ó ń mú kí ìmúyára náà hàn kedere. Ìyípo tí ó jọra pẹ̀lú iye i tí ń dínkù ni a lò láti fa ọkọ̀ ayọ́kẹ́lẹ́ náà sẹ́yìn.

Ìṣàfihàn Iṣẹ́-ọnà Láàyè

Nínú fídíò náà, olùkọ́ni ṣàfihàn iṣẹ́-ọnà náà ní àwọn ìpele pàtàkì méjì. Lákọ̀ọ́kọ́, ó fi àwọn ìṣísẹ̀ ìpìlẹ̀ ọkọ̀ ayọ́kẹ́lẹ́ náà hàn. Nípa gbígbé kóòdù "move" sílẹ̀, ọkọ̀ ayọ́kẹ́lẹ́ náà ń ṣe ọ̀nà tí a ti ṣètò tẹ́lẹ̀: lọ síwájú fún ìṣẹ́jú àáyá méjì, dúró, yípadà sẹ́yìn fún ìṣẹ́jú àáyá méjì, dúró, yípadà sí òsì, àti lẹ́yìn náà yípadà sí ọ̀tún. Èyí ń fi ìdí rẹ̀ múlẹ̀ kedere pé ìsopọ̀ okun àti ìrònú náà tọ́.

Àkàwé kejì dá lórí ìṣàkóso ìyára. Olùkọ́ náà gbé kóòdù "yára lọ" sílẹ̀, èyí tí ó máa ń mú ọkọ̀ náà yára síwájú díẹ̀díẹ̀ títí tí yóò fi dé ìwọ̀n tí ó pọ̀ jùlọ, lẹ́yìn náà yóò sì fa kíákíá débi pé ó dúró. Lẹ́yìn náà ó fi ẹ̀dà kan tí ó ní ìyára tí a fi mọ́lẹ̀ hàn, níbi tí ọkọ̀ náà ti ń lọ síwájú ní 255, dúró, lẹ́yìn náà ó sì ń padà sẹ́yìn ní ìyára tí ó kéré sí i, ìyẹn 100, pẹ̀lú àwọn iye náà tí a ń tẹ̀ jáde sí Serial Monitor fún ìfìdí rẹ̀ múlẹ̀.

Àwọn orí-ọ̀rọ̀

  • [00:00] Ìfáàrà sí Ìṣàkóso Ìṣísẹ̀ Ọkọ̀
  • [01:44] Ṣíṣètò Àwọn Okun fún Ìṣàkóso Kóòdù
  • [02:07] Ìfihàn Ìṣísẹ̀ Síwájú àti Sẹ́yìn
  • [03:18] Ìfihàn Yíyí Padà Sí Òsì àti Ọ̀tún
  • [05:05] Sísopọ̀ Àwọn Okun sí Àwọn Pínì Arduino
  • [07:00] Àlàyé Kóòdù fún Ìṣàkóso Ìtọ́nisọ́nà
  • [11:44] Ìfáàrà sí Ìṣàkóso Ìyára
  • [12:16] Àlàyé Kóòdù fún Ìmú Ìyára Pọ̀ Díẹ̀díẹ̀
  • [14:45] Lílò Serial Monitor fún Ṣíṣàtúnṣe Àṣìṣe
  • [17:10] Ìfihàn Láàyè ti Ìṣàkóso Ìyára
  • [19:45] Ìdánwò Ìkẹyìn Ní Òde àti Ìparí

Aworan

26 SunFounder Car 4 ultrasonic video snapshot 00.00.000
26 SunFounder Car 4 ultrasonic video snapshot 00.00.000
Smartcar turning left
Smartcar turning left
Smartcar turning right
Smartcar turning right
24 SunFounder Car speed on the pavement
24 SunFounder Car speed on the pavement
900-Lesson 24/31: Smart code speeds up
Ede: C++
/*
Lesson 24/31: Smart code speeds up
Get this code and watch video Download and resource page https://robojax.com/RJT607
YouTube video https://www.youtube.com/watch?v=QzcUig2L3dM

*/
const int in1 = 5;
const int in2 = 6;
const int in3 = 9;
const int in4 = 10;

void setup() {
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  Serial.begin(9600);
  Serial.println("SunFounder Arduino Course");
  Serial.println("Lesson 3: Speed up");
  Serial.println("www.Robojax.com");
  
}

void loop() {
    
    moveForward(255);
    Serial.print("Forward at: ");
    Serial.println(255);
    delay(5000);//for 5 seconds

    Serial.println("Stopped ");
    moveForward(0);//stop the car
    delay(2000);//for 2 seconds
    
    moveBackwards(100);
    Serial.print("Reverse at: ");    
    Serial.println(100);    
    delay(5000);//for 5 seconds

    Serial.println("Stopped ");
    moveForward(0);//stop the car
    delay(2000);//for 2 seconds   
 
}

void moveForward(int speed) {
  analogWrite(in1, 0);
  analogWrite(in2, speed);
  
  analogWrite(in3, speed);
  analogWrite(in4, 0);
}

void moveBackwards(int speed) {
  analogWrite(in1, speed);
  analogWrite(in2, 0);
  
  analogWrite(in3, 0);
  analogWrite(in4, speed);
}
901-Lesson 24/31: Smart code speeds up (Custome code)
Ede: C++
/*
Lesson 24/31: Smart code speeds up (custom code)
Get this code and watch video Download and resource page https://robojax.com/RJT607
YouTube video https://www.youtube.com/watch?v=QzcUig2L3dM

*/
const int in1 = 5;
const int in2 = 6;
const int in3 = 9;
const int in4 = 10;

void setup() {
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  Serial.begin(9600);
  Serial.println("SunFounder Arduino Course");
  Serial.println("Lesson 3: Speed up");
  Serial.println("www.Robojax.com");
  
}

void loop() {
  Serial.println("Loop 1: Speeding Up"); 
  for(int i=0;i<=255;i+=5){
    moveForward(i);
    Serial.print("i= ");
    Serial.println(i);
    delay(100);
  }
    Serial.println("Loop 2: Slowing down "); 
  for(int i=255;i>=0;i-=5){
    moveForward(i);
    Serial.print("i= ");
    Serial.println(i);    
    delay(100);
  }
 
}

void moveForward(int speed) {
  analogWrite(in1, 0);
  analogWrite(in2, speed);
  
  analogWrite(in3, speed);
  analogWrite(in4, 0);
}

Orisun & itọkasi

Fáìlìs📁

Awọn ile-ikawe Arduino (zip)