![Robotik qo'l o'yini - Smartfon boshqaruvchisi: 6 qadam Robotik qo'l o'yini - Smartfon boshqaruvchisi: 6 qadam](https://i.howwhatproduce.com/images/010/image-28794-j.webp)
Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
![Robotik qo'l o'yini - Smartfon boshqaruvchisi Robotik qo'l o'yini - Smartfon boshqaruvchisi](https://i.howwhatproduce.com/images/010/image-28794-1-j.webp)
Salom !
Bu erda qiziqarli yozgi o'yin: Smartfon tomonidan boshqariladigan robot qo'l !!
Videodan ko'rinib turibdiki, siz qo'lingizni smartfoningizdagi bir nechta Joystiklar yordamida boshqarishingiz mumkin.
Siz, shuningdek, bir necha marta takrorlanadigan vazifalarni bajarish uchun, robot halqada takrorlanadigan naqshni saqlashingiz mumkin. Lekin bu naqsh siz xohlagancha modulyatsiya qilinadi !!!!
Ijodiy bo'ling!
1 -qadam: materiallar
![Materiallar Materiallar](https://i.howwhatproduce.com/images/010/image-28794-2-j.webp)
Bu erda siz kerakli materialni ko'rishingiz mumkin.
Ushbu robotli qurolni yaratish uchun sizga 50 evro kerak bo'ladi. Dasturiy ta'minot va asboblarni almashtirish mumkin, lekin men ularni ushbu loyiha uchun ishlatganman.
2 -qadam: Robot qo'lini 3D bosib chiqarish
![Robot qo'lini 3D bosib chiqarish Robot qo'lini 3D bosib chiqarish](https://i.howwhatproduce.com/images/010/image-28794-3-j.webp)
![Robot qo'lini 3D bosib chiqarish Robot qo'lini 3D bosib chiqarish](https://i.howwhatproduce.com/images/010/image-28794-4-j.webp)
![Robot qo'lini 3D bosib chiqarish Robot qo'lini 3D bosib chiqarish](https://i.howwhatproduce.com/images/010/image-28794-5-j.webp)
Robotik qo'l 3D bosilgan (bizning prusa i3 bilan).
"HowtoMechatronics.com" veb -sayti tufayli uning STL fayllari 3D qo'lini yaratish uchun ajoyib.
Barcha qismlarni chop etish uchun taxminan 20 soat vaqt ketadi.
3 -qadam: Elektron montaj
![Elektron montaj Elektron montaj](https://i.howwhatproduce.com/images/010/image-28794-6-j.webp)
Montaj 2 qismdan iborat:
Arduino servolarga raqamli pinlar va Bluetooth qurilmasi (Rx, Tx) ulangan elektron qism.
Quvvat qismi, bu erda servolar 2 ta telefon zaryadlovchi bilan quvvatlanadi (5V, 2A max).
4 -qadam: Smartfon ilovasi
![Smartfon uchun dastur Smartfon uchun dastur](https://i.howwhatproduce.com/images/010/image-28794-7-j.webp)
Ilova ixtirochi 2 -da qilingan. Biz 4 ta servo va 2 ta tugmachadan foydalanib, oxirgi ushlagichni boshqaramiz.
Biz Bluetooth moduli (HC-06) yordamida qo'l va smartfonni birlashtiramiz.
Nihoyat, tejash rejimi foydalanuvchiga Arm uchun 9 ta pozitsiyani saqlash imkonini beradi.
Keyin qo'l avtomatik rejimga o'tadi, u erda saqlangan pozitsiyalarni takrorlaydi.
5 -qadam: Arduino kodi
![Arduino kodi Arduino kodi](https://i.howwhatproduce.com/images/010/image-28794-8-j.webp)
![Arduino kodi Arduino kodi](https://i.howwhatproduce.com/images/010/image-28794-9-j.webp)
// 08/19 - Robotik qo'l smartfoni boshqariladi
#qo'shish #HAQIQIY rostni #aniqFALSE noto'g'ri // ******************** E'LONLAR ***************** ***********
so'z vakili; // Arduino yoki smartfonning modulli vakili
int chiffre_final = 0; int cmd = 3; // o'zgaruvchan buyruqlar servo moteur (troisième fil (to'q sariq, sariq)) int cmd1 = 5; // servo1 int cmd2 = 9; // servo2 int cmd3 = 10; // servo3 // int cmd4 = 10; // servo4 int cmd5 = 11; // pince int activate_saving = 0; Servo moteur; // on définit notre servomoteur Servo moteur1; Servo moteur2; Servo moteur3; // Servo moteur4; Servo moteur5; int qadam_angle_mini = 4; int qadam_angle = 3; int burchak, burchak1, burchak3, burchak5, burchak2; // burchak int pas; int r, r1, r2, r3; int registrer; mantiqiy fin = FALSE; boolean fin1 = FALSE; mantiqiy fin2 = FALSE; boolean fin3 = FALSE; boolean fin4 = FALSE; so'z w; // Arduino int sauvegarde_positions1 modulining o'zgaruvchan vakili [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 burchagi; // burilish burchagi (0 dan 180 gacha)
//********************SOZLASH*************************** ******** 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); // on l'objet au pin de commande moteur1.attach (cmd1); moteur2. biriktirish (cmd2); moteur3. biriktirish (cmd3); // moteur4.attach (cmd4); moteur5. biriktirish (cmd5); moteur.write (6); burchak = 6; moteur1.yozish (100); burchak1 = 100; moteur2.yozish (90); moteur3.yozish (90); //moteur4.write(12); moteur5.yozish (90); burchak = 6; burchak1 = 100; burchak2 = 90; burchak3 = 90; burchak 5 = 90; Serial.begin (9600); // Bluetooth modulini ulash uchun // // ******************** BOUCLE ****************** ***************** void loop () {
// Serial.print ("burchak");
//Serial.print(angle); Serial.print ("\ t"); Serial.print (burchak1); Serial.print ("\ t"); Serial.print (burchak2); Serial.print ("\ t) "); Serial.print (burchak 3); Serial.print (" / t "); Serial.print (burchak5); Seriyali bosma (" / n ");
//Serial.print("angle ");
int i; w = recevoir (); // smartfon haqida hech qanday ma'lumot yo'q, w o'zgaruvchisi o'zgaradi (w) {1 -holat: TouchDown_Release (); break; 2 -holat: TouchDown_Grab (); tanaffus; 3 -holat: Base_Rotation (); tanaffus; 4 -holat: Base_AntiRotation (); tanaffus; 5 -holat: Waist_Rotation (); tanaffus; 6 -holat: Waist_AntiRotation (); tanaffus; 7 -holat: Third_Arm_Rotation (); tanaffus; 8 -holat: Third_Arm_AntiRotation (); tanaffus; 9 -holat: Fourth_Arm_Rotation (); tanaffus; 10 -holat: Fourth_Arm_AntiRotation (); tanaffus; // 11 -holat: Fifth_Arm_Rotation (); break; // 12 -holat: Fifth_Arm_AntiRotation (); break; 21 -holat: Serial.print ("katta tugma 1"); chiffre_final = 1; sauvegarde_positions1 [0] = burchak; sauvegarde_pozitions1 [1] = burchak1; sauvegarde_pozitions1 [2] = burchak2; sauvegarde_pozisyonlar1 [3] = 1 burchak [3] = 3] = burchak5; Serial.println (sauvegarde_pozitions1 [1]); Serial.println (sauvegarde_positions1 [2]); Serial.println (sauvegarde_positions1 [3]); Serial.println (sauvegarde_positions1 [4]; tanaffus; 22 -holat: chiffre_final = 2; sauvegarde_positions2 [0] = burchak; sauvegarde_pozitions2 [1] = burchak1; sauvegarde_pozitions2 [2] = burchak2; sauvegarde_pozitsiyalar2 [3] = burchak 3; sauvegarde_positions2 [4] tanaffus; 23 -holat: chiffre_final = 3; sauvegarde_positions3 [0] = burchak; sauvegarde_pozitions3 [1] = burchak1; sauvegarde_positions3 [2] = burchak2; sauvegarde_pozitsiyalar3 [3] = burchak 3; sauvegarde_pozisyonlar3 [4] 24 -holat: chiffre_final = 4; sauvegarde_positions4 [0] = burchak; sauvegarde_pozitions4 [1] = burchak1; sauvegarde_positions4 [2] = burchak2; sauvegarde_pozits4 [3] = burchak 3; sauvegarde_pozisyonlar4 [4] tanaffus; 25 -holat: chiffre_final = 5; sauvegarde_positions5 [0] = burchak; sauvegarde_pozitions5 [1] = burchak1; sauvegarde_pozitions5 [2] = burchak2; sauvegarde_pozits5 [3] = burchak 3; sauvegarde_pozisyonlar5 [4] tanaffus; 26 -holat: chiffre_final = 6; sauvegarde_positions6 [0] = burchak; sauvegarde_pozitions6 [1] = burchak1; sauvegarde_positions6 [2] = burchak2; sauvegarde_pozits6 [3] = burchak 3; sauvegarde_positions6 [4] tanaffus; 27 -holat: chiffre_final = 7; sauvegarde_positions7 [0] = burchak; sauvegarde_positions7 [1] = burchak1; sauvegarde_pozitions7 [2] = burchak2; sauvegarde_pozits7 [3] = burchak 3; sauvegarde_pozisyonlar7 [4] tanaffus; 28 -holat: chiffre_final = 8; sauvegarde_positions8 [0] = burchak; sauvegarde_positions8 [1] = burchak1; sauvegarde_positions8 [2] = burchak2; sauvegarde_pozits8 [3] = burchak 3; sauvegarde_pozisyonlar8 [4] tanaffus; 29 -holat: chiffre_final = 9; sauvegarde_positions9 [0] = burchak; sauvegarde_positions9 [1] = burchak1; sauvegarde_positions9 [2] = burchak2; sauvegarde_pozits9 [3] = burchak 3; sauvegarde_pozisyonlar9 [4] tanaffus;
31 -holat: Serial.print ("31"); activate_saving = 1; chiffre_final = 0; tanaffus; // BOSHLASH
33 -holat: Serial.print ("33"); activate_saving = 0; break; // BUTTON SAVE standart: tanaffus; } if (w == 32) {Serial.print ("\ nReproduce / nChiffre final:"); Serial.print (chiffre_final); Serial.print ("\ n Sauvegarde pozitsiyasi 1: / n"); for (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions1 ); Serial.print ("\ t");} Serial.print ("\ n Sauvegarde pozitsiyasi 2: / n"); for (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions2 ); Serial.print ("\ t");} Serial.print ("\ n Sauvegarde pozitsiyasi 3: / n"); uchun (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions3 ); Serial.print ("\ t");} uchun (i = 1; i <= chiffre_final; i ++) {Seriya. chop etish ("\ n / n BEGIN / nDoop:"); Serial.print (i); Serial.print ("\ n"); switch (i) {1 -holat: goto_moteur (*(sauvegarde_positions1)); kechikish (200); goto_moteur1 (*(sauvegarde_positions1+1)); kechikish (200); goto_moteur2 (*(sauvegarde_positions1+2)); kechikish (200); goto_moteur3 (*(sauvegarde_positions1+3)); kechikish (200); goto_moteur5 (*(sauvegarde_positions1+4)); kechikish (200); tanaffus; 2 -holat: goto_moteur (*(sauvegarde_positions2)); kechikish (200); goto_moteur1 (*(sauvegarde_positions2+1)); kechikish (200); goto_moteur2 (*(sauvegarde_positions2+2)); kechikish (200); goto_moteur3 (*(sauvegarde_positions2+3)); kechikish (200); goto_moteur5 (*(sauvegarde_positions2+4)); kechikish (200); tanaffus; 3 -holat: goto_moteur (*(sauvegarde_positions3)); kechikish (200); goto_moteur1 (*(sauvegarde_positions3+1)); kechikish (200); goto_moteur2 (*(sauvegarde_positions3+2)); kechikish (200); goto_moteur3 (*(sauvegarde_positions3+3)); kechikish (200); goto_moteur5 (*(sauvegarde_positions3+4)); kechikish (200); tanaffus; 4 -holat: goto_moteur (*(sauvegarde_positions4)); kechikish (200); goto_moteur1 (*(sauvegarde_positions4+1)); kechikish (200); goto_moteur2 (*(sauvegarde_positions4+2)); kechikish (200); goto_moteur3 (*(sauvegarde_positions4+3)); kechikish (200); goto_moteur5 (*(sauvegarde_positions4+4)); kechikish (200); tanaffus; 5 -holat: goto_moteur (*(sauvegarde_positions5)); kechikish (200); goto_moteur1 (*(sauvegarde_positions5+1)); kechikish (200); goto_moteur2 (*(sauvegarde_positions5+2)); kechikish (200); goto_moteur3 (*(sauvegarde_positions5+3)); kechikish (200); goto_moteur5 (*(sauvegarde_positions5+4)); kechikish (200); tanaffus; 6 -holat: goto_moteur (*(sauvegarde_positions6)); kechikish (200); goto_moteur1 (*(sauvegarde_positions6+1)); kechikish (200); goto_moteur2 (*(sauvegarde_positions6+2)); kechikish (200); goto_moteur3 (*(sauvegarde_positions6+3)); kechikish (200); goto_moteur5 (*(sauvegarde_positions6+4)); kechikish (200); tanaffus; 7 -holat: goto_moteur (*(sauvegarde_positions7)); kechikish (200); goto_moteur1 (*(sauvegarde_positions7+1)); kechikish (200); goto_moteur2 (*(sauvegarde_positions7+2)); kechikish (200); goto_moteur3 (*(sauvegarde_positions7+3)); kechikish (200); goto_moteur5 (*(sauvegarde_positions7+4)); kechiktirish (200); tanaffus; 8 -holat: goto_moteur (*(sauvegarde_positions8)); kechikish (200); goto_moteur1 (*(sauvegarde_positions8+1)); kechikish (200); goto_moteur2 (*(sauvegarde_positions8+2)); kechikish (200); goto_moteur3 (*(sauvegarde_positions8+3)); kechikish (200); goto_moteur5 (*(sauvegarde_positions8+4)); kechikish (200); tanaffus; 9 -holat: goto_moteur (*(sauvegarde_positions9)); kechikish (200); goto_moteur1 (*(sauvegarde_positions9+1)); kechikish (200); goto_moteur2 (*(sauvegarde_positions9+2)); kechikish (200); goto_moteur3 (*(sauvegarde_positions9+3)); kechikish (200); goto_moteur5 (*(sauvegarde_positions9+4)); kechikish (200); tanaffus; } Serial.print ("\ n *********************** FIN TAVRIMI ***************** / n "); kechikish (500); }} /*Serial.print ("debyut / 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");*/
kechikish (100); } // ***************************** XUSUSIYATLARI ****************** ******************
word recevoir () {// fonction permettant de recevoir l'informatsion smartfon
if (Serial.available ()) {w = Serial.read ();
Serial.flush ();
qaytish w; }}
void goto_moteur (int angle_destination)
{while (burchakni belgilash burchagi+qadam_burchak) {Serial.print ("\ n -------------- * * * * * * -------------- ---- / n "); Serial.print ("burchak_destinatsiyasi = / t"); Ketma -ket chop etish (burchakni belgilash); Serial.print ("\ n burchak1 = / t"); Seriyali bosma (burchak); if (burchak_dasturatsiya burchagi + qadam_burchak) {burchak = burchak + qadam_burchak; moteur.yozish (burchak);} kechikish (100); } moteur.write (burchakni belgilash); } void goto_moteur1 (int angle_destination) {while (burchak_destination burchak1+qadam_burchak) {Serial.print ("\ n -------------- * * * * * * ------- ----------- / n "); Serial.print ("burchak_destinatsiyasi = / t"); Ketma -ket chop etish (burchakni belgilash); Serial.print ("\ n burchak2 = / t"); Seriyali bosma (burchak1); agar (burchak_do'qlash burchagi1 +qadam_burchak) {burchak1 += qadam_burchak; moteur1.yozish (burchak1);;} kechiktirish (100); } moteur1.yozish (burchakni belgilash); } void goto_moteur2 (int angle_destination) {
vaqt (burchak_tashrif burchagi2+qadam_burchak)
{Serial.print ("\ n -------------- * * * * * * ------------------ / n"); Serial.print ("burchak_destinatsiyasi = / t"); Ketma -ket chop etish (burchakni belgilash); Serial.print ("\ n burchak3 = / t"); Seriyali bosma (burchak2); if (burchak_destination burchak2 +qadam_burchak) {burchak2 += qadam_burchak; moteur2.yozish (burchak2);} kechiktirish (100); } moteur2.yozish (burchakni belgilash); } void goto_moteur3 (int angle_destination) {
esa (burchakni belgilash burchagi3+qadam_burchak)
{Serial.print ("\ n -------------- * * * * * * ------------------ / n"); Serial.print ("burchak_destinatsiyasi = / t"); Ketma -ket chop etish (burchakni belgilash); Serial.print ("\ n burchak4 = / t"); Seriyali chop etish (burchak3); agar (burchak_do'qlash burchagi3 +qadam_burchak) {burchak3 += qadam_burchak; moteur3.yozish (burchak3);} kechiktirish (100); } moteur3.yozish (burchakni belgilash); } void goto_moteur5 (int angle_destination) {
esa (burchak_datilish burchagi5+qadam_burchak)
{Serial.print ("\ n -------------- * * * * * * ------------------ / n"); Serial.print ("burchak_destinatsiyasi = / t"); Ketma -ket chop etish (burchakni belgilash); Serial.print ("\ n burchak5 = / t"); Seriyali bosma (burchak5); agar (burchak_do'qlash burchagi5 +qadam_burchak) {burchak5 += qadam_burchak; moteur5.yozish (burchak5);} kechiktirish (100); } moteur5.yozish (burchakni belgilash); }
TouchDown_Release () // TouchDown tugmalarini bo'shatish
{if (burchak5 <180) {burchak5 = burchak5+qadam_angle_mini; } moteur5.yozish (burchak5); }
TouchDown_Grab () // TouchDown tugmachasini bosish
{agar (burchak5> 0) {burchak5 = burchak5-qadam_angle_mini; } moteur5.yozish (burchak5); } void Base_Rotation () {if (burchak 0) {burchak = burchak-qadam_burchak; } boshqa burchak = 0; moteur.yozish (burchak); } bo'sh Waist_Rotation () {if (burchak1 20) {burchak1 = burchak1-qadam_burchak; } boshqa burchak1 = 20; moteur1.yozish (burchak1); } void Third_Arm_Rotation () {if (burchak2 0) {burchak2 = burchak2-qadam_burchak; } moteur2.yozish (burchak2); } bekor Fourth_Arm_Rotation () {if (burchak3 = 0) {burchak3 = burchak3-qadam_angle_mini; } moteur3.yozish (burchak3); }
6 -qadam: Bu shunday
Ko'rganingiz uchun tashakkur, umid qilamanki, siz baholaysiz!
Agar sizga ushbu ko'rsatma yoqqan bo'lsa, biz bilan ko'proq tanishishingiz mumkin! =)
Tavsiya:
O'zgaruvchan vosita tezligi boshqaruvchisi: 8 qadam
![O'zgaruvchan vosita tezligi boshqaruvchisi: 8 qadam O'zgaruvchan vosita tezligi boshqaruvchisi: 8 qadam](https://i.howwhatproduce.com/preview/how-it-works/10004481-variable-motor-speed-controller-8-steps-0.webp)
O'zgaruvchan vosita tezligi boshqaruvchisi: Ushbu loyihada men sizga Dvigatel tezligini boshqarish moslamasini qanday yaratganimni ko'rsataman & Men IC 555 yordamida o'zgaruvchan dvigatel tezligini boshqarish moslamasini yaratish qanchalik osonligini ko'rsataman. Keling, boshlaylik
Tugma bilan ishlaydigan qadam boshqaruvchisi: 4 qadam
![Tugma bilan ishlaydigan qadam boshqaruvchisi: 4 qadam Tugma bilan ishlaydigan qadam boshqaruvchisi: 4 qadam](https://i.howwhatproduce.com/images/008/image-23942-j.webp)
Tugma bilan ishlaydigan qadam boshqaruvchisi:
Arduino asosidagi DIY o'yin boshqaruvchisi - Arduino PS2 o'yin boshqaruvchisi - DIY Arduino Gamepad bilan Tekken o'ynash: 7 qadam
![Arduino asosidagi DIY o'yin boshqaruvchisi - Arduino PS2 o'yin boshqaruvchisi - DIY Arduino Gamepad bilan Tekken o'ynash: 7 qadam Arduino asosidagi DIY o'yin boshqaruvchisi - Arduino PS2 o'yin boshqaruvchisi - DIY Arduino Gamepad bilan Tekken o'ynash: 7 qadam](https://i.howwhatproduce.com/images/011/image-30363-j.webp)
Arduino asosidagi DIY o'yin boshqaruvchisi | Arduino PS2 o'yin boshqaruvchisi | DIY Arduino Gamepad bilan Tekken o'ynash: Salom bolalar, o'yin o'ynash har doim qiziqarli, lekin o'zingizning shaxsiy o'yiningiz bilan o'ynash yanada qiziqarli, shuning uchun biz ushbu qo'llanmada arduino pro micro yordamida o'yin boshqaruvchisi qilamiz
Arduino O'yin boshqaruvchisi + Birlik o'yini: 5 qadam
![Arduino O'yin boshqaruvchisi + Birlik o'yini: 5 qadam Arduino O'yin boshqaruvchisi + Birlik o'yini: 5 qadam](https://i.howwhatproduce.com/images/002/image-5572-10-j.webp)
Arduino Game Controller + Unity o'yini: Men sizga ko'rsatma beraman, qanday qilib birlikka ulanadigan arduino o'yin boshqaruvchisini yasash/dasturlash
ROS MoveIt Robotik Arm 2 -qism: Robot boshqaruvchisi: 6 qadam
![ROS MoveIt Robotik Arm 2 -qism: Robot boshqaruvchisi: 6 qadam ROS MoveIt Robotik Arm 2 -qism: Robot boshqaruvchisi: 6 qadam](https://i.howwhatproduce.com/images/006/image-15880-23-j.webp)
ROS MoveIt Robotik Arm 2-qism: Robot boshqaruvchisi: https://github.com/AIWintermuteAI/ros-moveit-arm.git Maqolaning avvalgi qismida biz robot qo'limiz uchun URDF va XACRO fayllarini yaratdik va RVIZ-ni ishga tushirdik. Simulyatsiya qilingan muhitda robot qo'li. Bu safar biz buni rea bilan qilamiz