projekti

Izveidojiet objekta izsekošanas sistēmu 2.daļa: Servo vadība

Building Dynamic Web Apps with Laravel by Eric Ouyang (Janvāris 2019).

Anonim

Izveidojiet objekta izsekošanas sistēmu 2.daļa: Servo vadība


Uzziniet servo motora pamatdarbību un to, kā saskarties ar tiem, izmantojot Arduino Uno.

Šīs projekta sērijas otrā daļa aplūko servos un ieviesīs kodu, lai katru sekundi pārvietotu servo izlases pozīcijas, gatavojoties integrācijai ar ultraskaņas sensoriem nākamajā projekta sērijas fāzē.

Šā projekta 1.daļu skatiet šeit: Izveidojiet objektu izsekošanas sistēmu: izmantojot Arduino bibliotēkas

Nepieciešamās detaļas:

  • Arduino Uno
  • 5V izturīgs 180 ° servo

Elektrības shēma ir zemāk un ir diezgan vienkārša: tikai 3 savienojumi. Diagrammā sarkanā krāsā ir 5 V, melna ir GND, un dzeltenā ir vadības vads.

1. attēls: Arduino / Servo elektroinstalācijas diagramma

Servo tiek kontrolēts, nosūtot PWM (Pulse Width Modulation) signālu uz vadības tapu. PWM signāla impulsa platums vadīs servo pozīciju. Zemāk ir piemērs servo impulsa platuma kontroles shēmai. Kā redzat, minimālais impulsa platums (0.5ms) ir zem tā saskares kreisā galējā gala un ar maksimālo impulsa platumu (2.5 ms) servo ir tā galējās malas galā.

2. attēls: Servo vadības sistēma

Arduino IDE ir aprīkots ar bibliotēku (Servo.h), kas nodrošina saskarni ar servos. Šīs bibliotēkas ieviešana ievērojami vienkāršo kodu, kas nepieciešams, lai vadītu Servo. Bibliotēka regulē PWM frekvenču noteikšanu un sniedz vienkāršu komandu pozicionēšanas kontrolei: ServoName.write (X), kur "ServoName" ir izvēlēts lietotājs, šī produkta unikālais nosaukums "(X)" ir vēlamā pozīcija grādos un " .writ "ir vajadzīgs sintakts. Zemāk redzamais koda fragments ir piemērs, kas ģenerē izlases stāvokli katru sekundi un pārvieto servo uz šo pozīciju. Integrācijas posma laikā nejaušo skaitļu ģenerēšana tiks aizstāta ar izsekošanas algoritma izvadi.

Ir ieteicams, ka, ja jūs tikai pievienojat savu Arduino no USB pieslēgvietas, pirms strāvas pieslēgšanas pievienojiet strāvas avotu. Pašreizējais vilciens no servo var izraisīt 5V sliedes sabrukumu un var izraisīt tā atiestatīšanu un kļūt nestabilas.

 #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 } 

Šis projekts izmanto vietējo bibliotēku, lai vienkāršotu saskarni ar perifēriju. Nākamajā projektā mēs uzrakstīsim savas funkcijas, lai izveidotu objekta izsekošanas algoritmu.

Nākamais raksts sērijā: Servo kontroles integrēšana ar objektu atklāšanu

Dodiet šim projektam pašiem sevi! Iegūstiet BOM.