Sisukord:

Robotkäe mäng - nutitelefoni kontroller: 6 sammu
Robotkäe mäng - nutitelefoni kontroller: 6 sammu

Video: Robotkäe mäng - nutitelefoni kontroller: 6 sammu

Video: Robotkäe mäng - nutitelefoni kontroller: 6 sammu
Video: Контроллер температуры мобильного телефона с модулем WIFI DT 06 | Программирование LDmicro-Roboremo 2024, November
Anonim
Robotkäe mäng - nutitelefoni kontroller
Robotkäe mäng - nutitelefoni kontroller

Tere !

Siin on lõbus suvemäng: nutitelefoniga juhitav robotkäsi !!

Nagu videost näete, saate käsivart juhtida mõne nutitelefoni juhtkangi abil.

Samuti saate salvestada mustri, mida robot kordab, et teha näiteks korduvaid ülesandeid. Kuid see muster on modifitseeritav vastavalt soovile !!!!

Ole loominguline!

Samm: materjalid

Materjalid
Materjalid

Siin näete vajalikku materjali.

Selle robotkäe ehitamine maksab teile umbes 50 eurot. Tarkvara ja tööriistu saab asendada, kuid ma kasutasin neid selle projekti jaoks.

Samm: printige robotkäsi 3D -vormingus

3D -printimine robotkäega
3D -printimine robotkäega
3D -printimine robotkäega
3D -printimine robotkäega
3D -printimine robotkäega
3D -printimine robotkäega

Robotkäsi trükiti 3D -ga (meie prusa i3 -ga).

Tänu veebisaidile "HowtoMechatronics.com" on tema STL -failid 3D -käe loomiseks suurepärased.

Kõigi tükkide printimiseks kulub umbes 20 tundi.

3. samm: elektrooniline montaaž

Elektrooniline montaaž
Elektrooniline montaaž

Montaaž on jagatud kaheks osaks:

Elektrooniline osa, kus arduino on servodega ühendatud digitaalsete kontaktide abil ja Bluetooth -seadmega (Rx, Tx).

Toiteosa, kus servod saavad toite 2 telefonilaadijaga (5V, max 2A).

Samm: nutitelefonirakendus

Nutitelefoni rakendus
Nutitelefoni rakendus

Rakendus tehti rakenduse leiutajal 2. Me kasutame 2 juhtkangi 4 servo juhtimiseks ja veel 2 nuppu viimase haarde juhtimiseks.

Ühendame Arm ja nutitelefoni Bluetooth-mooduli (HC-06) abil.

Lõpuks võimaldab salvestusrežiim kasutajal salvestada käe jaoks kuni 9 asendit.

Seejärel läheb käsi automaatrežiimi, kus ta kordab salvestatud positsioone.

Samm: Arduino kood

Arduino kood
Arduino kood
Arduino kood
Arduino kood

// 08/19 - Robotkäega nutitelefoniga juhitav

#sisalda #define TRUE true #define FALSE false // ******************** Deklaratsioonid **************** ***********

sõna rep; // mot envoyé du moodul Arduino au smartphone

int chiffre_final = 0; int cmd = 3; // muutuja commande du servo moteur (troisième fil (oranž, jaune)) int cmd1 = 5; // servo1 int cmd2 = 9; // servo2 int cmd3 = 10; // servo3 // int cmd4 = 10; // servo4 int cmd5 = 11; // pince int enable_saving = 0; Servomootor; // on définit notre servomoteur Servo moteur1; Servomootor2; Servomootor3; // Servomootor4; Servomootor5; int samm_nurk_mini = 4; int samm_nurk = 3; int nurk, nurk1, nurk3, nurk5, nurk2; // nurk int pas; int r, r1, r2, r3; int registreerija; boolean fin = FALSE; boolean fin1 = VÄÄR; boolean fin2 = VÄÄR; boolean fin3 = VÄÄR; boolean fin4 = VÄÄR; sõna w; // muutuja envoyé du nutitelefon au module Arduino int sauvegarde_positions1 [5]; int sauvegarde_positions2 [5]; int sauvegarde_positions3 [5]; int sauvegarde_positions4 [5]; int sauvegarde_positions5 [5]; int sauvegarde_positions6 [5]; int sauvegarde_positions7 [5]; int sauvegarde_positions8 [5]; int sauvegarde_positions9 [5];

// int nurk; // pöördenurk (0 kuni 180)

// ******************** SEADISTUS *************************** ******** void setup () {sauvegarde_positions1 [0] = sauvegarde_positions1 [1] = sauvegarde_positions1 [2] = sauvegarde_positions1 [3] = sauvegarde_positions1 [4] = 0; sauvegarde_positsioonid2 [0] = sauvegarde_positsioonid2 [1] = sauvegarde_positsioonid2 [2] = sauvegarde_positsioonid2 [3] = sauvegarde_positsioonid2 [4] = 0; sauvegarde_positsioonid3 [0] = sauvegarde_positsioonid3 [1] = sauvegarde_positsioonid3 [2] = sauvegarde_positsioonid3 [3] = sauvegarde_positsioonid3 [4] = 0; sauvegarde_positsioonid4 [0] = sauvegarde_positsioonid4 [1] = sauvegarde_positsioonid4 [2] = sauvegarde_positsioonid4 [3] = sauvegarde_positsioonid4 [4] = 0; sauvegarde_positsioonid5 [0] = sauvegarde_positsioonid5 [1] = sauvegarde_positsioonid5 [2] = sauvegarde_positsioonid5 [3] = sauvegarde_positsioonid5 [4] = 0; sauvegarde_positsioonid6 [0] = sauvegarde_positsioonid6 [1] = sauvegarde_positsioonid6 [2] = sauvegarde_positsioonid6 [3] = sauvegarde_positsioonid6 [4] = 0; sauvegarde_positsioonid7 [0] = sauvegarde_positsioonid7 [1] = sauvegarde_positsioonid7 [2] = sauvegarde_positsioonid7 [3] = sauvegarde_positsioonid7 [4] = 0; sauvegarde_positsioonid8 [0] = sauvegarde_positsioonid8 [1] = sauvegarde_positsioonid8 [2] = sauvegarde_positsioonid8 [3] = sauvegarde_positsioonid8 [4] = 0; sauvegarde_positsioonid9 [0] = sauvegarde_positsioonid9 [1] = sauvegarde_positsioonid9 [2] = sauvegarde_positsioonid9 [3] = sauvegarde_positsioonid9 [4] = 0; moteur.attach (cmd); // relie l'objet au pin de commande moteur1.attach (cmd1); moteur2.attach (cmd2); moteur3.attach (cmd3); // moteur4.attach (cmd4); moteur5.attach (cmd5); moteur.write (6); nurk = 6; moteur1.write (100); nurk1 = 100; moteur2.write (90); moteur3.write (90); //moteur4.write (12); moteur5.write (90); nurk = 6; nurk1 = 100; nurk2 = 90; nurk3 = 90; nurk5 = 90; Seriaalne algus (9600); // Bluetoothi mooduli kommunikeerija} // ******************* BOUCLE ****************** ***************** void loop () {

// Serial.print ("nurk");

//Seriaalneprint (nurk);Seriaalne trükk ("\ t"); Seeria.print (nurk1); Seeriaprint ("\ t"); Seeria.print (nurk2); Seeriaprint ("\ t "); Jadatrükk (nurk3); jadatrükk (" / t "); jadatrükk (nurk5); jadatrükk (" / n ");

//Sarja.print ("nurk ");

int i; w = tagasivõtmine (); // nutitelefoni kohta saate teavet, muutuva lüliti (w) {juhtum 1: TouchDown_Release (); break; juhtum 2: TouchDown_Grab (); break; juhtum 3: Base_Rotation (); break; juhtum 4: Base_AntiRotation (); break; juhtum 5: Waist_Rotation (); break; juhtum 6: Waist_AntiRotation (); murda; juhtum 7: Third_Arm_Rotation (); break; juhtum 8: Third_Arm_AntiRotation (); break; juhtum 9: Fourth_Arm_Rotation (); break; juhtum 10: Fourth_Arm_AntiRotation (); break; // juhtum 11: Fifth_Arm_Rotation (); break; // juhtum 12: Fifth_Arm_AntiRotation (); break; juhtum 21: Serial.print ("juhtnupp 1"); chiffre_final = 1; sauvegarde_positions1 [0] = nurk; sauvegarde_positions1 [1] = nurk1; sauvegarde_positions1 [2] = nurk2; sauvegarde_positions1 [3] = nurk3; sauvegarde_positions1 [4] = nurk5; Serial.println (sauvegarde_positions1 [1]); Serial.println (sauvegarde_positions1 [2]); Serial.println (sauvegarde_positions1 [3]); Serial.println (sauvegarde_positions1 [4]); murda; juhtum 22: chiffre_final = 2; sauvegarde_positions2 [0] = nurk; sauvegarde_positions2 [1] = nurk1; sauvegarde_positsioonid2 [2] = nurk2; sauvegarde_positsioonid2 [3] = nurk3; sauvegarde_positsioonid2 [4] = nurk5; murda; juhtum 23: chiffre_final = 3; sauvegarde_positions3 [0] = nurk; sauvegarde_positions3 [1] = nurk1; sauvegarde_positsioonid3 [2] = nurk2; sauvegarde_positsioonid3 [3] = nurk3; sauvegarde_positsioonid3 [4] = nurk5; vaheaeg; juhtum 24: chiffre_final = 4; sauvegarde_positions4 [0] = nurk; sauvegarde_positions4 [1] = nurk1; sauvegarde_positsioonid4 [2] = nurk2; sauvegarde_positsioonid4 [3] = nurk3; sauvegarde_positsioonid4 [4] = nurk5; murda; juhtum 25: chiffre_final = 5; sauvegarde_positions5 [0] = nurk; sauvegarde_positions5 [1] = nurk1; sauvegarde_positsioonid5 [2] = nurk2; sauvegarde_positsioonid5 [3] = nurk3; sauvegarde_positsioonid5 [4] = nurk5; murda; juhtum 26: chiffre_final = 6; sauvegarde_positions6 [0] = nurk; sauvegarde_positions6 [1] = nurk1; sauvegarde_positsioonid6 [2] = nurk2; sauvegarde_positsioonid6 [3] = nurk3; sauvegarde_positsioonid6 [4] = nurk5; murda; juhtum 27: chiffre_final = 7; sauvegarde_positions7 [0] = nurk; sauvegarde_positions7 [1] = nurk1; sauvegarde_positsioonid7 [2] = nurk2; sauvegarde_positsioonid7 [3] = nurk3; sauvegarde_positsioonid7 [4] = nurk5; murda; juhtum 28: chiffre_final = 8; sauvegarde_positions8 [0] = nurk; sauvegarde_positions8 [1] = nurk1; sauvegarde_positsioonid8 [2] = nurk2; sauvegarde_positsioonid8 [3] = nurk3; sauvegarde_positsioonid8 [4] = nurk5; murda; juhtum 29: chiffre_final = 9; sauvegarde_positions9 [0] = nurk; sauvegarde_positions9 [1] = nurk1; sauvegarde_positsioonid9 [2] = nurk2; sauvegarde_positsioonid9 [3] = nurk3; sauvegarde_positsioonid9 [4] = nurk5; murda;

juhtum 31: Serial.print ("31"); aktiveeri_säästmine = 1; chiffre_final = 0; murda; // ALUSTA

juhtum 33: Serial.print ("33"); enable_saving = 0; break; // BUTTON SAVE vaikimisi: break; } if (w == 32) {Serial.print ("\ nTootmine / nChiffre final:"); Serial.print (chiffre_final); Serial.print ("\ n Sauvegarde positsioon 1: / n"); for (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions1 ); Serial.print ("\ t");} Serial.print ("\ n Sauvegarde positsioon 2: / n"); for (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions2 ); Serial.print ("\ t");} Serial.print ("\ n Sauvegarde positsioon 3: / n"); jaoks (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions3 ); Serial.print ("\ t");} for (i = 1; i <= chiffre_final; i ++) {Serial. print ("\ n / n BEGIN / nSilm:"); Seeriatrükk (i); Seeriatrükk ("\ n"); lüliti (i) {juhtum 1: goto_moteur (*(sauvegarde_positions1)); viivitus (200); goto_moteur1 (*(sauvegarde_positions1+1)); viivitus (200); goto_moteur2 (*(sauvegarde_positions1+2)); viivitus (200); goto_moteur3 (*(sauvegarde_positions1+3)); viivitus (200); goto_moteur5 (*(sauvegarde_positions1+4)); delay (200); murda; juhtum 2: goto_moteur (*(sauvegarde_positions2)); viivitus (200); goto_moteur1 (*(sauvegarde_positions2+1)); viivitus (200); goto_moteur2 (*(sauvegarde_positions2+2)); viivitus (200); goto_moteur3 (*(sauvegarde_positions2+3)); viivitus (200); goto_moteur5 (*(sauvegarde_positions2+4)); delay (200); murda; juhtum 3: goto_moteur (*(sauvegarde_positions3)); viivitus (200); goto_moteur1 (*(sauvegarde_positions3+1)); viivitus (200); goto_moteur2 (*(sauvegarde_positions3+2)); viivitus (200); goto_moteur3 (*(sauvegarde_positions3+3)); viivitus (200); goto_moteur5 (*(sauvegarde_positions3+4)); viivitus (200); murda; juhtum 4: goto_moteur (*(sauvegarde_positions4)); viivitus (200); goto_moteur1 (*(sauvegarde_positions4+1)); viivitus (200); goto_moteur2 (*(sauvegarde_positions4+2)); viivitus (200); goto_moteur3 (*(sauvegarde_positions4+3)); viivitus (200); goto_moteur5 (*(sauvegarde_positions4+4)); viivitus (200); murda; juhtum 5: goto_moteur (*(sauvegarde_positions5)); viivitus (200); goto_moteur1 (*(sauvegarde_positions5+1)); viivitus (200); goto_moteur2 (*(sauvegarde_positions5+2)); viivitus (200); goto_moteur3 (*(sauvegarde_positions5+3)); viivitus (200); goto_moteur5 (*(sauvegarde_positions5+4)); viivitus (200); murda; juhtum 6: goto_moteur (*(sauvegarde_positions6)); viivitus (200); goto_moteur1 (*(sauvegarde_positions6+1)); viivitus (200); goto_moteur2 (*(sauvegarde_positions6+2)); viivitus (200); goto_moteur3 (*(sauvegarde_positions6+3)); viivitus (200); goto_moteur5 (*(sauvegarde_positions6+4)); viivitus (200); murda; juhtum 7: goto_moteur (*(sauvegarde_positions7)); viivitus (200); goto_moteur1 (*(sauvegarde_positions7+1)); viivitus (200); goto_moteur2 (*(sauvegarde_positions7+2)); viivitus (200); goto_moteur3 (*(sauvegarde_positions7+3)); viivitus (200); goto_moteur5 (*(sauvegarde_positions7+4)); viivitus (200); murda; juhtum 8: goto_moteur (*(sauvegarde_positions8)); viivitus (200); goto_moteur1 (*(sauvegarde_positions8+1)); viivitus (200); goto_moteur2 (*(sauvegarde_positions8+2)); delay (200); goto_moteur3 (*(sauvegarde_positions8+3)); viivitus (200); goto_moteur5 (*(sauvegarde_positions8+4)); delay (200); murda; juhtum 9: goto_moteur (*(sauvegarde_positions9)); viivitus (200); goto_moteur1 (*(sauvegarde_positions9+1)); viivitus (200); goto_moteur2 (*(sauvegarde_positions9+2)); delay (200); goto_moteur3 (*(sauvegarde_positions9+3)); viivitus (200); goto_moteur5 (*(sauvegarde_positions9+4)); delay (200); murda; } Serial.print ("\ n ************************ FIN REPRODUCE ***************** / n "); viivitus (500); }} /*Serial.print ("debüüt / n"); Serial.print (sauvegarde_positions1 [0]); Serial.print ("\ t"); Serial.print (sauvegarde_positions1 [1]); Serial.print ("\ t"); Serial.print (sauvegarde_positions1 [2]); Serial.print ("\ t"); Serial.print (sauvegarde_positions1 [3]); Serial.print ("\ t"); Serial.print (sauvegarde_positions1 [4]); Serial.print ("\ n"); Serial.print (sauvegarde_positions2 [0]); Serial.print ("\ t"); Serial.print (sauvegarde_positions2 [1]); Serial.print ("\ t"); Serial.print (sauvegarde_positions2 [2]); Serial.print ("\ t"); Serial.print (sauvegarde_positions2 [3]); Serial.print ("\ t"); Serial.print (sauvegarde_positions2 [4]); Serial.print ("\ n"); Serial.print (sauvegarde_positions3 [0]); Serial.print ("\ t"); Serial.print (sauvegarde_positions3 [1]); Serial.print ("\ t"); Serial.print (sauvegarde_positions3 [2]); Serial.print ("\ t"); Serial.print (sauvegarde_positions3 [3]); Serial.print ("\ t"); Serial.print (sauvegarde_positions3 [4]); Serial.print ("\ n"); Serial.print (sauvegarde_positions4 [0]); Serial.print ("\ t"); Serial.print (sauvegarde_positions4 [1]); Serial.print ("\ t"); Serial.print (sauvegarde_positions4 [2]); Serial.print ("\ t"); Serial.print (sauvegarde_positions4 [3]); Serial.print ("\ t"); Serial.print (sauvegarde_positions4 [4]); Serial.print ("\ n");

Serial.print ("\ nfin / n");*/

viivitus (100); } // **************************** FONCTIONS ****************** *******************

sõna recevoir () {// fonction permettant de recevoir l'information du smartphone

if (Serial.available ()) {w = Serial.read ();

Serial.flush ();

tagasitulek w; }}

void goto_moteur (int nurga_sihtkoht)

{while (nurga sihtkoha nurk+sammunurk) {Serial.print ("\ n -------------- * * * * * * -------------- ---- / n "); Serial.print ("nurga_sihtkoht = / t"); Serial.print (nurga_sihtkoht); Serial.print ("\ n nurk1 = / t"); Seeria.print (nurk); if (nurga_sihtnurk + sammunurk) {nurk = nurk + sammunurk; moteur.write (nurk);} viivitus (100); } moteur.write (nurga_siht); } void goto_moteur1 (int nurga_sihtkoht) {while (nurga_sihtnurk1+sammunurk) {Serial.print ("\ n -------------- * * * * * * ------- ----------- / n "); Serial.print ("nurga_sihtkoht = / t"); Serial.print (nurga_sihtkoht); Serial.print ("\ n nurk2 = / t"); Jadajälg (nurk1); if (nurga_sihtnurk1 +sammunurk) {nurk1 += sammunurk; moteur1.write (nurk1);;} viivitus (100); } moteur1.write (nurga_sihtkoht); } void goto_moteur2 (int nurga_sihtkoht) {

samas (nurga_sihtnurk2+sammunurk)

{Serial.print ("\ n -------------- * * * * * * ------------------ / n"); Serial.print ("nurga_sihtkoht = / t"); Serial.print (nurga_sihtkoht); Serial.print ("\ n nurk3 = / t"); Jadajälg (nurk2); if (nurga_sihtnurk2 +sammunurk) {nurk2 += sammunurk; moteur2.write (nurk2);} viivitus (100); } moteur2.write (nurga_sihtkoht); } tühine goto_moteur3 (int nurga_sihtkoht) {

samas (nurga_sihtnurk3+sammunurk)

{Serial.print ("\ n -------------- * * * * * * ------------------ / n"); Serial.print ("nurga_sihtkoht = / t"); Serial.print (nurga_sihtkoht); Serial.print ("\ n nurk4 = / t"); Jadajälg (nurk3); if (nurga_sihtnurk3 +sammunurk) {nurk3 += sammunurk; moteur3.write (nurk3);} viivitus (100); } moteur3.write (nurga_sihtkoht); } void goto_moteur5 (int nurga_sihtkoht) {

samas (nurga_sihtnurk5+sammunurk)

{Serial.print ("\ n -------------- * * * * * * ------------------ / n"); Serial.print ("nurga_sihtkoht = / t"); Serial.print (nurga_sihtkoht); Serial.print ("\ n nurk5 = / t"); Jadajälg (nurk5); if (nurga_sihtnurk5 +sammunurk) {nurk5 += sammunurk; moteur5.write (nurk5);} viivitus (100); } moteur5.write (nurga_sihtkoht); }

void TouchDown_Release () // Nupu puudutamise vabastamine

{if (nurk5 <180) {nurk5 = nurk5+samm_nurk_min; } moteur5.write (nurk5); }

void TouchDown_Grab () // Puudutamisnupu nupp

{if (nurk5> 0) {nurk5 = nurk5-sammuline_nurk_mini; } moteur5.write (nurk5); } void Base_Rotation () {if (nurk 0) {nurk = nurga-astme_nurk; } muu nurk = 0; moteur.write (nurk); } void Waist_Rotation () {if (nurk1 20) {nurk1 = nurk1-samm_nurk; } muu nurk1 = 20; moteur1.write (nurk1); } tühine Third_Arm_Rotation () {if (nurk2 0) {nurk2 = nurk2-sammuline_nurk; } moteur2.write (nurk2); } void Fourth_Arm_Rotation () {if (nurk3 = 0) {nurk3 = nurk3-astmeline_nurk_mini; } moteur3.write (nurk3); }

6. samm: see on kõik

Aitäh vaatamast, loodan, et hindasite!

Kui teile see juhendamine meeldis, võite kindlasti meid rohkem külastada! =)

Soovitan: