projektov

Ustvarite sistem za sledenje objektov - del 2: krmiljenje servo

LibreOffice 5.4: New Features (December 2018).

Anonim

Ustvarite sistem za sledenje objektov - del 2: krmiljenje servo


Spoznajte osnovno delovanje servo motorjev in kako se z njimi povezati z uporabo Arduino Uno.

Drugi del te serije projektov obravnava servos in bo implementiral kodo za premik servo-naključnih pozicij vsako sekundo v pripravah na integracijo z ultrazvočnimi senzorji iz naslednje faze tega serijskega projekta.

1. del tega projekta lahko najdete tukaj: Ustvarite sistem za sledenje objektov: z uporabo vgrajenih arduino knjižnic

Zahtevani deli:

  • Arduino Uno
  • 5V tolerantno 180 ° servo

Shema ožičenja je spodaj in je precej preprosta: samo 3 povezave. V diagramu je rdeča 5V, črna je GND, rumena pa kontrolna žica.

Slika 1: Diagram Arduino / servo ožičenja

Krmiljenje krmiljenja se upravlja s pošiljanjem signala PWM (Pulse Width Modulation) na krmilni zatič. Impulzna širina signala PWM bo ukazala položaj servo. Spodaj je primer krmilne sheme servo impulzne širine. Kot lahko vidite, je servo pri najmanjši impulzni širini (0, 5ms) na skrajnem levem robu njene artikulacije in z največjo širino impulza (2, 5ms), servo je v skrajnem skrajnem delu njene artikulacije.

Slika 2: Shema krmiljenja servo

Arduino IDE ima knjižnico (Servo.h) za povezovanje s servosom. Izvajanje te knjižnice bo v veliki meri poenostavilo kodo, potrebno za pogon Servo. Knjižnica obravnava vzpostavljanje frekvenc PWM in daje preprost ukaz za nadzorni položaj: ServoName.write (X), kjer je "ServoName" uporabnik izbran, edinstveno ime za ta izhod, "(X)" je želeni položaj v stopinjah in " .write "je zahtevana sintaksa. Spodnji del kode je primer, ki vsako sekundo generira naključni položaj in servo premakne v ta položaj. V fazi integracije se generiranje naključnih številk nadomesti z izhodom iz algoritma za sledenje.

Priporočamo, da če napravo Arduino napajate le iz USB-priključka, pred priključitvijo servo vtiča vtaknite napajalnik DC. Sedanje vlečenje iz servomotorja lahko povzroči, da se 5V tirnica spusti in lahko povzroči, da se plošča ponastavi in ​​postane nestabilna.

 #include "Servo.h" // Implements easy to use servo controls Servo ServoOne; // Generates an instance of a servo object int ServoPosition = 0; // Variable to be used to assign position of servo void setup() // Initialize { ServoOne.attach(9); // Assigns pin 9 as a servo } void loop() // Main loop { ServoPosition = random(0, 180); // Generates a random number and stores it in ServoPosition ServoOne.write(ServoPosition); // Commands servo to spin to position delay(1000); // Delays for 1000 ms } 

Ta projekt uporablja izvorno knjižnico za poenostavitev povezovanja s periferno. V naslednjem projektu bomo napisali lastne funkcije za ustvarjanje algoritma za sledenje objektov.

Naslednji članek v seriji: Integracija servo kontrole z odkrivanjem objektov

Dajte ta projekt poskusiti sami! Pridobi BOM.