Sisällysluettelo:
- Vaihe 1: Teoria projektin takana
- Vaihe 2: Piirilevyn suunnittelu
- Vaihe 3: Piirilevyn valmistus
- Vaihe 4: Varren suunnittelu
- Vaihe 5: Osien tulostaminen
- Vaihe 6: Yhdistä kaikki
- Vaihe 7: Arduinon ohjelmointi
- Vaihe 8: Ohjelmointi Pythonissa
- Vaihe 9: Osaluettelo
- Vaihe 10: Viimeiset ajatukset
Video: Arduinon ja PC: n ohjaama robotti käsivarsi: 10 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Robottiaseita käytetään laajalti teollisuudessa. Onko kyse kokoonpanotoimista, hitsausta tai jopa yhtä käytetään ISS: n (International Space Station) telakointiin, ne auttavat ihmisiä työssä tai korvaavat ihmisen kokonaan. Rakentamani käsivarsi on pienempi esitys robottivarresta, jota on tarkoitus käyttää liikkuviin esineisiin. Sitä ohjaa arduino pro mini, jossa on jo sisäänrakennettu kirjasto servojen ohjaamiseen. Servoja ohjaa PWM (Pulse Width Modulation), jota ei ole vaikea ohjelmoida, mutta tämä kirjasto helpottaa sitä. Käyttäjä voi ohjata näitä servoja potentiometreillä, jotka on suunniteltu toimimaan jännitteenjakajina, tai PC -ohjelmasta, joka käyttää 4 liukusäädintä servomoottoreiden ohjaamiseen.
Tätä projektia varten minun piti suunnitella oma piirilevy ja tehdä se, luoda käsivarsien 3D -malleja ja kirjoittaa koodi, joka ohjaa kaikkea. Sen päälle koodasin pythoniin lisäohjelman, joka lähettää signaaleja arduinoon, joka onnistuu purkamaan signaalin ja siirtämään servot käyttäjän asettamaan paikkaan.
Vaihe 1: Teoria projektin takana
Arduino on loistava siinä mielessä, että se tarjoaa ilmaisen kirjaston työskennellä. Tässä projektissa käytin kirjastoa Servo.h, joka helpottaa servojen hallintaa.
Servomoottoria ohjaa PWM -pulssileveysmodulaatio - mikä tarkoittaa, että servon ohjaamiseksi sinun on tehtävä lyhytjännitepulsseja. Servo voi purkaa tämän signaalin pituuden ja kääntyä tiettyyn asentoon. Ja tässä käytin jo mainittua kirjastoa. Minun ei tarvinnut laskea signaalin pituutta itse, mutta käytin kirjaston toimintoja, joille välitän parametrin asteina ja se antaa signaalin.
Servojen ohjaamiseen käytin potentiometrejä, jotka toimivat jännitteenjakajina. Arduino -levyissä on useita analogisia/digitaalisia muuntimia, joita käytin projektissa. Pohjimmiltaan arduino valvoo jännitettä potentiometrin keskitapissa ja jos se pyörii toiselle puolelle, jännite on 0 volttia (arvo = 0) ja toisella puolella 5 volttia (arvo = 1023). Tämä arvo skaalataan sitten välillä 0 - 1023 - 0 - 180 ja siirretään sitten jo mainittuun toimintoon.
Toinen aihe on sarjaviestintä arduinon kanssa, jonka käsittelen vain lyhyesti. Pohjimmiltaan tietokoneelle kirjoitettu ohjelma lähettää käyttäjän valitseman arvon, arduino voi purkaa sen ja siirtää servon tiettyyn paikkaan
Vaihe 2: Piirilevyn suunnittelu
Suunnittelin 2 PCB: tä - yhden pääohjaukseen, jossa on arduino ja nastat servoja varten, ja toinen on potentiometrit. Kahden PCB: n syy on se, että halusin ohjata robottivartta turvalliselta etäisyydeltä. Molemmat piirit on kytketty tietyn pituisella kaapelilla - minun tapauksessani 80 cm.
Valitsin virtalähteeksi ulkoisen sovittimen, koska käyttämäni servot kuluttavat paljon enemmän virtaa kuin arduino voi tarjota. Kuten näette, on joitain kondensaattoreita, joita en ole vielä maininnut. Ne ovat suodatukseen käytettäviä kondensaattoreita. Kuten tiedät nyt, servomoottoria ohjataan lyhyillä impulsseilla. Nämä impulssit voivat saada aikaan sen, että syöttöjännitehäviöt ja potentiometrit, jotka olivat aiemmin 0-5 voltin alueella, ovat nyt pienempiä. Tämä tarkoittaa, että keskitapin jännite muuttuu ja arduino saa tämän arvon ja muuttaa servomoottorin asennon. Tämä voi jatkua ikuisesti ja aiheuttaa ei -toivottuja värähtelyjä, jotka voidaan poistaa joidenkin kondensaattoreiden kanssa rinnakkain.
Vaihe 3: Piirilevyn valmistus
PCB: n valmistamiseksi suosittelen lukemaan tämän.
Käytin Iron on Glossy Paper -menetelmää ja se toimi hienosti.
Sitten juotin osat piirilevylle. Näet, että käytin arduino -liitäntää siltä varalta, että tarvitsen sitä tulevaisuudessa.
Vaihe 4: Varren suunnittelu
Tämä ei suinkaan ollut hankkeen toteuttamisen vaikein osa.
Koko kokoonpano koostuu 8 osasta, joista 4 eivät ole liikkuvia osia - potentiometrien laatikko ja pohja, jossa arduino sijaitsee - ja muut neljä ovat varsi itse. En mene paljon yksityiskohtiin, paitsi että muotoilu on melko intuitiivista ja jollain tavalla yksinkertaista. Se on suunniteltu sopimaan mukautettuun piirilevyyn ja servoihin, jotka sisällytän osaluetteloon.
Vaihe 5: Osien tulostaminen
Osat painettiin Prusa -tulostimella. Jotkut kasvot piti hiota hiukan ja porata reikiä. Myös tukipilarit oli poistettava.
Vaihe 6: Yhdistä kaikki
Tässä vaiheessa, kuten otsikko sanoo, laitoin kaiken yhteen.
Aluksi juotin johdot potentiometreihin ja sitten nuo johdot piirilevyyn. Potentiometrit sopivat hienosti reikiin ja liimasin piirilevyn kuumana pilareihin, jotka oli painettu laatikon pohjaan. Voit porata reikiä levyyn ja laatikkoon, mutta huomasin, että liimaaminen on enemmän kuin tarpeeksi. Sitten suljin laatikon molemmat osat ja kiinnitin ne paikoilleen neljällä ruuvilla, jotka sopivat suunnitelluihin reikiin.
Seuraavana vaiheena tein litteän nauhakaapelin molempien levyjen liittämiseksi.
Päälaatikossa juotin johdot liittimen VCC -nastasta kytkimeen ja sitten levyn Vcc: hen ja levyn GND: stä liittimen GND: hen. Sitten liimasin liittimen paikalleen ja lautasen pilareihin. Liitin sopii suoraan reikään, joten kuumaa liimaa ei tarvita.
Sitten kiinnitin ruuvien avulla alemman servon laatikon pohjaan.
Tämän jälkeen laitoin laatikon yläosan alaosaan ja kiinnitin sen 4 ruuvilla samalla tavalla kuin potentiometrikotelon kanssa.
Seuraava osa oli hieman hankala, mutta onnistuin laittamaan loput käsivarteen erilaisten muttereiden ja tyynyjen kanssa, eikä se ollut niin tiukka kuin odotin, koska suunnittelin osien välisiä toleransseja, joten niiden kanssa on helpompi työskennellä.
Ja viimeisenä vaiheena laitoin teippiä laatikoiden pohjalle, koska muuten ne liukuvat.
Vaihe 7: Arduinon ohjelmointi
Olen jo maininnut, miten ohjelma toimii teoriassa projektin takana, mutta aion rikkoa sen vielä enemmän.
Joten alussa meidän on määriteltävä muutamia muuttujia. Useimmiten se kopioidaan 4 kertaa, koska meillä on 4 servoa, ja mielestäni on tarpeetonta tehdä monimutkaisempaa logiikkaa vain ohjelman lyhentämiseksi.
Seuraavaksi on tyhjä asennus, jossa servojen nastat on määritelty.
Sitten on tyhjä silmukka - osa ohjelmaa, joka kiertää loputtomasti. Tässä osassa ohjelma ottaa arvon potentiometristä ja skaalaa sen. Mutta on yksi ongelma, että potentiometrin arvo hyppää melko vähän, joten minun piti lisätä suodatin, joka tekee viimeisten viiden arvon keskiarvon, ja sitten se antaa tuloksen. Tämä estää ei -toivotun heilumisen.
Ohjelman viimeinen osa lukee tiedot sarjaportista ja päättää lähetettyjen tietojen perusteella, mitä tehdä.
Koodin ymmärtämiseksi täysin suosittelen vierailemaan virallisilla arduino -verkkosivustoilla.
Vaihe 8: Ohjelmointi Pythonissa
Tämä osa tätä hanketta ei ole välttämätön, mutta mielestäni se antaa vain lisäarvoa tälle projektille.
Python tarjoaa paljon kirjastoja, jotka ovat vapaasti käytettävissä, mutta tässä projektissa käytän vain tkinter- ja sarjaversioita. Tkinteriä käytetään graafisessa käyttöliittymässä (GUI) ja sarjassa, kuten sen nimi sanoo, käytetään sarjaliikenteessä.
Tämä koodi luo graafisen käyttöliittymän, jossa on neljä liukusäädintä, joiden vähimmäisarvo on 0 ja enintään 180. Saattaa olla vihje sinulle, että se on asteina ja jokainen liukusäädin on ohjelmoitu ohjaamaan yhtä servoa. Tämä ohjelma on melko yksinkertainen - se ottaa arvon ja lähettää sen arduinoon. Mutta tapa lähettää se on mielenkiintoinen. Jos päätät muuttaa ensimmäisen servon arvon 123 asteeseen, se lähettää arduino -arvon 1123. Jokaisen lähetetyn numeron ensimmäinen numero kertoo, mitä servoa aiotaan ohjata. Arduinolla on koodi, joka voi purkaa tämän ja siirtää oikean servon.
Vaihe 9: Osaluettelo
- Arduino Pro Mini 1 kpl
- Servo FS5106B 1 kpl
- Servo Futaba S3003 2 kpl
- Nastatanko 2x5 1 kpl
- Tappiotsikko 1x3 6 kpl
- Kondensaattori 220uF 3 kpl
- Micro Servo FS90 1 kpl
- Liitin AWP-10 2 kpl
- Liitin FC681492 1 kpl
- Kytkin P-B100G1 1 kpl
- Pistorasia 2x14 1 kpl
- TTL-232R-5v-muunnin 1 kpl
- Potentiometri B200K 4 kpl
- ja monia muita ruuveja, tyynyjä ja muttereita
Vaihe 10: Viimeiset ajatukset
Kiitos, että luit tämän ja toivon, että olen ainakin motivoinut sinua. Tämä on ensimmäinen isompi projektini, jonka tein kokonaan itse kopioimatta tavaroita Internetistä ja ensimmäisestä ohjeesta. Tiedän, että käsivartta voitaisiin päivittää, mutta olen toistaiseksi tyytyväinen siihen. Kaikki osat ja lähdekoodit ovat ilmaisia, voit käyttää sitä ja muuttaa sitä haluamallasi tavalla. Jos sinulla on kysyttävää, voit kysyä ne kommenttikentässä. Voit myös katsoa videoita, ne eivät ole hyvälaatuisia, mutta ne osoittavat projektin toiminnallisuuden.
Suositeltava:
Älypuhelimen ohjaama robotti, joka käyttää BLE 4.0: ta !!!: 5 vaihetta
Älypuhelimen ohjaama robotti, joka käyttää BLE 4.0: ta !!!: Edellisessä ohjeessa jaoin kanssasi, kuinka voit käyttää Bluetooth -moduulia (erityisesti HM10 BLE v4.0) Arduinon kanssa LEDien ohjaamiseen älypuhelimella. Voit tarkistaa sen täältä. Tässä ohjeessa näytän sinulle, kuinka rakentaa robotti, joka voi olla
Yksinkertainen robotti käsivarsi, jota hallitaan todellisella kädenliikkeellä: 7 vaihetta (kuvilla)
Yksinkertainen robotti käsivarsi, jota hallitaan todellisella kädenliikkeellä: Tämä on hyvin yksinkertainen DOF -robotti käsivarsi aloittelijoille. Käsi on Arduinon ohjaama. Se on kytketty anturiin, joka on kiinnitetty käyttäjän käteen. Siksi kuljettaja voi hallita käsivarren kyynärpäätä taivuttamalla omaa kyynärliikkeensä
Kuinka tehdä robotti käsivarsi kotona: 8 vaihetta
Kuinka tehdä robottivarsi kotona: Tässä ohjeessa olen näyttänyt sinulle, kuinka olen tehnyt tämän robotti -käsivarren ja kuinka olen hallinnut tätä kättä älypuhelimella
Selaimen ohjaama Roomba -robotti Raspberry Pi -mallilla 3 A+: 6 vaihetta (kuvilla)
Selaimen ohjaama Roomba -robotti Raspberry Pi -mallin 3 A+kanssa: Yleiskatsaus Tässä ohjeessa keskitytään siihen, miten kuolleelle Roomballe annetaan uudet aivot (Raspberry Pi), silmät (verkkokamera) ja tapa hallita kaikkea verkkoselaimella. On paljon Roomba -hakkerointeja, jotka mahdollistavat ohjauksen sarjaliitännän kautta. En ole
Pyörivä robotti, jossa ESP32 Thing ja TB6612FNG -ohjain, Androidin ohjaama BLE: 11 vaihetta
Pyörivä robotti, jossa on ESP32 Thing ja TB6612FNG -ohjain, Androidin ohjaama BLE: Hei kaikille Tämä on ensimmäinen ohjeeni. Pyörivä robotti (lempinimeltään Raidho - liikkeeseen liittyvästä runeesta), joka perustuu ESP32 Thingiin, TB6612 FNG: hen ja BLE: hen. Yksi osa, joka saattaa tuntua erikoiselta, on, että valokuvat eivät ole valmistusprosessista