Përmbajtje:

Krah Robotik i kontrolluar nga Arduino dhe PC: 10 hapa
Krah Robotik i kontrolluar nga Arduino dhe PC: 10 hapa

Video: Krah Robotik i kontrolluar nga Arduino dhe PC: 10 hapa

Video: Krah Robotik i kontrolluar nga Arduino dhe PC: 10 hapa
Video: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, Korrik
Anonim
Image
Image
Teoria Prapa Projektit
Teoria Prapa Projektit

Krahët robotikë përdoren gjerësisht në industri. Nëse është për operacionet e montimit, saldimi ose edhe një përdoret për t'u ankoruar në ISS (Stacioni Hapësinor Ndërkombëtar), ata ndihmojnë njerëzit në punë ose zëvendësojnë plotësisht njeriun. Krahu që kam ndërtuar është një përfaqësim më i vogël i krahut robotik që supozohet të përdoret për lëvizjen e objekteve. Ajo kontrollohet nga arduino pro mini e cila tashmë ka një bibliotekë të integruar për kontrollin e servos. Shërbimet kontrollohen nga PWM (Modulimi i Gjerësisë së Pulsit) i cili nuk është i vështirë të programohet, por kjo bibliotekë e bën më të lehtë. Përdoruesi mund të kontrollojë ato servos me potenciometra që janë krijuar për të vepruar si ndarës të tensionit ose nga programi në PC që përdor 4 rrëshqitës për kontrollimin e motorëve servo.

Për këtë projekt më duhej të hartoja PCB -në time të personalizuar dhe ta bëja atë, të krijoja modele 3D të krahut dhe të shkruaja kod që kontrollon të gjitha. Në krye të tij kam koduar program shtesë në python që dërgon sinjale në arduino i cili arrin të deshifrojë atë sinjal dhe të lëvizë servos në pozicionin që përdoruesi ka vendosur.

Hapi 1: Teoria pas projektit

Teoria Prapa Projektit
Teoria Prapa Projektit

Arduino është i shkëlqyeshëm në atë mënyrë që ofron bibliotekë falas për të punuar. Për këtë projekt kam përdorur bibliotekën Servo.h që e bën kontrollin e servos shumë më të lehtë.

Servo motori kontrollohet nga PWM -Pulse Width Modulation- që do të thotë se për të kontrolluar servo ju duhet të bëni impulse të tensionit të shkurtër. Servo mund të deshifrojë gjatësinë e këtij sinjali dhe të rrotullohet në pozicionin e dhënë. Dhe këtu kam përdorur bibliotekën e përmendur tashmë. Nuk më është dashur të llogaris gjatësinë e sinjalit vetë, por kam përdorur funksionet e bibliotekës, të cilave thjesht ua kaloj parametrin në shkallë dhe ai bën sinjal.

Për kontrollimin e servove kam përdorur potenciometra që veprojnë si ndarës të tensionit. Bordet Arduino kanë disa konvertues analog/dixhital që kam përdorur për projektin. Në thelb arduino po monitoron tensionin në kunjin e mesëm në potenciometër dhe nëse rrotullohet në njërën anë tensioni në të është 0 Volt (vlera = 0) dhe në anën tjetër është 5 Volt (vlera = 1023). Kjo vlerë më pas shkallëzohet nga diapazoni 0 - 1023 në 0 - 180 dhe pastaj kalohet në funksionin e përmendur tashmë.

Një temë tjetër është komunikimi serik me arduino që do ta mbuloj shkurtimisht. Në thelb programi i shkruar në PC dërgon vlerën e zgjedhur nga përdoruesi, arduino mund ta deshifrojë atë dhe të lëvizë servo në pozicionin e caktuar

Hapi 2: Projektimi i PCB

Projektimi i PCB
Projektimi i PCB
Projektimi i PCB
Projektimi i PCB
Projektimi i PCB
Projektimi i PCB

Kam krijuar 2 PCB - një për kontrollin kryesor ku është arduino dhe kunjat për servos dhe në të dytën janë potenciometra. Arsyeja për 2 PCB është se doja të kontrolloja krahun robotik nga distanca e sigurt. Të dy qarqet janë të lidhur me kabllo me gjatësi të caktuar - në rastin tim 80 cm.

Për burimin e energjisë zgjodha përshtatësin e jashtëm sepse servot që kam përdorur konsumojnë shumë më tepër energji sesa arduino mund të furnizojë. Siç mund ta shihni ka disa kondensatorë që nuk i kam përmendur akoma. Ata janë kondensatorë të përdorur për filtrim. Siç e dini tani, motori servo kontrollohet nga impulse të shkurtra. Ato impulse mund të bëjnë që rënia e tensionit të furnizimit dhe potenciometrat që më parë kishin diapazonin 0-5 volt tani të kenë një gamë më të vogël. Kjo do të thotë që tensioni në kunjin e mesëm ndryshon dhe arduino merr këtë vlerë dhe ndryshon pozicionin në të cilin është servo motori. Kjo mund të vazhdojë përgjithmonë dhe shkakton lëkundje të padëshirueshme që mund të eliminohen nga disa kondensatorë paralel me furnizimin.

Hapi 3: Bërja e PCB

Bërja e PCB
Bërja e PCB
Bërja e PCB
Bërja e PCB
Bërja e PCB
Bërja e PCB

Për të bërë PCB ju sugjeroj ta lexoni këtë.

Kam përdorur metodën Iron në letër me shkëlqim dhe ka funksionuar shkëlqyeshëm.

Pastaj bashkova pjesë në PCB. Ju mund të shihni që kam përdorur prizë arduino në rast se do të më duhet në të ardhmen.

Hapi 4: Dizajnimi i Krahut

Projektimi i krahut
Projektimi i krahut
Projektimi i krahut
Projektimi i krahut
Projektimi i krahut
Projektimi i krahut

Kjo nuk ishte aspak pjesa më e vështirë e bërjes së këtij projekti.

E gjithë konfigurimi është bërë nga 8 pjesë ku 4 nuk janë pjesë lëvizëse - kuti për potenciometra dhe bazë ku ndodhet arduino - dhe katër të tjerat janë vetë krahu. Unë nuk do të hyj në shumë detaje, përveç se dizajni është mjaft intuitiv dhe në një farë mënyre i thjeshtë. Shtë projektuar për t'iu përshtatur PCB dhe servos të mi të personalizuar të cilat do t'i përfshij në listën e pjesëve.

Hapi 5: Shtypja e Pjesëve

Shtypja e Pjesëve
Shtypja e Pjesëve
Shtypja e Pjesëve
Shtypja e Pjesëve
Shtypja e Pjesëve
Shtypja e Pjesëve

Pjesët u shtypën në printer Prusa. Disa fytyra duhej të bluheshin pak dhe vrima të shpoheshin. Gjithashtu shtyllat mbështetëse duheshin hequr.

Hapi 6: Vendosja e të gjitha së bashku

Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku

Në këtë hap siç thotë titulli, i bashkova të gjitha.

Në fillim bashkova telat në potenciometra dhe pastaj ato tela në PCB. Potenciometrat i përshtaten bukur vrimave dhe unë e ngjita PCB -në në shtyllat që ishin shtypur në fund të kutisë. Ju mund të shponi vrima në tabelë dhe në kuti, por zbulova se ngjitja e tij është më se e mjaftueshme. Pastaj i mbylla të dy pjesët e kutisë dhe i sigurova në pozicion me 4 vida që përshtaten në vrimat që kam projektuar.

Si hap tjetër, bëra kabllo të sheshtë me shirita për të lidhur të dy bordet.

Në kutinë kryesore bashkova telat nga kunja VCC e lidhësit për të kaluar dhe pastaj në Vcc të bordit dhe nga GND e bordit në GND të lidhësit. Pastaj e ngjita nxehtësisht lidhësin në vend dhe bordin në shtylla. Lidhësi përshtatet drejtpërdrejt në vrimë, kështu që nuk nevojitet zam i nxehtë.

Pastaj, duke përdorur vida, bashkova servonin e poshtëm në fund të kutisë.

Pas kësaj vendos pjesën e sipërme të kutisë në pjesën e poshtme dhe njësoj si me kutinë e potenciometrit e sigurova me 4 vida.

Pjesa tjetër ishte pak e ndërlikuar, por unë arrita të vendos pjesën tjetër të krahut së bashku me arra dhe jastëkë të ndryshëm dhe nuk ishte aq e ngushtë sa e prisja, sepse projektova disa toleranca midis pjesëve, kështu që është më e lehtë të punosh me to.

Dhe si hapi i fundit vendosa një kasetë në fund të kutive sepse përndryshe ato do të rrëshqisnin.

Hapi 7: Programimi i Arduino

Programimi i Arduino
Programimi i Arduino
Programimi i Arduino
Programimi i Arduino
Programimi i Arduino
Programimi i Arduino

Unë kam përmendur tashmë se si funksionon programi në teori pas projektit, por do ta shpërbëj edhe më shumë.

Pra, në fillim duhet të përcaktojmë disa ndryshore. Kryesisht kopjohet 4 herë sepse kemi 4 servos dhe për mendimin tim është e panevojshme të bëjmë logjikë më të komplikuar vetëm për ta bërë programin pak më të shkurtër.

Tjetra ka konfigurim të pavlefshëm ku përcaktohen kunjat e servos.

Pastaj ka lak të zbrazët - pjesë e programit që lakon pafundësisht. Në këtë pjesë programi merr vlerën nga shkallët e potenciometrit dhe vë në dalje. Por ekziston një problem që vlera nga potenciometri kërcen shumë, kështu që më duhej të shtoja filtrin që bën mesataren e 5 vlerave të fundit dhe pastaj vendos në dalje. Kjo parandalon lëkundjet e padëshiruara.

Pjesa e fundit e programit lexon të dhënat nga porti serik dhe vendos se çfarë të bëjë bazuar në të dhënat e dërguara.

Për të kuptuar plotësisht kodin, ju sugjeroj të vizitoni faqet zyrtare të arduino.

Hapi 8: Programimi në Python

Programimi në Python
Programimi në Python
Programimi në Python
Programimi në Python
Programimi në Python
Programimi në Python

Kjo pjesë e këtij projekti nuk është e nevojshme, por mendoj se i jep më shumë vlerë këtij projekti.

Python ofron mijëra biblioteka që janë falas për t’u përdorur, por në këtë projekt unë përdor vetëm tkinter dhe serial. Tkinter përdoret për GUI (Ndërfaqja grafike e përdoruesit) dhe seriali siç thotë emri i tij përdoret për komunikim serik.

Ky kod krijon GUI me 4 rrëshqitës që kanë vlerën minimale 0 dhe maksimumin 180. Mund të jetë një aluzion për ju që është në gradë dhe secili rrëshqitës është programuar të kontrollojë një servo. Ky program është mjaft i thjeshtë - merr vlerën dhe e dërgon atë në arduino. Por mënyra se si dërgon është interesante. Nëse zgjidhni të ndryshoni vlerën e servo -s së parë në 123 gradë, ajo dërgon në vlerën arduino 1123. Numri i parë i secilit numër të dërguar tregon se cili servo është gati të kontrollohet. Arduino ka kod që mund ta deshifrojë këtë dhe të lëvizë servo -në e duhur.

Hapi 9: Lista e Pjesëve

Lista e Pjesëve
Lista e Pjesëve
  • Arduino Pro Mini 1 copë
  • Servo FS5106B 1 copë
  • Servo Futaba S3003 2 copë
  • Koka e kokës 2x5 1 copë
  • Koka e kokës 1x3 6 copë
  • Kondensator 220uF 3 copë
  • Mikro Servo FS90 1 copë
  • Lidhës AWP-10 2 copë
  • Lidhës FC681492 1 copë
  • Ndërprerës P-B100G1 1 copë
  • Fole 2x14 1 copë
  • TTL-232R-5v-konvertues 1 copë
  • Potenciometër B200K 4 copë
  • dhe shumë më tepër vida, jastëkë dhe arra

Hapi 10: Mendimet përfundimtare

Faleminderit që e lexuat këtë dhe shpresoj që të paktën ju kam motivuar. Ky është projekti im i parë më i madh të cilin e kam bërë vetë, pa kopjuar sende nga interneti dhe postimi i parë udhëzues. Unë e di që krahu mund të përmirësohet, por jam i kënaqur me të tani për tani. Të gjitha pjesët dhe kodet burimore janë falas, jeni të mirëpritur ta përdorni dhe ta ndryshoni në çfarëdo mënyre që dëshironi. Nëse keni ndonjë pyetje, mos ngurroni t'i pyesni në pjesën e komenteve. Ju gjithashtu mund t'i shikoni videot, ato nuk janë në cilësi të shkëlqyeshme, por ato tregojnë funksionalitetin e projektit.

Recommended: