![Game Lengan Robot - Pengontrol Ponsel Cerdas: 6 Langkah Game Lengan Robot - Pengontrol Ponsel Cerdas: 6 Langkah](https://i.howwhatproduce.com/images/010/image-28794-j.webp)
Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49
![Game Lengan Robot - Pengontrol Ponsel Cerdas Game Lengan Robot - Pengontrol Ponsel Cerdas](https://i.howwhatproduce.com/images/010/image-28794-1-j.webp)
Halo !
Di sini permainan musim panas yang menyenangkan: Lengan robot yang dikendalikan oleh Smartphone !!
Seperti yang Anda lihat di Video, Anda dapat mengontrol Lengan dengan beberapa Joystick di ponsel cerdas Anda.
Anda juga dapat menyimpan pola, yang akan direproduksi oleh robot dalam satu lingkaran, untuk melakukan beberapa tugas berulang sebagai contoh. Tetapi pola ini dapat dimodulasi sesuai keinginan !!!!
Jadilah kreatif !
Langkah 1: Bahan
![Bahan Bahan](https://i.howwhatproduce.com/images/010/image-28794-2-j.webp)
Di sini Anda dapat melihat bahan yang Anda butuhkan.
Anda akan dikenakan biaya sekitar € 50 untuk membangun Lengan robot ini. Perangkat Lunak dan alat dapat diganti, tetapi saya menggunakannya untuk proyek ini.
Langkah 2: Cetak Lengan Robot 3D
![Cetak 3D Lengan Robot Cetak 3D Lengan Robot](https://i.howwhatproduce.com/images/010/image-28794-3-j.webp)
![Cetak 3D Lengan Robot Cetak 3D Lengan Robot](https://i.howwhatproduce.com/images/010/image-28794-4-j.webp)
![Cetak 3D Lengan Robot Cetak 3D Lengan Robot](https://i.howwhatproduce.com/images/010/image-28794-5-j.webp)
Lengan Robot dicetak 3D (dengan prusa i3) kami.
Berkat situs web "HowtoMechatronics.com", File STL-nya luar biasa untuk membuat lengan 3D.
Ini akan memakan waktu sekitar 20 jam untuk mencetak semua bagian.
Langkah 3: Montase Elektronik
![Montase Elektronik Montase Elektronik](https://i.howwhatproduce.com/images/010/image-28794-6-j.webp)
Montase terpisah menjadi 2 bagian:
Bagian elektronik, di mana arduino terhubung ke servos oleh Pin Digital, dan dengan perangkat Bluetooth (Rx, Tx).
Bagian Daya, di mana servos ditenagai dengan 2 pengisi daya telepon (maks 5V, 2A).
Langkah 4: Aplikasi Ponsel Cerdas
![Aplikasi Ponsel Cerdas Aplikasi Ponsel Cerdas](https://i.howwhatproduce.com/images/010/image-28794-7-j.webp)
Aplikasi dibuat pada App penemu 2. Kami menggunakan 2 Joystick untuk mengontrol 4 Servos dan 2 Tombol lagi untuk mengontrol Grip terakhir.
Kami menghubungkan Arm dan Smartphone bersama-sama dengan menggunakan modul Bluetooth (HC-06).
Akhirnya, mode hemat memungkinkan pengguna untuk menyimpan hingga 9 posisi untuk Lengan.
Lengan kemudian akan masuk ke mode otomatis, di mana ia akan mereproduksi posisi yang disimpan.
Langkah 5: Kode Arduino
![Kode Arduino Kode Arduino](https://i.howwhatproduce.com/images/010/image-28794-8-j.webp)
![Kode Arduino Kode Arduino](https://i.howwhatproduce.com/images/010/image-28794-9-j.webp)
// 19/08 - Robotic Arm Smartphone dikendalikan
#sertakan #define TRUE benar #define FALSE salah //******************PERNYATAAN****************** ***********
perwakilan kata; // mot envoyé du module Arduino au smartphone
int chiffre_final = 0; int cmd=3; // variabel commande du servo moteur (troisime fil (oranye, jaune)) int cmd1=5; // servo1 int cmd2=9; // servo2 int cmd3=10; // servo3 //int cmd4=10; //servo4 int cmd5=11; // pince int aktifkan_hemat = 0; Motor servo; //pada notre définit servomoteur Servo moteur1; Motor servo2; Motor servo3; //Moteur servo4; Motor servo5; int langkah_angle_mini = 4; int langkah_sudut = 3; int sudut, sudut1, sudut3, sudut5, sudut2;//sudut int pas; int r, r1, r2, r3; int pendaftar; sirip boolean = SALAH; boolean fin1 = SALAH; boolean fin2 = SALAH; boolean fin3 = SALAH; boolean fin4 = SALAH; kata w; // variabel utusan du smartphone au modul 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 sudut; // sudut de rotasi (0 a 180)
//********************MEMPERSIAPKAN*************************** ******** void setup() { sauvegarde_positions1[0] = sauvegarde_positions1[1] = sauvegarde_positions1[2] = sauvegarde_positions1[3] = sauvegarde_positions1[4] = 0; sauvegarde_positions2[0] = sauvegarde_positions2[1] = sauvegarde_positions2[2] = sauvegarde_positions2[3] = sauvegarde_positions2[4] = 0; sauvegarde_positions3[0] = sauvegarde_positions3[1] = sauvegarde_positions3[2] = sauvegarde_positions3[3] = sauvegarde_positions3[4] = 0; sauvegarde_positions4[0] = sauvegarde_positions4[1] = sauvegarde_positions4[2] = sauvegarde_positions4[3] = sauvegarde_positions4[4] = 0; sauvegarde_positions5[0] = sauvegarde_positions5[1] = sauvegarde_positions5[2] = sauvegarde_positions5[3] = sauvegarde_positions5[4] = 0; sauvegarde_positions6[0] = sauvegarde_positions6[1] = sauvegarde_positions6[2] = sauvegarde_positions6[3] = sauvegarde_positions6[4] = 0; sauvegarde_positions7[0] = sauvegarde_positions7[1] = sauvegarde_positions7[2] = sauvegarde_positions7[3] = sauvegarde_positions7[4] = 0; sauvegarde_positions8[0] = sauvegarde_positions8[1] = sauvegarde_positions8[2] = sauvegarde_positions8[3] = sauvegarde_positions8[4] = 0; sauvegarde_positions9[0] = sauvegarde_positions9[1] = sauvegarde_positions9[2] = sauvegarde_positions9[3] = sauvegarde_positions9[4] = 0; moteur.attach(cmd); // pada relie l'objet au pin de commande moteur1.attach(cmd1); moteur2.attach(cmd2); moteur3.attach(cmd3); // moteur4.attach(cmd4); moteur5.attach(cmd5); moteur.tulis(6); sudut = 6; moteur1.tulis(100); sudut1 = 100; moteur2.tulis(90); moteur3.tulis(90); //moteur4.write(12); moteur5.tulis(90); sudut = 6; sudut1=100; sudut2= 90; sudut3=90; sudut5=90; Serial.begin(9600); // permettra de komuniquer au modul Bluetooth } //*********************BOUCLE****************** ***************** void loop() {
// Serial.print("sudut");
//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("sudut");
di aku; w=penerima(); // pada va recevoir une information du smartphone, la variabel w switch (w) { case 1: TouchDown_Release();break; kasus 2: TouchDown_Grab();break; kasus 3: Base_Rotation();break; kasus 4: Base_AntiRotation();break; kasus 5: Rotasi_Pinggang();break; kasus 6: Waist_AntiRotation();break; kasus 7: Third_Arm_Rotation();break; kasus 8: Third_Arm_AntiRotation();break; kasus 9: Fourth_Arm_Rotation();break; kasus 10: Fourth_Arm_AntiRotation();break; //kasus 11: Fifth_Arm_Rotation();break; //kasus 12: Fifth_Arm_AntiRotation();break; case 21: Serial.print("case button 1 ");chiffre_final = 1;sauvegarde_positions1[0] =angle;sauvegarde_positions1[1] =angle1;sauvegarde_positions1[2] =angle2;sauvegarde_positions1[3] =angle3;sauvegarde_positions =angle5;Serial.println(sauvegarde_positions1[1]);Serial.println(sauvegarde_positions1[2]);Serial.println(sauvegarde_positions1[3]);Serial.println(sauvegarde_positions1[4]); merusak; kasus 22: chiffre_final = 2;sauvegarde_positions2[0] =angle;sauvegarde_positions2[1] =angle1;sauvegarde_positions2[2] =angle2;sauvegarde_positions2[3] =angle3;sauvegarde_positions2[4] =angle5; merusak; kasus 23: chiffre_final = 3;sauvegarde_positions3[0] =angle;sauvegarde_positions3[1] =angle1;sauvegarde_positions3[2] =angle2;sauvegarde_positions3[3] =angle3;sauvegarde_positions3[4] =angle5;break; kasus 24: chiffre_final = 4;sauvegarde_positions4[0] =angle;sauvegarde_positions4[1] =angle1;sauvegarde_positions4[2] =angle2;sauvegarde_positions4[3] =angle3;sauvegarde_positions4[4] =angle5; merusak; kasus 25: chiffre_final = 5;sauvegarde_positions5[0] =angle;sauvegarde_positions5[1] =angle1;sauvegarde_positions5[2] =angle2;sauvegarde_positions5[3] =angle3;sauvegarde_positions5[4] =angle5; merusak; kasus 26: chiffre_final = 6;sauvegarde_positions6[0] =angle;sauvegarde_positions6[1] =angle1;sauvegarde_positions6[2] =angle2;sauvegarde_positions6[3] =angle3;sauvegarde_positions6[4] =angle5; merusak; kasus 27: chiffre_final = 7;sauvegarde_positions7[0] =angle;sauvegarde_positions7[1] =angle1;sauvegarde_positions7[2] =angle2;sauvegarde_positions7[3] =angle3;sauvegarde_positions7[4] =angle5; merusak; kasus 28: chiffre_final = 8;sauvegarde_positions8[0] =angle;sauvegarde_positions8[1] =angle1;sauvegarde_positions8[2] =angle2;sauvegarde_positions8[3] =angle3;sauvegarde_positions8[4] =angle5; merusak; kasus 29: chiffre_final = 9;sauvegarde_positions9[0] =angle;sauvegarde_positions9[1] =angle1;sauvegarde_positions9[2] =angle2;sauvegarde_positions9[3] =angle3;sauvegarde_positions9[4] =angle5; merusak;
kasus 31: Serial.print("31");activate_saving = 1;chiffre_final = 0; istirahat;// MULAI
kasus 33: Serial.print("33");activate_saving = 0; break;// BUTTON SAVE default: break; } if(w == 32) { Serial.print("\nReproduksi\nChiffre final: "); Serial.print(chiffre_final); Serial.print("\n Sauvegarde posisi 1: \n"); for(i=0;i<5;i++){ Serial.print(sauvegarde_positions1);Serial.print("\t");} Serial.print("\n Posisi Sauvegarde 2: \n"); for(i=0;i<5;i++){ Serial.print(sauvegarde_positions2);Serial.print("\t");} Serial.print("\n Sauvegarde posisi 3: \n"); for(i=0;i<5;i++){ Serial.print(sauvegarde_positions3);Serial.print("\t");} untuk (i = 1;i<=chiffre_final;i++) { Serial. print("\n\n MULAI \nPerulangan: "); Serial.print(i);Serial.print("\n"); switch(i) { kasus 1: goto_moteur(*(sauvegarde_positions1));delay(200); goto_moteur1(*(sauvegarde_positions1+1)); penundaan (200); goto_moteur2(*(sauvegarde_positions1+2));delay(200); goto_moteur3(*(sauvegarde_positions1+3)); penundaan (200); goto_moteur5(*(sauvegarde_positions1+4));delay(200); merusak; kasus 2: goto_moteur(*(sauvegarde_positions2));delay(200); goto_moteur1(*(sauvegarde_positions2+1)); penundaan (200); goto_moteur2(*(sauvegarde_positions2+2));delay(200); goto_moteur3(*(sauvegarde_positions2+3)); penundaan (200); goto_moteur5(*(sauvegarde_positions2+4));delay(200); merusak; kasus 3: goto_moteur(*(sauvegarde_positions3));delay(200); goto_moteur1(*(sauvegarde_positions3+1)); penundaan (200); goto_moteur2(*(sauvegarde_positions3+2));delay(200); goto_moteur3(*(sauvegarde_positions3+3)); penundaan (200); goto_moteur5(*(sauvegarde_positions3+4));delay(200); merusak; kasus 4: goto_moteur(*(sauvegarde_positions4));delay(200); goto_moteur1(*(sauvegarde_positions4+1)); penundaan (200); goto_moteur2(*(sauvegarde_positions4+2));delay(200); goto_moteur3(*(sauvegarde_positions4+3)); penundaan (200); goto_moteur5(*(sauvegarde_positions4+4));delay(200); merusak; kasus 5: goto_moteur(*(sauvegarde_positions5));delay(200); goto_moteur1(*(sauvegarde_positions5+1)); penundaan (200); goto_moteur2(*(sauvegarde_positions5+2));delay(200); goto_moteur3(*(sauvegarde_positions5+3)); penundaan (200); goto_moteur5(*(sauvegarde_positions5+4));delay(200); merusak; kasus 6: goto_moteur(*(sauvegarde_positions6));delay(200); goto_moteur1(*(sauvegarde_positions6+1)); penundaan (200); goto_moteur2(*(sauvegarde_positions6+2));delay(200); goto_moteur3(*(sauvegarde_positions6+3)); penundaan (200); goto_moteur5(*(sauvegarde_positions6+4));delay(200); merusak; kasus 7: goto_moteur(*(sauvegarde_positions7));delay(200); goto_moteur1(*(sauvegarde_positions7+1)); penundaan (200); goto_moteur2(*(sauvegarde_positions7+2));delay(200); goto_moteur3(*(sauvegarde_positions7+3)); penundaan (200); goto_moteur5(*(sauvegarde_positions7+4));delay(200); merusak; kasus 8: goto_moteur(*(sauvegarde_positions8));delay(200); goto_moteur1(*(sauvegarde_positions8+1)); penundaan (200); goto_moteur2(*(sauvegarde_positions8+2));delay(200); goto_moteur3(*(sauvegarde_positions8+3)); penundaan (200); goto_moteur5(*(sauvegarde_positions8+4));delay(200); merusak; kasus 9: goto_moteur(*(sauvegarde_positions9));delay(200); goto_moteur1(*(sauvegarde_positions9+1)); penundaan (200); goto_moteur2(*(sauvegarde_positions9+2));delay(200); goto_moteur3(*(sauvegarde_positions9+3)); penundaan (200); goto_moteur5(*(sauvegarde_positions9+4));delay(200); merusak; } Serial.print("\n************************ FIN REPRODUCE ***************** \n "); penundaan (500); } } /*Serial.print("debut\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");*/
penundaan(100); } //*************************** FONCTIONS****************** ******************
word recevoir() { // fonction permettant de recevoir l'information du smartphone
if (Serial.available()) { w = Serial.read();
Serial.flush();
kembali w; }}
void goto_moteur(int angle_destination)
{ while (angle_destination angle+step_angle) { Serial.print(" \n --------------* * * * * *-------------- ----\n"); Serial.print("angle_destination = \t "); Serial.print(angle_destination); Serial.print("\n angle1 = \t ");Serial.print(sudut); if(angle_destination angle +step_angle){ angle = angle + step_angle;moteur.write(angle);} delay(100); } moteur.write(angle_destination); } void goto_moteur1(int angle_destination) { while (angle_destination angle1+step_angle) { Serial.print(" \n --------------* * * * * *------- -----------\n"); Serial.print("angle_destination = \t "); Serial.print(angle_destination); Serial.print("\n angle2 = \t ");Serial.print(angle1); if(sudut_tujuan sudut1 +sudut_langkah){sudut1 += sudut_langkah; moteur1.write(angle1);;} delay(100); } moteur1.write(angle_destination); } batal goto_moteur2(int angle_destination) {
while (sudut_tujuan sudut2+sudut_langkah)
{ Serial.print(" \n --------------* * * * * *------------------\n"); Serial.print("angle_destination = \t "); Serial.print(angle_destination); Serial.print("\n angle3 = \t ");Serial.print(angle2); if(angle_destination angle2 +step_angle){angle2+=step_angle; moteur2.write(angle2);} delay(100); } moteur2.write(angle_destination); } batal goto_moteur3(int angle_destination) {
while (sudut_tujuan sudut3+sudut_langkah)
{ Serial.print(" \n --------------* * * * * *------------------\n"); Serial.print("angle_destination = \t "); Serial.print(angle_destination); Serial.print("\n angle4 = \t ");Serial.print(angle3); if(angle_destination angle3 +step_angle){angle3+=step_angle; moteur3.write(angle3);} delay(100); } moteur3.write(angle_destination); } batal goto_moteur5(int angle_destination) {
while (sudut_tujuan sudut5+sudut_langkah)
{ Serial.print(" \n --------------* * * * * *------------------\n"); Serial.print("angle_destination = \t "); Serial.print(angle_destination); Serial.print("\n angle5 = \t ");Serial.print(angle5); if(angle_destination angle5 +step_angle){angle5+=step_angle; moteur5.write(angle5);} delay(100); } moteur5.write(angle_destination); }
void TouchDown_Release() // Pelepasan Tombol TouchDown
{ if (angle5 < 180) { angle5 = angle5+step_angle_mini; } moteur5.write(sudut5); }
void TouchDown_Grab() // Ambil Tombol TouchDown
{ if (angle5 > 0) { angle5 = angle5-step_angle_mini; } moteur5.write(sudut5); } void Base_Rotation() { if (sudut 0) { angle = angle-step_angle; } sudut lain =0; moteur.tulis(sudut); } void Pinggang_Rotation() { if (angle1 20) { angle1 = angle1-step_angle; } lain sudut1 = 20; moteur1.tulis(sudut1); } void Third_Arm_Rotation() { if (angle2 0) { angle2 = angle2-step_angle; } moteur2.write(angle2); } void Fourth_Arm_Rotation() { if (angle3 = 0) { angle3 = angle3-step_angle_mini; } moteur3.write(sudut3); }
Langkah 6: Itu Saja
Terima kasih telah menonton, saya harap Anda menghargai!
Jika Anda menyukai Instruksi ini, Anda pasti dapat mengunjungi kami untuk lebih banyak lagi! =)
Direkomendasikan:
Kedatangan Lengan Robot Cerdas: 3 Langkah
![Kedatangan Lengan Robot Cerdas: 3 Langkah Kedatangan Lengan Robot Cerdas: 3 Langkah](https://i.howwhatproduce.com/images/002/image-5038-j.webp)
Kedatangan Lengan Robot Cerdas: Berjabat tangan dengan tamu, membicarakan hal-hal, makan dan sebagainya hal-hal biasa ini, untuk kesehatan hidup kita ada di hal-hal biasa, tetapi bagi sebagian orang istimewa, itu adalah mimpi. Beberapa orang spesial yang saya sebutkan adalah orang-orang cacat yang telah kehilangan
Nyalakan Ponsel / Ponsel Dengan Baterai Eksternal atau Listrik.: 3 Langkah
![Nyalakan Ponsel / Ponsel Dengan Baterai Eksternal atau Listrik.: 3 Langkah Nyalakan Ponsel / Ponsel Dengan Baterai Eksternal atau Listrik.: 3 Langkah](https://i.howwhatproduce.com/images/002/image-5260-29-j.webp)
Nyalakan Ponsel/Ponsel Dengan Baterai Eksternal atau Listrik.: Pendahuluan. Ide ini hanya akan bekerja dengan ponsel atau tablet jika baterainya dapat dilepas. Mengamati polaritas itu penting, tentu saja. Harap berhati-hati untuk tidak merusak perangkat Anda karena kecerobohan. Jika Anda tidak yakin dengan kemampuan Anda untuk melakukan ini
Buat Aplikasi Sederhana untuk Ponsel Cerdas Anda (Tidak Perlu Pengodean): 10 Langkah
![Buat Aplikasi Sederhana untuk Ponsel Cerdas Anda (Tidak Perlu Pengodean): 10 Langkah Buat Aplikasi Sederhana untuk Ponsel Cerdas Anda (Tidak Perlu Pengodean): 10 Langkah](https://i.howwhatproduce.com/images/002/image-5635-53-j.webp)
Membuat Aplikasi Sederhana untuk Ponsel Cerdas Anda (Tidak Perlu Pengodean): UPDATE: Teknik ini sudah usang, sekarang ada berbagai cara lain untuk membuat aplikasi.. ini mungkin tidak berfungsi lagi. Aplikasi pertama saya yang diterbitkan tersedia untuk diunduh di Aplikasi Android Pasar di sini. Berikut ini adalah tutorial singkat tentang cara praktis
Lengan Robot Sederhana & Cerdas Menggunakan Arduino !!!: 5 Langkah (dengan Gambar)
![Lengan Robot Sederhana & Cerdas Menggunakan Arduino !!!: 5 Langkah (dengan Gambar) Lengan Robot Sederhana & Cerdas Menggunakan Arduino !!!: 5 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/006/image-15831-11-j.webp)
Lengan Robot Sederhana & Cerdas Menggunakan Arduino !!!: Dalam instruksi ini saya akan membuat lengan robot sederhana. Itu akan dikendalikan menggunakan lengan master. Lengan akan mengingat gerakan dan bermain secara berurutan. Konsepnya tidak baru Saya mendapat Ide dari "lengan robot mini -oleh Stoerpeak" aku ingin
Tape Owns- Bagian 1: Ponsel Pelindung / Lengan Mp3: 12 Langkah
![Tape Owns- Bagian 1: Ponsel Pelindung / Lengan Mp3: 12 Langkah Tape Owns- Bagian 1: Ponsel Pelindung / Lengan Mp3: 12 Langkah](https://i.howwhatproduce.com/images/002/image-5273-68-j.webp)
Tape Owns- Bagian 1: Pelindung Ponsel / Mp3 Lengan: Buat lengan keren untuk iPod atau ponsel Anda yang akan melindunginya dari air, debu, dan semua hal jahat lainnya. Instruksi pertama- itu berarti tidak menyala: p