Search Code

Lekcia 24/31: Smart Auto Časť 2: Pohyb vpred, cúvanie, doľava a doprava a ovládanie rýchlosti auta

Lekcia 24/31: Smart Auto Časť 2: Pohyb vpred, cúvanie, doľava a doprava a ovládanie rýchlosti auta

24-SunFounder-Car-Speed na chodníku

Táto lekcia sa zameriava na druhú fázu stavby vášho smart auta: prevzatie kontroly nad jeho pohybom pomocou kódu v Arduine. Zatiaľ čo prvý projekt mohol autom pohybovať základným spôsobom, táto príručka vás naučí, ako autu prikázať, aby sa pohybovalo dopredu, dozadu, zatáčalo doľava, doprava a zastavilo s presnosťou. Naučíte sa tiež, ako ovládať jeho rýchlosť, čo umožní plynulé zrýchľovanie a spomaľovanie. Toto je základný krok pre každý robotický projekt, pretože vám dáva základnú logiku na vytvorenie zložitejších autonómnych správaní.

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

Zvládnutie týchto ovládacích prvkov pohybu otvára svet možností. Tu je niekoľko praktických aplikácií týchto vedomostí:

  • Roboty sledujúce čiaru: Použite funkcie zatáčania doľava a doprava na udržanie robota na trati.
  • Vozidlá vyhýbajúce sa prekážkam: Naprogramujte auto tak, aby sa pohybovalo dopredu, zastavilo a zatáčalo, keď zistí objekt vo svojej dráhe.
  • Prieskum na diaľkové ovládanie: Skombinujte tieto príkazy s bezdrôtovým modulom a jazdite s autom po dome alebo dvore.
  • Automatizované doručovacie systémy: Vytvorte malého robota, ktorý sa môže pohybovať medzi stanovenými bodmi, pričom podľa potreby zastavuje a štartuje.

Hardvér a komponenty

Tento projekt nadväzuje na SunFounder 3-v-1 Arduino kit. Okrem základnej súpravy nie sú potrebné žiadne ďalšie komponenty, ale na ovládanie motorového ovládača budete musieť k Arduinu pripojiť štyri extra vodiče. Základné komponenty sú:

  • Arduino Uno (alebo kompatibilná doska)
  • Podvozok SunFounder Smart Car s motormi
  • Doska motorového ovládača (súčasť súpravy)
  • Prepojovacie vodiče
  • Batériový blok pre auto
  • USB kábel na programovanie
smarcar_turning_right  vyššie
smartcar_turning_left vyššie

Sprievodca zapojením

Zapojenie pre tento projekt je kľúčové pre ovládanie smeru každého motora. Video vysvetľuje, že štyri ovládacie vodiče motora z dosky ovládača sú pripojené na piny Arduina 5, 6, 9 a 10. Tieto piny sú špeciálne, pretože podporujú Pulznú šírkovú moduláciu (PWM), ktorá je nevyhnutná pre ovládanie rýchlosti.

Vo videu inštruktor ich pripája v špecifickom poradí pomocou žltých a modrých vodičov, ako je znázornené na diagrame nižšie.

Kritická bezpečnostná poznámka spomenutá vo videu je odpojiť batériové napájanie auta (červený vodič na 5V a čierny vodič na GND) počas programovania Arduina cez USB. Tým sa zabráni preťaženiu USB portu a jeho možnému vypnutiu.

Vysvetlenie kódu

Kód pre túto lekciu je štruktúrovaný tak, aby bol ľahko modifikovateľný a pochopiteľný. Kľúč k ovládaniu auta spočíva v definíciách pinov na začiatku skeču. Môžete ich zmeniť, ak sa rozhodnete použiť iné piny na vašom Arduine.

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

Tieto riadky definujú piny Arduina pripojené na vstupy motorového ovládača. in1 a in2 ovládajú jeden motor, zatiaľ čo in3 a in4 ovládajú druhý. Nastavením týchto pinov na HIGH alebo LOW ovládate smer otáčania každého motora.

Na ovládanie rýchlosti auta kód používa dve vlastné funkcie: moveForward(int speed) a moveBackwards(int speed). Tieto funkcie prijímajú ako argument celočíselnú hodnotu medzi 0 a 255. Hodnota 0 zastaví motor, zatiaľ čo 255 je maximálna rýchlosť. Napríklad na pohyb auta dopredu plnou rýchlosťou by ste zavolali moveForward(255). Na pomalý pohyb dozadu by ste použili moveBackwards(100).

Video tiež demonštruje sekvenciu "zrýchľovania" a "spomaľovania" pomocou for slučiek. Toto je výkonná technika pre plynulé zrýchlenie.

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

Táto slučka začína s i na 0 a zvyšuje ho o 5 pri každom prechode, kým nedosiahne 255. Pri každom prechode volá moveForward(i), postupne zvyšujúc rýchlosť auta. delay(100) poskytuje 100-milisekundovú pauzu na každom kroku rýchlosti, čo robí zrýchlenie viditeľným. Podobná slučka s klesajúcou hodnotou i sa používa na spomalenie auta.

Živá demonštrácia projektu

Vo videu inštruktor demonštruje projekt v dvoch hlavných fázach. Najprv ukazuje základné pohyby auta. Po nahratí kódu "move" auto vykonáva vopred naprogramovanú sekvenciu: pohyb dopredu na dve sekundy, zastavenie, cúvanie na dve sekundy, zastavenie, zatáčanie doľava a potom doprava. Toto vizuálne potvrdzuje, že zapojenie a logika sú správne.

Druhá ukážka sa zameriava na ovládanie rýchlosti. Inštruktor načíta kód „zrýchlenie", ktorý postupne zrýchľuje auto dopredu, až kým nedosiahne maximálnu rýchlosť, a potom plynulo spomaľuje až do zastavenia. Potom ukáže verziu s pevnou rýchlosťou, kde sa auto pohybuje dopredu rýchlosťou 255, zastaví a potom cúva pomalšou rýchlosťou 100, pričom hodnoty sa vypisujú do sériového monitora na overenie.

Kapitoly

  • [00:00] Úvod do ovládania pohybu auta
  • [01:44] Zapojenie vodičov pre ovládanie kódom
  • [02:07] Ukážka pohybu dopredu a dozadu
  • [03:18] Ukážka zatáčania doľava a doprava
  • [05:05] Pripojenie vodičov k pinom Arduina
  • [07:00] Vysvetlenie kódu pre ovládanie smeru
  • [11:44] Úvod do ovládania rýchlosti
  • [12:16] Vysvetlenie kódu pre plynulé zrýchľovanie
  • [14:45] Použitie sériového monitora na ladenie
  • [17:10] Živá ukážka ovládania rýchlosti
  • [19:45] Záverečný vonkajší test a záver

Images

26-SunFounder-Car-4-Ultrasonic.mp4_snapshot_00.00.000
26-SunFounder-Car-4-Ultrasonic.mp4_snapshot_00.00.000
smartcar_turning_left
smartcar_turning_left
smarcar_turning_right
smarcar_turning_right
24-SunFounder-Car-Speed on the pavement
24-SunFounder-Car-Speed on the pavement
900-Lesson 24/31: Smart code speeds up
Language: C++
This code has not been parsed yet. Please return to the admin panel to parse it.
901-Lesson 24/31: Smart code speeds up (Custome code)
Language: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Resources & references

Files📁

Arduino Libraries (zip)