Tartalomjegyzék:
- Lépés: Amire szüksége lehet…
- 2. lépés: Csatlakoztassa a hardvert
- Lépés: Programozza be az Arduino programot
- 4. lépés: Telepítse a szoftvert
- 5. lépés: Használja az Interface programot
- 6. lépés: Légy kreatív
Videó: Arduino alapú soros szervo vezérlő: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:44
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…
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
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
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
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
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
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:
Szervo vezérlő eltávolítása: 5 lépés (képekkel)
Szervovezérlő eltávolítása: A szervomotorok nagyon szórakoztatóak, ha egy hajtóműves motort és a mikrovezérlőt egyszerűen csatlakoztatni szeretne. Néha azonban szeretne egy szép kis fogaskerekű motort, és nem akarja, hogy a vezérlő áramkörök zavarják a vezetését. Ilyenkor az
SAMD21-alapú alaplapi USB-port hardver-soros portba állítása!: 3 lépés
SAMD21 alapú táblák USB-portjának hardveres soros porttá alakítása !: Manapság szabványos, hogy egy Arduino (vagy bármely más kompatibilis) USB-portot használnak emulált soros portként. Ez nagyon hasznos a hibakereséshez, az adatok küldéséhez és fogadásához a szerethető tábláinkról. Az uChipwhen -en dolgoztam, átmentem az adatlapon
Soros alapú eszköz átalakítása: 6 lépés (képekkel)
Soros alapú eszköz újratervezése: Soros interfész újragenerálásaA Fluke 6500 újragenerálására szántam, mert az eredeti Fluke szoftver nagyon "felhasználóbarát, nem intuitív", vagy ahogy a munkatársam azt mondja: "f*d up". Kezdjük a rejtélyt
Web-alapú SmartMirror a soros kommunikáció használatával: 6 lépés
Web-alapú SmartMirror soros kommunikációt használva: Ez az utasítás minden használatra kész kóddal együtt kerül szállításra. A fejlesztés nagyon bonyolult volt, de miután beállította, nagyon könnyű testreszabni. Nézze meg és élvezze;)
Arduino HVAC szervo termosztát/vezérlő: 5 lépés (képekkel)
Arduino HVAC szervo termosztát/vezérlő: Üdvözöllek a "zöld" utasításomban! Megmutatom, hogyan használhatsz egy Arduino-t, két szervomotort, egy hőmérséklet-érzékelőt és néhány fémet (vagy fát), hogy digitális termosztátot készítsen egy átmenő HVAC egységhez. A CB szerint Richard Ellis (nagy valóságos