Objektumkövető rendszer létrehozása 2. rész: Servo vezérlése

Procontrol Elektronika Kft. - Cégbemutató (Július 2019).

$config[ads_text] not found
Anonim

Objektumkövető rendszer létrehozása 2. rész: Servo vezérlése


Ismerje meg a szervomotorok alapvető működését, és hogyan kapcsolódjon össze az Arduino Uno használatával.

A projektsorozat második része szervossá válik, és végrehajtja a kódot, hogy szervo mozgassa véletlenszerű pozíciókat minden másodpercben az ultrahangos érzékelőkkel való integrálás előkészítéseként a projektsorozat következő fázisából.

A projekt 1. része itt található: Objektumkövető rendszer létrehozása: beépített Arduino könyvtárak használata

Kötelező alkatrészek:

  • Arduino Uno
  • 5V-os tűrő 180 fokos szervó

A bekötési rajz az alábbiakban található, és meglehetősen egyszerű: mindössze 3 csatlakozás. Az ábrán a piros 5V, a fekete GND és a sárga a vezérlőhuzal.

1. ábra: Arduino / Szervo bekötési rajz

A szervo vezérlése PWM (impulzusszélesség moduláció) jel küldésével történik a vezérlőcsappal. A PWM jel impulzusszélessége jelzi a szervó helyzetét. Az alábbiakban bemutatjuk a szervo impulzusszélesség-vezérlési rendszerét. Amint látja, a minimális impulzusszélesség (0, 5 ms) a szervó a csuklós szélső szélső szélén van, és maximális impulzusszélességgel (2, 5 ms) a szervó a csuklós jobb szélén áll.

2. ábra: Szervo vezérlési rendszer

Az Arduino IDE egy könyvtárral (Servo.h) van ellátva a szervókhoz való csatoláshoz. A könyvtár végrehajtása jelentősen leegyszerűsíti a szervo meghajtóhoz szükséges kódot. A könyvtár kezeli a PWM frekvenciákat, és egyszerű paranccsal rendelkezik a pozíció vezérléséhez: ServoName.write (X), ahol a "ServoName" egy felhasználó által kiválasztott, egyedi név a kimenet számára, "(X)" a kívánt pozíció fokokban, .write "a szükséges szintaxis. Az alábbi kódrészlet egy példa, amely véletlenszerű pozíciót generál minden másodpercben, és a szervó mozgatását az adott pozícióba. Az integrációs fázis során a véletlenszám-generálás helyébe a követési algoritmus kimenete kerül.

Javasoljuk, hogy ha az Arduino-t csak az USB portról táplálja, csatlakoztassa a tápfeszültséget a szervo bekapcsolása előtt. A szervóból származó áramcsúcs az 5V-os sín leesését okozhatja, és a fedélzet újraindulhat és instabillá válhat.

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

Ez a projekt egy natív könyvtárat használ, hogy egyszerűsítse a perifériákhoz való kapcsolódást. A következő projektben saját feladatokat fogunk írni az objektumkövetési algoritmus létrehozásához.

Következő cikk a sorozatban: A szervo vezérlés integrálása az objektum észlelésével

Adja meg ezt a projektet magának! Szerezd meg a BOM-ot.