Orodha ya maudhui:

Mchezo wa mkono wa Robotic - Mdhibiti wa Smartphone: Hatua 6
Mchezo wa mkono wa Robotic - Mdhibiti wa Smartphone: Hatua 6

Video: Mchezo wa mkono wa Robotic - Mdhibiti wa Smartphone: Hatua 6

Video: Mchezo wa mkono wa Robotic - Mdhibiti wa Smartphone: Hatua 6
Video: Шок!!! ДУШИ МЕРТВЕЦОВ В ЗАТОЧЕНИИ У ДЕМОНА В ЭТОМ СТРАШНОМ ДОМЕ / HERE ARE THE SOULS OF THE DEAD 2024, Julai
Anonim
Mchezo wa mkono wa Robotic - Mdhibiti wa Smartphone
Mchezo wa mkono wa Robotic - Mdhibiti wa Smartphone

Halo!

Hapa kuna mchezo wa kufurahisha wa majira ya joto: Mkono wa roboti unaodhibitiwa na Smartphone !!

Kama unavyoona kwenye Video, unaweza kudhibiti Mkono na Vifungo vingine kwenye simu yako mahiri.

Unaweza pia kuokoa muundo, kwamba roboti itazaa tena kwa kitanzi, ili kufanya kazi kadhaa za kurudia kama mfano. Lakini muundo huu unaweza kubadilika unavyotaka !!!!

Kuwa mbunifu !

Hatua ya 1: Vifaa

Vifaa
Vifaa

Hapa unaweza kuona nyenzo ambazo unahitaji.

Itakugharimu karibu 50 € kujenga hii Arm roboti. Programu na zana zinaweza kubadilishwa, lakini nilitumia zile za mradi huu.

Hatua ya 2: 3D Chapisha Arm Robotic

Chapisha 3D mkono wa Roboti
Chapisha 3D mkono wa Roboti
Chapisha 3D mkono wa Roboti
Chapisha 3D mkono wa Roboti
Chapisha 3D mkono wa Roboti
Chapisha 3D mkono wa Roboti

Arm Robotic ilichapishwa 3D (na prusa i3 yetu).

Shukrani kwa wavuti "HowtoMechatronics.com", Faili zake za STL ni za kushangaza ili kujenga mkono wa 3D.

Itachukua karibu masaa 20 kuchapisha vipande vyote.

Hatua ya 3: Montage ya Elektroniki

Montage ya umeme
Montage ya umeme

Montage ni tofauti katika sehemu 2:

Sehemu ya elektroniki, ambapo arduino imeunganishwa na servos na Pini za Dijiti, na na kifaa cha Bluetooth (Rx, Tx).

Sehemu ya Nguvu, ambapo servos zinaendeshwa na chaja 2 ya simu (5V, 2A max).

Hatua ya 4: Maombi ya Smartphone

Maombi ya Smartphone
Maombi ya Smartphone

Maombi yalifanywa kwa mvumbuzi wa App 2. Tunatumia Joystick 2 kudhibiti 4 Servos na vifungo 2 zaidi kudhibiti mtego wa mwisho.

Tunaunganisha Arm na Smartphone pamoja kwa kutumia moduli ya Bluetooth (HC-06).

Mwishowe, hali ya kuokoa inaruhusu mtumiaji kuokoa hadi nafasi 9 za Arm.

Kisha mkono utaingia katika hali ya kiotomatiki, ambapo atazalisha nafasi zilizohifadhiwa.

Hatua ya 5: Nambari ya Arduino

Nambari ya Arduino
Nambari ya Arduino
Nambari ya Arduino
Nambari ya Arduino

// 08/19 - Smartphone ya Smart Robotic inadhibitiwa

#jumuisha #ufasili kweli ***********

neno rep; // mot mjumbe du moduli Arduino au smartphone

int chiffre_final = 0; int cmd = 3; // variable commande du servo moteur (troisième fil (machungwa, jaune)) int cmd1 = 5; // servo1 int cmd2 = 9; // servo2 int cmd3 = 10; // servo3 // int cmd4 = 10; // servo4 int cmd5 = 11; // pince int activate_saving = 0; Mtaalam wa Servo; // kwenye définit notre servomoteur Servo moteur1; Servo moteur2; Servo moteur3; // Servo moteur4; Servo moteur5; int step_angle_mini = 4; int step_angle = 3; int angle, angle1, angle3, angle5, angle2; // angle int pas; int r, r1, r2, r3; muandikishaji; boolean fin = UONGO; boolean fin1 = UONGO; boolean fin2 = UONGO; boolean fin3 = UONGO; boolean fin4 = UONGO; neno w; // mjumbe anayebadilika wa du smartphone au moduli 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 pembe; // angle de mzunguko (0 a 180)

// ******************** KUWEKA ******************************* ******** usanidi batili () {sauvegarde_positions1 [0] = sauvegarde_positions1 [1] = sauvegarde_positions1 [2] = sauvegarde_positions1 [3] = sauvegarde_positions1 [4] = 0; nafasi za sauvegarde2 [0] = sauvegarde_positions2 [1] = sauvegarde_positions2 [2] = sauvegarde_positions2 [3] = sauvegarde_positions2 [4] = 0; nafasi za sauvegarde3 [0] = sauvegarde_positions3 [1] = sauvegarde_positions3 [2] = sauvegarde_positions3 [3] = sauvegarde_positions3 [4] = 0; nafasi za sauvegarde4 [0] = sauvegarde_positions4 [1] = sauvegarde_positions4 [2] = sauvegarde_positions4 [3] = sauvegarde_positions4 [4] = 0; nafasi za sauvegarde5 [0] = sauvegarde_positions5 [1] = sauvegarde_positions5 [2] = sauvegarde_positions5 [3] = sauvegarde_positions5 [4] = 0; nafasi za sauvegarde6 [0] = sauvegarde_positions6 [1] = sauvegarde_positions6 [2] = sauvegarde_positions6 [3] = sauvegarde_positions6 [4] = 0; nafasi za sauvegarde7 [0] = sauvegarde_positions7 [1] = sauvegarde_positions7 [2] = sauvegarde_positions7 [3] = sauvegarde_positions7 [4] = 0; nafasi za sauvegarde8 [0] = sauvegarde_positions8 [1] = sauvegarde_positions8 [2] = sauvegarde_positions8 [3] = sauvegarde_positions8 [4] = 0; nafasi za sauvegarde9 [0] = sauvegarde_positions9 [1] = sauvegarde_positions9 [2] = sauvegarde_positions9 [3] = sauvegarde_positions9 [4] = 0; moteur. ambatisha (cmd); // kwenye relie l'objet au pin de commande moteur1. ambatisha (cmd1); moteur2. ambatisha (cmd2); moteur3. ambatisha (cmd3); // moteur4. ambatisha (cmd4); moteur5. ambatisha (cmd5); mwandishi. mwandishi (6); pembe = 6; moteur1. andika (100); angle1 = 100; moteur2.andika (90); moteur3. andika (90); //moteur4.andika (12); moteur5.andika (90); pembe = 6; angle1 = 100; angle2 = 90; angle3 = 90; angle5 = 90; Kuanzia Serial (9600); // kibali cha communiquer au moduli ya Bluetooth} // ******************** BOUCLE ****************** ***************** kitanzi batili () {

// Serial.print ("angle");

//Serial.print (angle);Serial.print ("\ t"); Serial.print (angle1); Serial.print ("\ t"); Serial.print (angle2); Serial.print ("\ t Serial.print (angle3); Serial.print ("\ t"); Serial.print (angle5); Serial.print ("\ n");

//Serial.print ("pembetatu");

int i; w = kupokea (); // juu ya kupokea habari ya smartphone, la swichi w (w) {kesi 1: TouchDown_Release (); kuvunja; kesi 2: TouchDown_Grab (); kuvunja; kesi 3: Base_Rotation (); kuvunja; kesi 4: Base_AntiRotation (); kuvunja; kesi 5: Kiuno_Rotation (); kuvunja; kesi ya 6: Kiuno_AntiRotation (); kuvunja; kesi 7: Tatu_Arm_Rotation (); kuvunja; kesi ya 8: Tatu_Arm_AntiRotation (); kuvunja; kesi 9: Nne_Arm_Rotation (); kuvunja; kesi ya 10: Nne_Arm_AntiRotation (); kuvunja; // kesi ya 11: Tano_Arm_Rotation (); kuvunja; // kesi ya 12: ya tano_Arm_AntiRotation (); kuvunja; kesi 21: Serial.print ("kesi ya 1"); chiffre_final = 1; sauvegarde_positions1 [0] = angle; sauvegarde_positions1 [1] = angle1; sauvegarde_positions1 [2] = angle2; sauvegarde_positions1 [3] = angle3; 4 = angle5; Serial.println (sauvegarde_positions1 [1]); Serial.println (sauvegarde_positions1 [2]); kuvunja; kesi 22: chiffre_final = 2; sauvegarde_positions2 [0] = angle; sauvegarde_positions2 [1] = angle1; sauvegarde_positions2 [2] = angle2; sauvegarde_positions2 [3] = angle3; sauvegarde_positions2 [4] = kuvunja; kesi 23: chiffre_final = 3; sauvegarde_positions3 [0] = angle; sauvegarde_positions3 [1] = angle1; sauvegarde_positions3 [2] = angle2; sauvegarde_positions3 [3] = angle3; sauvegarde_positions3 [4] = angle; kesi 24: chiffre_final = 4; sauvegarde_positions4 [0] = angle; sauvegarde_positions4 [1] = angle1; sauvegarde_positions4 [2] = angle2; sauvegarde_positions4 [3] = angle3; sauvegarde_positions4 [4] = kuvunja; kesi 25: chiffre_final = 5; sauvegarde_positions5 [0] = angle; sauvegarde_positions5 [1] = angle1; sauvegarde_positions5 [2] = angle2; sauvegarde_positions5 [3] = angle3; sauvegarde_positions5 [4] = kuvunja; kesi 26: chiffre_final = 6; sauvegarde_positions6 [0] = angle; sauvegarde_positions6 [1] = angle1; sauvegarde_positions6 [2] = angle2; sauvegarde_positions6 [3] = angle3; sauvegarde_positions6 [4] = kuvunja; kesi 27: chiffre_final = 7; sauvegarde_positions7 [0] = angle; sauvegarde_positions7 [1] = angle1; sauvegarde_positions7 [2] = angle2; sauvegarde_positions7 [3] = angle3; sauvegarde_positions7 [4] = kuvunja; kesi 28: chiffre_final = 8; sauvegarde_positions8 [0] = angle; sauvegarde_positions8 [1] = angle1; sauvegarde_positions8 [2] = angle2; sauvegarde_positions8 [3] = angle3; sauvegarde_positions8 [4] = kuvunja; kesi 29: chiffre_final = 9; sauvegarde_positions9 [0] = angle; sauvegarde_positions9 [1] = angle1; sauvegarde_positions9 [2] = angle2; sauvegarde_positions9 [3] = angle3; sauvegarde_positions9 [4] = kuvunja;

kesi 31: Serial.print ("31"); activate_saving = 1; chiffre_final = 0; kuvunja; // ANZA

kesi 33: Serial.print ("33"); activate_saving = 0; kuvunja; // BUTTON SAVE default: kuvunja; } ikiwa (w == 32) {Serial.print ("\ nZalisha / nChiffre mwisho:"); Printa ya serial (chiffre_final); Serial.print ("\ n Sauvegarde nafasi 1: / n"); kwa (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions1 ); Serial.print ("\ t");} Serial.print ("\ n Sauvegarde nafasi 2: / n"); kwa (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions2 ); Serial.print ("\ t");} Serial.print ("\ n Sauvegarde nafasi 3: / n"); kwa (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions3 ); Serial.print ("\ t");} kwa (i = 1; i <= chiffre_final; i ++) {Serial. chapisha ("\ n / n BEGIN / n Kitanzi:"); Serial.print (i); Serial.print ("\ n"); kubadili (i) {kesi 1: goto_moteur (* (sauvegarde_positions1)); kuchelewesha (200); goto_moteur1 (* (sauvegarde_positions1 + 1)); kuchelewesha (200); goto_moteur2 (* (sauvegarde_positions1 + 2)); kuchelewesha (200); goto_moteur3 (* (sauvegarde_positions1 + 3)); kuchelewesha (200); goto_moteur5 (* (sauvegarde_positions1 + 4)); kuchelewesha (200); kuvunja; kesi 2: goto_moteur (* (sauvegarde_positions2)); kuchelewesha (200); goto_moteur1 (* (sauvegarde_positions2 + 1)); kuchelewesha (200); goto_moteur2 (* (sauvegarde_positions2 + 2)); kuchelewesha (200); goto_moteur3 (* (sauvegarde_positions2 + 3)); kuchelewesha (200); goto_moteur5 (* (sauvegarde_positions2 + 4)); kuchelewesha (200); kuvunja; kesi 3: goto_moteur (* (sauvegarde_positions3)); kuchelewesha (200); goto_moteur1 (* (sauvegarde_positions3 + 1)); kuchelewesha (200); goto_moteur2 (* (sauvegarde_positions3 + 2)); kuchelewesha (200); goto_moteur3 (* (sauvegarde_positions3 + 3)); kuchelewesha (200); goto_moteur5 (* (sauvegarde_positions3 + 4)); kuchelewesha (200); kuvunja; kesi 4: goto_moteur (* (sauvegarde_positions4)); kuchelewesha (200); goto_moteur1 (* (sauvegarde_positions4 + 1)); kuchelewesha (200); goto_moteur2 (* (sauvegarde_positions4 + 2)); kuchelewesha (200); goto_moteur3 (* (sauvegarde_positions4 + 3)); kuchelewesha (200); goto_moteur5 (* (sauvegarde_positions4 + 4)); kuchelewesha (200); kuvunja; kesi 5: goto_moteur (* (sauvegarde_positions5)); kuchelewesha (200); goto_moteur1 (* (sauvegarde_positions5 + 1)); kuchelewesha (200); goto_moteur2 (* (sauvegarde_positions5 + 2)); kuchelewesha (200); goto_moteur3 (* (sauvegarde_positions5 + 3)); kuchelewesha (200); goto_moteur5 (* (sauvegarde_positions5 + 4)); kuchelewesha (200); kuvunja; kesi ya 6: goto_moteur (* (sauvegarde_positions6)); kuchelewesha (200); goto_moteur1 (* (sauvegarde_positions6 + 1)); kuchelewesha (200); goto_moteur2 (* (sauvegarde_positions6 + 2)); kuchelewesha (200); goto_moteur3 (* (sauvegarde_positions6 + 3)); kuchelewesha (200); goto_moteur5 (* (sauvegarde_positions6 + 4)); kuchelewesha (200); kuvunja; kesi 7: goto_moteur (* (sauvegarde_positions7)); kuchelewesha (200); goto_moteur1 (* (sauvegarde_positions7 + 1)); kuchelewesha (200); goto_moteur2 (* (sauvegarde_positions7 + 2)); kuchelewesha (200); goto_moteur3 (* (sauvegarde_positions7 + 3)); kuchelewesha (200); goto_moteur5 (* (sauvegarde_positions7 + 4)); kuchelewesha (200); kuvunja; kesi ya 8: goto_moteur (* (sauvegarde_positions8)); kuchelewesha (200); goto_moteur1 (* (sauvegarde_positions8 + 1)); kuchelewesha (200); goto_moteur2 (* (sauvegarde_positions8 + 2)); kuchelewesha (200); goto_moteur3 (* (sauvegarde_positions8 + 3)); kuchelewesha (200); goto_moteur5 (* (sauvegarde_positions8 + 4)); kuchelewesha (200); kuvunja; kesi 9: goto_moteur (* (sauvegarde_positions9)); kuchelewesha (200); goto_moteur1 (* (sauvegarde_positions9 + 1)); kuchelewesha (200); goto_moteur2 (* (sauvegarde_positions9 + 2)); kuchelewesha (200); goto_moteur3 (* (sauvegarde_positions9 + 3)); kuchelewesha (200); goto_moteur5 (* (sauvegarde_positions9 + 4)); kuchelewesha (200); kuvunja; } Serial.print ("\ n *********************** UZAZI WA FINZI ***************** / n "); kuchelewesha (500); }} /*Serial.print ("kwanza / 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"); * /

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

kupokea neno () {// fonction permettant de recevoir l'information du smartphone

ikiwa (Serial haipatikani ()) {w = Serial.read ();

Serial.flush ();

kurudi w; }}

batili goto_moteur (int angle_destination)

{wakati (pembe ya pembe-upangiliaji + pembetatu) {Serial.print ("\ n -------------- * * * * * * -------------- ---- / n "); Serial.print ("angle_destination = / t"); Serial.print (angle_destination); Printa ya serial ("\ n angle1 = / t"); serial.print (pembe); ikiwa (angle_mwisho wa pembe / pembe_ya hatua) {angle = pembe + pembetatu; moteur. andika (pembe);} kuchelewesha (100); } moteur.andika (angle_destination); } batili goto_moteur1 (int angle_destination) {wakati (angle_destination angle1 + step_angle) {Serial.print ("\ n -------------- * * * * * * ------- ----------- / n "); Serial.print ("angle_destination = / t"); Serial.print (angle_destination); Printa ya serial ("\ n angle2 = / t"); serial.print (angle1); ikiwa (angle_destination angle1 + step_angle) {angle1 + = step_angle; moteur1. andika (angle1);;} kuchelewa (100); } moteur1. andika (uamuzi wa pembe); } batili goto_moteur2 (int angle_destination) {

wakati (angle_destination angle2 + step_angle)

{Serial.print ("\ n -------------- * * * * * * ------------------ / n"); Serial.print ("angle_destination = / t"); Serial.print (angle_destination); Printa ya serial ("\ n angle3 = / t"); serial.print (angle2); ikiwa (angle_destination angle2 + step_angle) {angle2 + = step_angle; moteur2. andika (angle2);} kuchelewesha (100); } moteur2.write (angle_destination); } batili goto_moteur3 (int angle_destination) {

wakati (angle_destination angle3 + step_angle)

{Serial.print ("\ n -------------- * * * * * * ------------------ / n"); Serial.print ("angle_destination = / t"); Serial.print (angle_destination); Printa ya serial ("\ n angle4 = / t"); Printa ya serial (angle3); ikiwa (angle_destination angle3 + step_angle) {angle3 + = step_angle; moteur3. andika (angle3);} kuchelewesha (100); } moteur3. andika (uamuzi wa pembe); } batili goto_moteur5 (int angle_destination) {

wakati (angle_destination angle5 + step_angle)

{Serial.print ("\ n -------------- * * * * * * ------------------ / n"); Serial.print ("angle_destination = / t"); Serial.print (angle_destination); Rekodi ya serial ("\ n angle5 = / t"); serial.print (angle5); ikiwa (angle_destination angle5 + step_angle) {angle5 + = step_angle; moteur5. andika (angle5);} kuchelewesha (100); } moteur5. andika (kuamuliwa kwa pembe); }

batili TouchDown_Release () // Kitufe cha TouchDown

{ikiwa (angle5 <180) {angle5 = angle5 + step_angle_mini; } moteur5. andika (angle5); }

batili TouchDown_Grab () // Kunyakua Kitufe cha TouchDown

{ikiwa (angle5> 0) {angle5 = angle5-step_angle_mini; } moteur5. andika (angle5); } batili Base_Rotation () {if (angle 0) {angle = angle-step_angle; } pembe nyingine = 0; moteur. andika (pembe); } batili Kiuno_Rotation () {ikiwa (angle1 20) {angle1 = angle1-step_angle; } pembe nyingine1 = 20; moteur1. andika (angle1); } batili_Arm_Rotation () {ikiwa (angle2 0) {angle2 = angle2-step_angle; } moteur2. andika (angle2); } batili ya Nne_Arm_Rotation () {ikiwa (angle3 = 0) {angle3 = angle3-step_angle_mini; } moteur3. andika (angle3); }

Hatua ya 6: Hiyo ndio

Asante kwa kutazama, natumai umethamini!

Ikiwa ulipenda Agizo hili, kwa hakika unaweza kututembelea kwa zaidi! =)

Ilipendekeza: