![Lihtne ja nutikas robotkäsi Arduino abil !!!: 5 sammu (piltidega) Lihtne ja nutikas robotkäsi Arduino abil !!!: 5 sammu (piltidega)](https://i.howwhatproduce.com/images/006/image-15831-11-j.webp)
Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
![Image Image](https://i.howwhatproduce.com/images/006/image-15831-13-j.webp)
![](https://i.ytimg.com/vi/Ma79CQSiT_A/hqdefault.jpg)
![Asjad, mida vajate Asjad, mida vajate](https://i.howwhatproduce.com/images/006/image-15831-14-j.webp)
Selles juhendis valmistan lihtsa robotkäe. Seda juhitakse juhthoova abil. Käsi mäletab liigutusi ja mängib järjest. Kontseptsioon ei ole uus. Idee sain "minirobotilt Stoerpeakilt". Tahtsin seda juba ammu teha, kuid toona olin totaalne ja ei teadnud programmeerimisest. Nüüd lõpuks ehitan ühe, hoian selle lihtsana, odavalt ja jagan seda teiega.
Nii et alustame….
Samm: asjad, mida vajate:-
![Asjad, mida vajate Asjad, mida vajate](https://i.howwhatproduce.com/images/006/image-15831-15-j.webp)
![Asjad, mida vajate Asjad, mida vajate](https://i.howwhatproduce.com/images/006/image-15831-16-j.webp)
Siin on nimekiri asjadest, mida vajate:-
1. Servomootorid x 5 Link USA jaoks:- https://amzn.to/2OxbSH7Link Euroopa jaoks:-
2. Potentsiomeetrid x 5 (olen kasutanud 100k.) Link USA jaoks:- https://amzn.to/2ROjhDMLink for Europe:-
3. Arduino UNO. (Võite kasutada ka Arduino Nano) Link USA jaoks:- https://amzn.to/2DBbENWLink Euroopa jaoks:-
4. Leivalaud. (Soovitan seda komplekti) Link USA-le:- https://amzn.to/2Dy86w4Link Euroopa jaoks:-
5. Aku. (valikuline, kasutan 5v adapterit)
6. Papp/puit/päikesepaneel/akrüül, mis kunagi on saadaval või kergesti leitav.
Ja teil on vaja installida ka Arduino IDE.
2. samm: käe valmistamine:-
![Käe tegemine Käe tegemine](https://i.howwhatproduce.com/images/006/image-15831-17-j.webp)
![Käe tegemine Käe tegemine](https://i.howwhatproduce.com/images/006/image-15831-18-j.webp)
Siin olen käe valmistamiseks kasutanud Popsicle pulgakesi. Võite kasutada kõiki teile kättesaadavaid materjale. Ja võite proovida erinevaid mehaanilisi konstruktsioone, et muuta käed veelgi paremaks. minu disain pole eriti stabiilne.
Ma lihtsalt kasutasin kahepoolset teipi servode kinnitamiseks Popsicle pulga külge ja kinnitasin need kruvidega.
Master -käe jaoks liimisin potensomeetrid popsick -pulgade külge ja tegin käe.
Piltidele viitamine annab teile parema idee.
Olen paigaldanud kõik A4 -formaadis lõuendplaadile, mida kasutatakse alusena.
3. samm: ühenduste loomine:-
![Ühenduste loomine Ühenduste loomine](https://i.howwhatproduce.com/images/006/image-15831-19-j.webp)
![Ühenduste loomine Ühenduste loomine](https://i.howwhatproduce.com/images/006/image-15831-20-j.webp)
![Ühenduste loomine Ühenduste loomine](https://i.howwhatproduce.com/images/006/image-15831-21-j.webp)
Selles etapis teeme kõik vajalikud ühendused, vaadake ülaltoodud pilte.
- Ühendage esmalt kõik servod paralleelselt toiteallikaga (punane juhe +ve ja must või pruun juhe Gnd -ga)
- Seejärel ühendage signaalijuhtmed, st kollane või oranž juhe arduino PWM -pistikuga.
- Nüüd ühendage potentsiomeetrid paralleelselt arduino +5v ja Gnd -ga.
- Ühendage keskmine terminal ardunio analoogpistikuga.
Siin kasutatakse servode juhtimiseks digitaalseid kontakte 3, 5, 6, 9 ja 10
Potentsiomeetrite sisendiks kasutatakse analoogpistikuid A0 kuni A4.
Pistikuga 3 ühendatud servot juhitakse potentsiomeetriga, mis on ühendatud A0 -ga
Pistikuga 5 ühendatud servot juhitakse potil A1 ja nii edasi….
Märkus:- Kuigi servosid ei toida arduino, ühendage kindlasti servode Gnd arduinoga, vastasel juhul ei tööta käsi.
4. samm: kodeerimine:-
![Kodeerimine Kodeerimine](https://i.howwhatproduce.com/images/006/image-15831-22-j.webp)
Selle koodi loogika on üsna lihtne: potentsiomeetrite väärtused salvestatakse massiivi, seejärel liigutatakse kirjed for -ahela abil ja servod teevad väärtustele vastavaid samme. Saate vaadata seda õpetust, mida kasutasin viitamiseks "Arduino potentsiomeetri servo juhtimine ja mälu"
Kood:- (allalaaditav fail on lisatud allpool.)
Esiteks deklareerime kõik vajalikud muutujad globaalselt, et saaksime neid kogu programmi jooksul kasutada. Selle jaoks pole erilist selgitust vaja
#kaasake
// Servoobjektid Servo Servo_0; Servo Servo_1; Servo Servo_2; Servo Servo_3; Servo Servo_4; // Potentsiomeetri objektid int Pot_0; int Pot_1; int Pot_2; int Pot_3; int Pot_4; // Muutuja Servo positsiooni salvestamiseks int Servo_0_Pos; int Servo_1_Pos; int Servo_2_Pos; int Servo_3_Pos; int Servo_4_Pos; // Muutuja salvestamiseks Eelmise positsiooni väärtused int Prev_0_Pos; int Eelmised_1_Pos; int Eelmised_2_Pos; int Eelmised_3_Pos; int Eelmised_4_Pos; // Muutuja praeguse positsiooni väärtuste salvestamiseks int Current_0_Pos; int Current_1_Pos; int Current_2_Pos; int Praegune_3_Pos; int Praegune_4_Pos; int Servo_Position; // Salvestab nurga int Servo_Number; // Servo int kaupluste arv Storage [600]; // Massiiv andmete salvestamiseks (massiivi suurendamine võtab rohkem mälu) int Index = 0; // Massiiviindeks algab 0 positsioonist char data = 0; // muutuja jadasisendist andmete salvestamiseks.
Nüüd kirjutame seadistusfunktsiooni, kus määrame tihvtid ja nende funktsioonid. See on peamine funktsioon, mis kõigepealt täidetakse
tühine seadistus ()
{Serial.begin (9600); // jadaühenduseks arduino ja IDE vahel. // Servoobjektid on kinnitatud PWM tihvtide külge. Servo_0.kinnitus (3); Servo_1.kinnitus (5); Servo_2.kinnitus (6); Servo_3.kinnitus (9); Servo_4.kinnitus (10); // Servod on lähtestamisel seatud 100 asendisse. Servo_0.write (100); Servo_1.kirjutada (100); Servo_2.kirjutada (100); Servo_3.kirjutada (100); Servo_4.kirjutada (100); Serial.println ("Vajutage salvestamiseks" R "ja esitamiseks" P "); }
Nüüd peame lugema potentsiomeetrite väärtusi, kasutades analoogsisendi tihvte ja kaardistama need servode juhtimiseks. Selleks määratleme funktsiooni ja nimetame selle Map_Pot ();, saate sellele nimetada mida iganes soovite, see on kasutaja määratud funktsioon
tühine Map_Pot ()
{ / * Servod pöörlevad 180 kraadi, kuid piirangute kasutamine pole hea mõte, kuna see ajab servod pidevalt sumisema, mis on tüütu, nii et piirame servo liikumist: 1-179 * / Pot_0 = analogRead (A0); // Loe poti sisendit ja salvesta see muutuvasse potti0. Servo_0_Pos = kaart (Pot_0, 0, 1023, 1, 179); // Kaardista servod väärtuse vahemikus 0 kuni 1023 Servo_0.write (Servo_0_Pos); // Liigutage servo sellesse asendisse. Pot_1 = analogRead (A1); Servo_1_Pos = kaart (Pot_1, 0, 1023, 1, 179); Servo_1.write (Servo_1_Pos); Pot_2 = analogRead (A2); Servo_2_Pos = kaart (Pot_2, 0, 1023, 1, 179); Servo_2.write (Servo_2_Pos); Pot_3 = analogRead (A3); Servo_3_Pos = kaart (Pot_3, 0, 1023, 1, 179); Servo_3.write (Servo_3_Pos); Pot_4 = analogRead (A4); Servo_4_Pos = kaart (Pot_4, 0, 1023, 1, 179); Servo_4.write (Servo_4_Pos); }
Nüüd kirjutame silmuse funktsiooni:
tühine tsükkel ()
{Map_Pot (); // Funktsioonikõne poti väärtuste lugemiseks samas (Serial.available ()> 0) {data = Serial.read (); if (andmed == 'R') Serial.println ("Salvestus liigub …"); if (andmed == 'P') Serial.println ("Salvestatud käikude esitamine …"); } kui (andmed == 'R') // Kui sisestate 'R', alustage salvestamist. {// Salvesta väärtused muutuja Prev_0_Pos = Servo_0_Pos; Prev_1_Pos = Servo_1_Pos; Eelmine_2_Pos = Servo_2_Pos; Eelmine_3_Pos = Servo_3_Pos; Eelmine_4_Pos = Servo_4_Pos; Map_Pot (); // Kaardifunktsioon tuletati võrdluseks meelde, kui (abs (Prev_0_Pos == Servo_0_Pos)) // absoluutväärtus saadakse, kui võrrelda {Servo_0.write (Servo_0_Pos); // Kui väärtuste vaste servo paigutatakse ümber, kui (Current_0_Pos! = Servo_0_Pos) // Kui väärtused ei ühti {Storage [Index] = Servo_0_Pos + 0; // Väärtus lisatakse massiivile Index ++; // Indeksiväärtust suurendatud 1} Current_0_Pos = Servo_0_Pos; } /* Sarnaselt tehakse väärtuste võrdlus kõigi servode puhul, +100 lisatakse iga sisestuse jaoks diferentsiaalväärtusena. */ if (abs (Prev_1_Pos == Servo_1_Pos)) {Servo_1.write (Servo_1_Pos); if (Current_1_Pos! = Servo_1_Pos) {Storage [Index] = Servo_1_Pos + 100; Indeks ++; } Current_1_Pos = Servo_1_Pos; } if (abs (Eelmine_2_Pos == Servo_2_Pos)) {Servo_2.write (Servo_2_Pos); if (Current_2_Pos! = Servo_2_Pos) {Storage [Index] = Servo_2_Pos + 200; Indeks ++; } Current_2_Pos = Servo_2_Pos; } if (abs (Eelmised_3_Pos == Servo_3_Pos)) {Servo_3.write (Servo_3_Pos); if (Current_3_Pos! = Servo_3_Pos) {Storage [Index] = Servo_3_Pos + 300; Indeks ++; } Current_3_Pos = Servo_3_Pos; } if (abs (Prev_4_Pos == Servo_4_Pos)) {Servo_4.write (Servo_4_Pos); if (Current_4_Pos! = Servo_4_Pos) {Storage [Index] = Servo_4_Pos + 400; Indeks ++; } Praegune_4_Pos = Servo_4_Pos; } / * Väärtused trükitakse jadamonitorile, '\ t' on väärtuste kuvamiseks tabelivormingus * / Serial.print (Servo_0_Pos); Serial.print ("\ t"); Serial.print (Servo_1_Pos); Serial.print ("\ t"); Serial.print (Servo_2_Pos); Serial.print ("\ t"); Serial.print (Servo_3_Pos); Serial.print ("\ t"); Serial.println (Servo_4_Pos); Serial.print ("Indeks ="); Serial.println (indeks); viivitus (50); } kui (andmed == 'P') // KUI 'P' on sisestatud, alustage salvestatud käikude esitamist. {for (int i = 0; i <Index; i ++) // Massiivi läbimine, kasutades tsüklit {Servo_Number = Storage /100; // Leiab servo arvu Servo_Position = Storage % 100; // Leiab servolüliti asendi (Servo_Number) {case 0: Servo_0.write (Servo_Position); murda; juhtum 1: Servo_1.write (Servo_Position); murda; juhtum 2: Servo_2.write (Servo_Position); murda; juhtum 3: Servo_3.write (Servo_Position); murda; juhtum 4: Servo_4.write (Servo_Position); murda; } viivitus (50); }}}
Kui kood on valmis, laadige see nüüd üles arduino tahvlile
Smart arm on töövalmis. Funktsioon pole veel nii sujuv kui Stoerpeak.
Kui saate koodi paremaks muuta või on teil mingeid ettepanekuid, andke mulle sellest kommentaaride osas teada.
Seda öeldes liigume edasi testimise juurde….
5. samm: testimine:-
Pärast koodi edukale tahvlile üleslaadimist avage jadakuva, mille leiate tööriistade valikust. Kui jadamonitor käivitub, lähtestatakse arduino. Nüüd saate juhthoova abil juhtida robotkätt. Kuid midagi ei salvestata.
Salvestamise alustamiseks sisestage monitorile 'R' ja saate nüüd teha liigutusi, mida soovite salvestada.
Pärast liigutuste tegemist peate salvestatud käikude esitamiseks sisestama 'P'. Servod jätkavad liigutusi seni, kuni plaati pole lähtestatud.
Soovitan:
Nutikas äratuskell: nutikas äratuskell, mis on valmistatud Raspberry Pi -ga: 10 sammu (koos piltidega)
![Nutikas äratuskell: nutikas äratuskell, mis on valmistatud Raspberry Pi -ga: 10 sammu (koos piltidega) Nutikas äratuskell: nutikas äratuskell, mis on valmistatud Raspberry Pi -ga: 10 sammu (koos piltidega)](https://i.howwhatproduce.com/images/007/image-19330-j.webp)
Nutikas äratuskell: nutikas äratuskell, mis on valmistatud Raspberry Pi -ga: kas olete kunagi tahtnud nutikat kella? Kui jah, siis see on teie jaoks lahendus! Ma tegin nutika äratuskella, see on kell, mille abil saate äratusaega vastavalt veebisaidile muuta. Kui äratus hakkab tööle, kostab heli (sumin) ja 2 tuld
Bluetooth -robotkäsi ühe mootoriga draiveri abil: 3 sammu
![Bluetooth -robotkäsi ühe mootoriga draiveri abil: 3 sammu Bluetooth -robotkäsi ühe mootoriga draiveri abil: 3 sammu](https://i.howwhatproduce.com/images/008/image-21419-j.webp)
Bluetoothi robotkäepide ühe mootoriga draiveri kasutamisel: Tere tulemast minu juhendamisse. Selles juhendis näitan teile, kuidas muuta ühe juhtmootoriga juhtmega juhtimisroboti käsi Bluetoothi robotkäeks. See on kodust tehtud töö, mis on tehtud liikumiskeelu ajal. Nii et seekord on mul ainult üks L29
Lihtne robotkäsi, mida juhitakse tegeliku käeliigutusega: 7 sammu (piltidega)
![Lihtne robotkäsi, mida juhitakse tegeliku käeliigutusega: 7 sammu (piltidega) Lihtne robotkäsi, mida juhitakse tegeliku käeliigutusega: 7 sammu (piltidega)](https://i.howwhatproduce.com/images/003/image-6215-5-j.webp)
Lihtne robotkäsi, mida juhitakse üle tegeliku käeliigutuse: see on väga lihtne DOF -i robotkäsi algajatele. Käsi on Arduino juhitav. See on ühendatud anduriga, mis on kinnitatud operaatori käe külge. Seetõttu saab operaator juhtida käe küünarnukki, painutades oma küünarnuki liigutust
DIY MusiLED, muusika sünkroonitud LED-id ühe klõpsuga Windowsi ja Linuxi rakendusega (32-bitine ja 64-bitine). Lihtne taastada, lihtne kasutada, lihtne teisaldada: 3 sammu
![DIY MusiLED, muusika sünkroonitud LED-id ühe klõpsuga Windowsi ja Linuxi rakendusega (32-bitine ja 64-bitine). Lihtne taastada, lihtne kasutada, lihtne teisaldada: 3 sammu DIY MusiLED, muusika sünkroonitud LED-id ühe klõpsuga Windowsi ja Linuxi rakendusega (32-bitine ja 64-bitine). Lihtne taastada, lihtne kasutada, lihtne teisaldada: 3 sammu](https://i.howwhatproduce.com/images/002/image-5944-30-j.webp)
DIY MusiLED, muusika sünkroonitud LED-id ühe klõpsuga Windowsi ja Linuxi rakendusega (32-bitine ja 64-bitine). Lihtne taastada, lihtne kasutada, lihtne teisaldada .: See projekt aitab teil ühendada 18 LED-i (6 punast + 6 sinist + 6 kollast) oma Arduino plaadiga ja analüüsida arvuti helikaardi reaalajasignaale ning edastada need valgusdioodid, mis neid löögiefektide järgi süttivad (Snare, High Hat, Kick)
Tõeliselt lihtne/lihtne/mitte keeruline viis muuta inimesed/inimesed/loomad/robotid GIMP -i abil tõeliselt jahedaks/heledaks nägemiseks (teie valitud värv): 4 sammu
![Tõeliselt lihtne/lihtne/mitte keeruline viis muuta inimesed/inimesed/loomad/robotid GIMP -i abil tõeliselt jahedaks/heledaks nägemiseks (teie valitud värv): 4 sammu Tõeliselt lihtne/lihtne/mitte keeruline viis muuta inimesed/inimesed/loomad/robotid GIMP -i abil tõeliselt jahedaks/heledaks nägemiseks (teie valitud värv): 4 sammu](https://i.howwhatproduce.com/images/005/image-14508-25-j.webp)
Tõeliselt lihtne/lihtne/mitte keeruline viis, kuidas inimesed/inimesed/loomad/robotid näevad välja nagu neil oleks tõeliselt lahe/särav kuumusnägemine (teie valitud värv) GIMP -i abil: lugege … pealkirja