Tartalomjegyzék:

Arduino alapú soros szervo vezérlő: 6 lépés
Arduino alapú soros szervo vezérlő: 6 lépés

Videó: Arduino alapú soros szervo vezérlő: 6 lépés

Videó: Arduino alapú soros szervo vezérlő: 6 lépés
Videó: You can learn Arduino in 15 minutes. 2024, November
Anonim
Arduino alapú soros szervo vezérlő
Arduino alapú soros szervo vezérlő
Arduino alapú soros szervo vezérlő
Arduino alapú soros szervo vezérlő

Ez egy egyszerű soros vezérlő több szervóhoz az Arduino alapján. (nekem is az első tanítható:))

A munka nagy része abból származott, hogy a szoftvert beszélni kellett az arduino -val, és protokollt készítettem az adatok átadására. Ami a hardvert illeti, csak két szervót használtam (itt Parallax szabványos szervó.) Egy Sparkfun Arduino ProtoShield és egy Arduino Duemilanove ATMEGA328 -mal, de ezeknek a részeknek a többsége hasonló elemekkel helyettesíthető. Ezt a projektet egy RC rendszer részeként gondoltam, de a kommunikáció beállítása sok időt vett igénybe. Ha valakinek van javítása, ötlete vagy hibája, kérjük, írjon megjegyzést. EDIT: Nemrég írtam, nemrég tettem közzé.

Lépés: Amire szüksége lehet…

Amire szüksége lehet…
Amire szüksége lehet…
Amire szüksége lehet…
Amire szüksége lehet…

Néhány dologra szüksége lesz ennek felépítéséhez. 1. Arduino kártya (Ön választja) 2. két (vagy egy) szervó 3. áthidaló vezetékek 4. Visual Studio 2008 Express - link (opcionális) 5. Arduino IDE - link Sajnáljuk Linux és Apple rajongók, a programom csak fut Windows egyelőre, de továbbra is manuálisan küldhet soros parancsokat az arduino -nak a kód megváltoztatása nélkül.

2. lépés: Csatlakoztassa a hardvert

Csatlakoztassa a hardvert
Csatlakoztassa a hardvert

Semmi nagyon bonyolult ehhez a lépéshez. Csatlakoztassa az egyik szervót a 9 -es, a másikat a 10 -es tűhöz.

Lépés: Programozza be az Arduino programot

Programozza be az Arduino programot
Programozza be az Arduino programot

most feltöltheti a vázlatot az arduino -ra.

Íme egy egyszerű bontás a kódra: #include Servo myservo; // szervo objektum létrehozása a szervó vezérlésére Servo myservo1; int bejövőBájt = 0, adatszám = 0, számláló = 0, kész = 0; // bejövő soros adatokra char data [10]; const char ellenőriz [8] = "ma11hew"; char parancs [3]; void setup () {myservo.attach (9); myservo1.attach (10); Sorozat.kezdet (38400); // megnyitja a soros portot, beállítja az adatsebességet Serial.println ("Szia Arduino itt!"); // hozzáadva a soros port azonosításához Ez csak beállítja a soros portot és a szervókat. int i; for (i = 0; i <180; i ++) {myservo.write (i); késleltetés (15); } myservo.write (5); for (i = 0; i <180; i ++) {myservo1.write (i); késleltetés (15); } myservo1.write (5); } Egyszerű seprőmozgás a szervók megfelelő működésének ellenőrzéséhez. void loop () {kész = 0; számláló = 0; while (1 == 1) {if (Serial.read ()! = ellenőrizze [számláló]) {break; } if (számláló == 6) {delay (20); parancs [0] = Serial.read (); parancs [1] = Serial.read (); // ha (Serial.read () == ((parancs [1] * 12) % 8)) // {kész = 1; //} Serial.println ("mentett parancs"); } számláló ++; késleltetés (2); } ez ellenőrzi a soros puffert a megfelelő jogosultsági karakterláncra, majd lefoglal két bájtot a parancshoz. a megjegyzett megjegyzést, ha az utasítás megengedi az ellenőrző összeget, de megnehezíti a kézi illesztést. A kész értéket 0 -ra lehet állítani, így a parancsok nem lesznek értelmezve, például sérült adatok esetén. // keresés a parancsok között, ha (kész == 1) {if (parancs [0] == 'T') {parancs [0] = 0; Serial.print ("fojtószelep -szabályozó a 9 -es tűn:"); Serial.println (térkép (parancs [1], 32, 126, 2, 180), DEC); myservo.write (térkép (parancs [1], 32, 126, 2, 180)); } if (parancs [0] == 'S') {parancs [0] = 0; Serial.print ("fojtószelep -szabályozó a 10 -es tűn:"); Serial.println (térkép (parancs [1], 32, 126, 2, 180), DEC); myservo1.write (térkép (parancs [1], 32, 126, 2, 180)); }}} a kód többi része a paranccsal keresi az érvényes parancsokat (T vagy S.), ha bármelyik megegyezik, elfoglalja a következő bájtot, és elküldi a szervónak. többet a térképen (parancs [1], 32, 126, 2, 180) később… a kód itt bővíthető bármire, amire szüksége lehet (pl. lámpák, motorok, IR stb.), ez a kód jól működik, ha nincs módosítások.

4. lépés: Telepítse a szoftvert

Telepítő program
Telepítő program

Kétféleképpen telepíthetem ezt a … nsis telepítőt: Töltse le az alábbi önkicsomagoló telepítőt, és futtassa azt. A telepítés során lehetősége lesz források telepítésére. a telepítő bináris csomagja telepíti a core c ++ dll fájlokat, így futtatható számítógépen anélkül, hogy a vizuális c ++ már telepítve lenne. Miután a telepítő befejezte, futtathatja az asztalon vagy a Start menüben. zip way (ellenőrizetlen): Töltse le és futtassa, működnie kell. talán. (A zip archívumnak ugyanaz a mappaszerkezete, amelyet a telepítő hozott létre, források nélkül. Nincs vizuális stúdió nélküli gépem, hogy teszteljem, így előfordulhat, hogy nem működik.)

5. lépés: Használja az Interface programot

Használja az Interface programot
Használja az Interface programot
Használja az Interface programot
Használja az Interface programot

A program használatához először válassza ki az arduino vázlatban meghatározott átviteli sebességet. A nem módosított vázlat alapértelmezés szerint 38400 baud, de megváltoztatható az Ön igényeihez, például lassabb rádiókapcsolathoz. megjegyzés: a 38400 -nál magasabb baud sebességek nem voltak túl stabilak, azt hiszem, ez azért van, mert az uart feltöltődik, mielőtt az adatokat fel lehet dolgozni. Ezután válassza ki a használni kívánt COM portot. a program alapértelmezett értéke COM4, mindenképpen változtassa meg, különben a program összeomlik. Végül kattintson a Megnyitás gombra. Ha minden jól ment, a program megnyitja a kiválasztott soros portot a kiválasztott baud sebességgel. Ha nem, akkor a program valószínűleg összeomlik egy kezeletlen kivétellel. győződjön meg arról, hogy a port megfelelő, és próbálja újra. A szövegdobozok használatával közvetlen parancsokat küldhet az arduino -nak. A "térkép (parancs [1], 32, 126, 2, 180)" a 94 lehetséges parancsot, * szóköz * -ig méretezi át ~, az arduino által az ASCII -ben leolvasható, 2 -től 180 -ig a szervó számára. az ASCII 32 -nél (szóköz) vagy 126 (~) felett bármelyik bájt alapértelmezett értéke 63 (?). minden lépés soros parancsot küld az arduino -nak fokozatosan.

6. lépés: Légy kreatív

Legyen kreatív!
Legyen kreatív!
Legyen kreatív!
Legyen kreatív!

Gondoljon fantasztikus dolgokra, amiket ezzel el lehet készíteni. Néhány ötlet: 1. Távoli fojtószelep egy autóhoz. 2. 3D kamera tartó 3. víz alatti rover Jó szórakozást !!

Ajánlott: