Sisukord:

Robotkäsi, mida juhib Arduino ja arvuti: 10 sammu
Robotkäsi, mida juhib Arduino ja arvuti: 10 sammu

Video: Robotkäsi, mida juhib Arduino ja arvuti: 10 sammu

Video: Robotkäsi, mida juhib Arduino ja arvuti: 10 sammu
Video: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, Juuli
Anonim
Image
Image
Projekti teooria
Projekti teooria

Robootilisi relvi kasutatakse tööstuses laialdaselt. Olgu see kokkupaneku jaoks, keevitust või isegi ühte kasutatakse ISS -i (rahvusvaheline kosmosejaam) dokkimiseks, need aitavad inimestel tööd teha või asendavad inimese täielikult. Minu ehitatud käsi on robotkäe väiksem kujutis, mida peaks kasutama objektide liigutamiseks. Seda juhib arduino pro mini, millel on juba sisseehitatud raamatukogu servode juhtimiseks. Servosid juhib PWM (impulsi laiuse modulatsioon), mida pole keeruline programmeerida, kuid see raamatukogu muudab selle lihtsamaks. Kasutaja saab neid servosid juhtida potentsiomeetritega, mis on ette nähtud pingejagajateks, või arvutiprogrammist, mis kasutab servomootorite juhtimiseks 4 liugurit.

Selle projekti jaoks pidin ma kujundama oma kohandatud trükkplaadi ja valmistama selle, looma käe 3D -mudelid ja kirjutama koodi, mis seda kõike kontrollib. Peale selle kodeerisin pythonis lisaprogrammi, mis saadab signaale arduinole, kes suudab selle signaali dekodeerida ja servod kasutaja määratud asendisse viia.

Samm: projekti taga olev teooria

Projekti teooria
Projekti teooria

Arduino on selles mõttes suurepärane, et pakub tasuta raamatukogu, millega töötada. Selle projekti jaoks kasutasin raamatukogu Servo.h, mis muudab servode juhtimise palju lihtsamaks.

Servomootorit juhib PWM - impulsi laiuse modulatsioon - mis tähendab, et servo juhtimiseks peate tegema lühipinge impulsse. Servo saab selle signaali pikkuse dekodeerida ja antud asendisse pöörata. Ja siin kasutasin juba mainitud raamatukogu. Ma ei pidanud ise signaali pikkust arvutama, vaid kasutasin raamatukogu funktsioone, millele ma lihtsalt edastan parameetri kraadides ja see annab signaali.

Servode juhtimiseks kasutasin potentsiomeetreid, mis toimivad pingejaoturitena. Arduino tahvlitel on mitu analoog-/digitaalmuundurit, mida ma projekti jaoks kasutasin. Põhimõtteliselt jälgib arduino potentsiomeetri keskmise tihvti pinget ja kui see pöörleb ühele küljele, on sellel 0 volti (väärtus = 0) ja teisel küljel 5 volti (väärtus = 1023). Seejärel skaleeritakse see väärtus vahemikus 0–1023 kuni 0–180 ja seejärel edastatakse see juba mainitud funktsioonile.

Teine teema on sarjasuhtlus arduinoga, mida ma lühidalt käsitlen. Põhimõtteliselt saadab arvutisse kirjutatud programm kasutaja valitud väärtuse, arduino saab selle dekodeerida ja servo antud asendisse liigutada

2. etapp: PCB projekteerimine

PCB projekteerimine
PCB projekteerimine
PCB projekteerimine
PCB projekteerimine
PCB projekteerimine
PCB projekteerimine

Kavandasin 2 trükkplaati - üks põhijuhtimiseks, kus on arduino ja tihvtid servodele ning teine on potentsiomeetrid. Kahe trükkplaadi põhjus on see, et tahtsin robotkätt ohutus kauguses juhtida. Mõlemad ahelad on ühendatud antud pikkusega kaabliga - minu puhul 80 cm.

Toiteallikaks valisin välise adapteri, kuna kasutatud servod tarbivad palju rohkem energiat kui arduino suudab pakkuda. Nagu näete, on mõned kondensaatorid, mida ma pole veel maininud. Need on filtreerimiseks kasutatavad kondensaatorid. Nagu nüüd teate, juhitakse servomootorit lühikeste impulssidega. Need impulsid võivad muuta toitepinge languse ja potentsiomeetrid, mille väärtus oli varem vahemikus 0–5 volti, nüüd väiksema vahemikuga. See tähendab, et keskmise tihvti pinge muutub ja arduino saab selle väärtuse ning muudab servomootori asendit. See võib kesta igavesti ja see põhjustab soovimatuid võnkumisi, mille mõned toiteallikaga paralleelsed kondensaatorid võivad kõrvaldada.

Samm: PCB valmistamine

PCB valmistamine
PCB valmistamine
PCB valmistamine
PCB valmistamine
PCB valmistamine
PCB valmistamine

PCB valmistamiseks soovitan teil seda lugeda.

Kasutasin rauda läikiva paberi meetodil ja see õnnestus suurepäraselt.

Siis jootsin osad trükkplaadile. Näete, et kasutasin arduino pesa juhuks, kui mul seda tulevikus vaja läheb.

4. samm: käe kujundamine

Käe projekteerimine
Käe projekteerimine
Käe projekteerimine
Käe projekteerimine
Käe projekteerimine
Käe projekteerimine

See polnud selle projekti tegemisel sugugi kõige raskem.

Kogu seadistus koosneb kaheksast osast, millest 4 ei ole liikuvad osad - potentsiomeetrite kast ja alus, kus asub arduino - ja ülejäänud neli on käsi ise. Ma ei hakka väga detailidesse laskuma, välja arvatud see, et disain on üsna intuitiivne ja mõnes mõttes lihtne. See on loodud nii, et see sobiks minu kohandatud trükkplaadile ja servodele, mille lisan osade loendisse.

Samm: osade printimine

Osade printimine
Osade printimine
Osade printimine
Osade printimine
Osade printimine
Osade printimine

Osad trükiti Prusa printerile. Mõnda nägu tuli veidi lihvida ja auke puurida. Samuti tuli eemaldada tugisambad.

6. samm: pange see kõik kokku

Kõike kokku panema
Kõike kokku panema
Kõike kokku panema
Kõike kokku panema
Kõike kokku panema
Kõike kokku panema
Kõike kokku panema
Kõike kokku panema

Selles etapis, nagu pealkiri ütleb, panin selle kõik kokku.

Alguses jootsin potentsiomeetritele juhtmed ja seejärel need juhtmed trükkplaadile. Potentsiomeetrid sobisid kenasti aukudesse ja liimisin trükkplaadi tuliselt nende sammaste külge, mis olid trükitud karbi põhja. Saate plaadile ja karpi auke puurida, kuid sain teada, et selle liimimine on enam kui piisav. Seejärel sulgesin karbi mõlemad osad ja kinnitasin need 4 kruviga, mis sobivad minu kavandatud aukudesse.

Järgmise sammuna tegin mõlema plaadi ühendamiseks lameda lintkaabli.

Põhikarbis jootsin juhtmed lüliti VCC tihvtilt lülitile ja seejärel plaadi Vcc -le ning plaadi GND -lt pistiku GND -le. Seejärel liimisin kuumalt pistiku kohale ja plaadi sammastele. Pistik sobib auku, nii et kuuma liimi pole vaja.

Seejärel kinnitasin kruvide abil alumise servo karbi põhja.

Pärast seda panin karbi ülemise osa alumisele osale ja samamoodi nagu potentsiomeetri karbiga kinnitasin selle 4 kruviga.

Järgmine osa oli natuke keeruline, kuid suutsin ülejäänud käe erinevate mutrite ja padjanditega kokku panna ning see ei olnud nii tihe, kui ootasin, kuna kujundasin osade vahel teatud tolerantsid, nii et nendega on lihtsam töötada.

Viimase sammuna panin karbi põhja mõne lindi, sest muidu libiseksid need.

Samm: Arduino programmeerimine

Arduino programmeerimine
Arduino programmeerimine
Arduino programmeerimine
Arduino programmeerimine
Arduino programmeerimine
Arduino programmeerimine

Olen juba maininud, kuidas programm teoreetiliselt projekti taga töötab, kuid kavatsen seda veelgi rohkem lõhkuda.

Nii et alguses peame määratlema mõned muutujad. Enamasti kopeeritakse seda 4 korda, kuna meil on 4 servot ja minu arvates ei ole vaja teha keerukamat loogikat lihtsalt selleks, et programm natuke lühemaks muuta.

Järgmisena on tühi seadistus, kus on määratletud servode tihvtid.

Siis on tühjusring - osa programmist, mis lõputult kordub. Selles osas võtab programm potentsiomeetri skaala väärtuse ja sisestab väljundi. Kuid on üks probleem, et potentsiomeetri väärtus hüppab üsna palju, nii et ma pidin lisama filtri, mis moodustab viimase 5 väärtuse keskmise ja seejärel paneb väljundi. See hoiab ära soovimatu õõtsumise.

Programmi viimane osa loeb jadapordist andmeid ja otsustab saadetud andmete põhjal, mida teha.

Koodi täielikuks mõistmiseks soovitan teil külastada arduino ametlikke veebisaite.

Samm: programmeerimine Pythonis

Programmeerimine Pythonis
Programmeerimine Pythonis
Programmeerimine Pythonis
Programmeerimine Pythonis
Programmeerimine Pythonis
Programmeerimine Pythonis

See osa sellest projektist ei ole vajalik, kuid arvan, et see annab sellele projektile rohkem väärtust.

Python pakub palju raamatukogusid, mida saab tasuta kasutada, kuid selles projektis kasutan ainult tkinterit ja seeriat. Tkinterit kasutatakse graafilise kasutajaliidese (GUI) ja graafilise kasutajaliidese jaoks, nagu nimigi ütleb, kasutatakse jadaühenduseks.

See kood loob GUI koos nelja liuguriga, mille minimaalne väärtus on 0 ja maksimaalne 180. Teie jaoks võib olla vihje, et see on kraadides ja iga liugur on programmeeritud ühe servo juhtimiseks. See programm on üsna lihtne - see võtab väärtuse ja saadab selle arduinole. Kuid see, kuidas see saadetakse, on huvitav. Kui otsustate muuta esimese servo väärtuseks 123 kraadi, saadab see arduino väärtusele 1123. Iga saadetud numbri esimene number näitab, millist servot juhitakse. Arduinol on kood, mis suudab seda dekodeerida ja õiget servot liigutada.

9. samm: osade loend

Osade loend
Osade loend
  • Arduino Pro Mini 1 tk
  • Servo FS5106B 1 tk
  • Servo Futaba S3003 2 tk
  • Tihvti päis 2x5 1 tk
  • Tihvti päis 1x3 6 tükki
  • Kondensaator 220uF 3 tk
  • Micro Servo FS90 1 tk
  • Pistik AWP-10 2 tk
  • Pistik FC681492 1 tk
  • Lüliti P-B100G1 1 tk
  • Pistikupesa 2x14 1 tk
  • TTL-232R-5v-muundur 1 tk
  • Potentsiomeeter B200K 4 tk
  • ja palju muud kruvisid, padjaid ja mutreid

10. samm: lõplikud mõtted

Tänan teid selle lugemise eest ja loodan, et olen teid vähemalt motiveerinud. See on minu esimene suurem projekt, mille tegin täiesti ise, ilma internetist asju ja esimest juhendit postitamata. Ma tean, et kätt võiks uuendada, kuid olen sellega praegu rahul. Kõik osad ja lähtekoodid on tasuta, võite seda kasutada ja muuta mis tahes viisil. Kui teil on küsimusi, küsige neid kommentaaride jaotises. Võite vaadata ka videoid, need ei ole väga kvaliteetsed, kuid näitavad projekti funktsionaalsust.

Soovitan: