Tartalomjegyzék:

Robotkar, amelyet az Arduino és a PC irányít: 10 lépés
Robotkar, amelyet az Arduino és a PC irányít: 10 lépés

Videó: Robotkar, amelyet az Arduino és a PC irányít: 10 lépés

Videó: Robotkar, amelyet az Arduino és a PC irányít: 10 lépés
Videó: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, November
Anonim
Image
Image
Elmélet a projekt mögött
Elmélet a projekt mögött

A robotkarokat széles körben használják az iparban. Legyen szó összeszerelési műveletekről, hegesztést vagy akár egyet használnak az ISS (Nemzetközi Űrállomás) dokkolásához, segítik az embereket a munkában, vagy teljesen helyettesítik az embert. Az általam épített kar a robotkar kisebb ábrázolása, amelyet állítólag tárgyak mozgatására használnak. Az arduino pro mini vezérli, amely már rendelkezik beépített könyvtárral a szervók vezérléséhez. A szervókat a PWM (Pulse Width Modulation) vezérli, amelyet nem nehéz programozni, de ez a könyvtár megkönnyíti. A felhasználó vezérelheti ezeket a szervókat potenciométerekkel, amelyek feszültségosztóként szolgálnak, vagy PC -ről, amely 4 csúszkát használ a szervomotorok vezérlésére.

Ehhez a projekthez meg kellett terveznem az egyéni PCB -m, és elkészítenem, 3D kar- és karmodelleket kellett létrehoznom, ami mindent irányít. Ráadásul további programot kódoltam a pythonban, amely jeleket küld az arduino -nak, amely képes dekódolni ezt a jelet, és a szervókat a felhasználó által beállított pozícióba mozgatni.

1. lépés: Elmélet a projekt mögött

Elmélet a projekt mögött
Elmélet a projekt mögött

Az Arduino nagyszerű abban az értelemben, hogy ingyenes könyvtárat kínál a munkához. Ehhez a projekthez a Servo.h könyvtárat használtam, amely sokkal egyszerűbbé teszi a szervók vezérlését.

A szervomotort a PWM -impulzusszélesség -moduláció vezérli, ami azt jelenti, hogy a szervó vezérléséhez rövid feszültségű impulzusokat kell készíteni. A szervó képes dekódolni a jel hosszát, és el tudja forgatni az adott pozícióba. És itt használtam a már említett könyvtárat. Nem kellett egyedül kiszámítanom a jel hosszát, hanem a könyvtár funkcióit használtam, amelyeknek csak paramétereket adok át fokban, és jelez.

A szervók vezérléséhez potenciométereket használtam, amelyek feszültségosztóként működnek. Az Arduino táblák számos analóg/digitális átalakítóval rendelkeznek, amelyeket a projekthez használtam. Az arduino alapvetően a potenciométer középső csapjának feszültségét figyeli, és ha az egyik oldalra forog, akkor a feszültség 0 volt (érték = 0), a másik oldalon pedig 5 volt (érték = 1023). Ezt az értéket ezután 0-1023 tartományból 0-180 -ig skálázza, majd átadja a már említett függvénynek.

Egy másik téma az arduino -val folytatott soros kommunikáció, amelyről csak röviden szólok. Alapvetően a PC -re írt program elküldi a felhasználó által választott értéket, az arduino képes dekódolni és a szervót az adott pozícióba helyezni

2. lépés: NYÁK tervezése

NYÁK tervezése
NYÁK tervezése
NYÁK tervezése
NYÁK tervezése
NYÁK tervezése
NYÁK tervezése

2 PCB -t terveztem - egyet a fő vezérléshez, ahol az arduino és a szervók csapjai vannak, a második pedig a potenciométereket. 2 PCB oka az, hogy biztonságos távolságból akartam irányítani a robotkart. Mindkét áramkört meghatározott hosszúságú - esetemben 80 cm - kábellel kötik össze.

Áramforrásként külső adaptert választottam, mert az általam használt szervók sokkal több energiát fogyasztanak, mint amennyit az arduino képes biztosítani. Mint látható, vannak olyan kondenzátorok, amelyeket még nem említettem. Ezek a szűréshez használt kondenzátorok. Mint most már tudja, a szervomotort rövid impulzusok vezérlik. Ezek az impulzusok csökkenthetik a tápfeszültség csökkenését és a potenciométereket, amelyek korábban 0-5 volt tartományban voltak. Ez azt jelenti, hogy a középső csap feszültsége megváltozik, és az arduino megkapja ezt az értéket, és megváltoztatja a szervomotor helyzetét. Ez örökké tarthat, és nem kívánt rezgést okoz, amelyet néhány kondenzátor kiküszöbölhet az áramellátással párhuzamosan.

3. lépés: NYÁK készítése

NYÁK készítése
NYÁK készítése
NYÁK készítése
NYÁK készítése
NYÁK készítése
NYÁK készítése

A PCB készítéséhez javaslom, hogy olvassa el ezt.

Iron on Glossy Paper módszert használtam, és nagyon jól sikerült.

Aztán forrasztottam alkatrészeket a NYÁK -ra. Láthatja, hogy arduino aljzatot használtam arra az esetre, ha szükségem lesz rá a jövőben.

4. lépés: A kar tervezése

A kar tervezése
A kar tervezése
A kar tervezése
A kar tervezése
A kar tervezése
A kar tervezése

Ez egyáltalán nem volt a legnehezebb része ennek a projektnek.

A teljes beállítás 8 részből áll, ahol 4 nem mozgó alkatrész - a potenciométerek doboza és az alap, ahol az arduino található -, a többi négy pedig maga a kar. Nem részletezem sok részletet, kivéve, hogy a tervezés meglehetősen intuitív és valamilyen módon egyszerű. Úgy tervezték, hogy illeszkedjen az én egyedi NYÁK -omhoz és szervóimhoz, amelyeket felveszek az alkatrészek listájára.

5. lépés: Az alkatrészek nyomtatása

Az alkatrészek nyomtatása
Az alkatrészek nyomtatása
Az alkatrészek nyomtatása
Az alkatrészek nyomtatása
Az alkatrészek nyomtatása
Az alkatrészek nyomtatása

Az alkatrészeket Prusa nyomtatóval nyomtattuk. Néhány arcot kissé meg kell őrölni, és lyukakat kell fúrni. A tartóoszlopokat is el kellett távolítani.

6. lépés: Összerakás

Összerakni
Összerakni
Összerakni
Összerakni
Összerakni
Összerakni
Összerakni
Összerakni

Ebben a lépésben, ahogy a cím mondja, összeszedtem az egészet.

Először a potenciométereken forrasztottam vezetékeket, majd azokat a PCB -n. A potenciométerek szépen illeszkednek a lyukakhoz, és melegen ragasztottam a NYÁK -t a doboz aljára nyomtatott oszlopokra. Fúrhat lyukakat a táblába és a dobozba, de rájöttem, hogy a ragasztás több mint elég. Ezután bezártam a doboz mindkét részét, és rögzítettem a helyükön 4 csavarral, amelyek illeszkednek az általam tervezett lyukakba.

Következő lépésként lapos szalagkábelt készítettem mindkét tábla összekapcsolására.

A fődobozban a vezetékeket forrasztottam a csatlakozó VCC csapjától a kapcsolóig, majd az alaplap Vcc -jéig és az alaplap GND -jétől a csatlakozó GND -ig. Ezután a ragasztót a helyére ragasztottam és az oszlopokra támasztottam. A csatlakozó a lyukba illeszkedik, így nincs szükség forró ragasztóra.

Ezután csavarokkal rögzítettem az alsó szervót a doboz aljára.

Ezt követően a doboz felső részét az alsó részre tettem, és ugyanúgy, mint a potenciométer doboznál, 4 csavarral rögzítettem.

A következő rész kissé trükkös volt, de a kar többi részét különféle anyákkal és betétekkel sikerült összeraknom, és nem volt olyan szoros, mint vártam, mert bizonyos tűréseket terveztem az alkatrészek között, így könnyebb velük dolgozni.

És utolsó lépésként ragasztószalagot tettem a dobozok aljára, mert különben elcsúsznak.

7. lépés: Az Arduino programozása

Arduino programozása
Arduino programozása
Arduino programozása
Arduino programozása
Arduino programozása
Arduino programozása

Már említettem, hogy a program elméletileg hogyan működik a projekt mögött, de még jobban fel fogom bontani.

Tehát az elején meg kell határoznunk néhány változót. Többnyire 4 -szer másolódik, mert 4 szervónk van, és véleményem szerint felesleges bonyolultabb logikát készíteni, csak azért, hogy egy kicsit lerövidítsük a programot.

Ezután van üres beállítás, ahol a szervók csapjai vannak definiálva.

Aztán van egy void loop - a program része, amely végtelen ciklusokat végez. Ebben a részben a program a potenciométer skáláiból veszi az értéket, és beírja a kimenetet. De van egy probléma, hogy a potenciométerből származó érték meglehetősen megugrik, ezért hozzá kellett adnom egy szűrőt, amely az utolsó 5 érték átlagát teszi ki, és ezután kiadja a kimenetet. Ez megakadályozza a nem kívánt billegést.

A program utolsó része adatokat olvas a soros portról, és a küldött adatok alapján eldönti, hogy mit kell tennie.

A kód teljes megértése érdekében javaslom, hogy látogasson el a hivatalos arduino webhelyekre.

8. lépés: Programozás Pythonban

Programozás Pythonban
Programozás Pythonban
Programozás Pythonban
Programozás Pythonban
Programozás Pythonban
Programozás Pythonban

A projektnek ez a része nem szükséges, de úgy gondolom, hogy csak nagyobb értéket ad ennek a projektnek.

A Python rengeteg szabadon használható könyvtárat kínál, de ebben a projektben csak tkintert és sorozatot használok. A Tkinter a GUI (Graphical User Interface) és a soros, mint a neve mondja, a soros kommunikációhoz használatos.

Ez a kód GUI -t hoz létre 4 csúszkával, amelyek minimális értéke 0 és maximum 180. Lehet, hogy tipp, hogy fokokban van megadva, és minden csúszka egy szervó vezérlésére van programozva. Ez a program meglehetősen egyszerű - veszi az értéket és elküldi az arduino -nak. De a küldési módja érdekes. Ha úgy dönt, hogy az első szervo értékét 123 fokra módosítja, akkor az arduino 1123 értékre küldi. Minden elküldött szám első száma jelzi, hogy melyik szervót kell vezérelni. Az Arduino rendelkezik olyan kóddal, amely képes ezt dekódolni és a megfelelő szervót mozgatni.

9. lépés: Az alkatrészek listája

Alkatrészek listája
Alkatrészek listája
  • Arduino Pro Mini 1 db
  • Szervo FS5106B 1 db
  • Servo Futaba S3003 2 db
  • Tűfejfej 2x5 1 db
  • Csapfej 1x3 6 db
  • Kondenzátor 220uF 3 db
  • Micro Servo FS90 1 db
  • Csatlakozó AWP-10 2 db
  • Csatlakozó FC681492 1 db
  • Kapcsoló P-B100G1 1 db
  • Aljzat 2x14 1 db
  • TTL-232R-5v-átalakító 1 db
  • B200K potenciométer 4 db
  • és még sok más csavar, betét és anya

10. lépés: Utolsó gondolatok

Köszönöm, hogy elolvastad, és remélem, hogy legalább motiváltam. Ez az első nagyobb projektem, amelyet egyedül készítettem, anélkül, hogy lemásoltam volna az internetről származó anyagokat és az első utasításokat. Tudom, hogy a kar fejleszthető lenne, de egyelőre elégedett vagyok vele. Minden alkatrész és forráskód ingyenes, bármikor használhatja és módosíthatja. Ha bármilyen kérdése van, bátran tegye fel őket a megjegyzések részben. Megnézheti a videókat is, nem túl jó minőségűek, de a projekt funkcionalitását mutatják.

Ajánlott: