Obsah:
- Krok 1: Materiály
- Krok 2: 3D tlač robotického ramena
- Krok 3: Elektronická montáž
- Krok 4: Aplikácia pre smartphone
- Krok 5: Kód Arduino
- Krok 6: To je ono
![Hra s robotickým ramenom - ovládač pre smartfón: 6 krokov Hra s robotickým ramenom - ovládač pre smartfón: 6 krokov](https://i.howwhatproduce.com/images/010/image-28794-j.webp)
Video: Hra s robotickým ramenom - ovládač pre smartfón: 6 krokov
![Video: Hra s robotickým ramenom - ovládač pre smartfón: 6 krokov Video: Hra s robotickým ramenom - ovládač pre smartfón: 6 krokov](https://i.ytimg.com/vi/yyMpeDNx_OI/hqdefault.jpg)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
![Hra s robotickým ramenom - ovládač pre smartfón Hra s robotickým ramenom - ovládač pre smartfón](https://i.howwhatproduce.com/images/010/image-28794-1-j.webp)
Ahoj !
Tu je zábavná letná hra: Robotické rameno ovládané smartfónom !!
Ako vidíte na videu, rameno môžete ovládať pomocou niektorých joystickov na svojom smartfóne.
Môžete tiež uložiť vzor, ktorý robot bude reprodukovať v slučke, aby mohol napríklad vykonávať niektoré opakujúce sa úlohy. Ale tento vzor je modulovateľný, ako si želáte !!!!
Buď kreatívny !
Krok 1: Materiály
![Materiály Materiály](https://i.howwhatproduce.com/images/010/image-28794-2-j.webp)
Tu vidíte materiál, ktorý potrebujete.
Postavenie tohto robotického ramena vás bude stáť približne 50 €. Softvér a nástroje je možné nahradiť, ale na tento projekt som ich použil.
Krok 2: 3D tlač robotického ramena
![3D tlač robotického ramena 3D tlač robotického ramena](https://i.howwhatproduce.com/images/010/image-28794-3-j.webp)
![3D tlač robotického ramena 3D tlač robotického ramena](https://i.howwhatproduce.com/images/010/image-28794-4-j.webp)
![3D tlač robotického ramena 3D tlač robotického ramena](https://i.howwhatproduce.com/images/010/image-28794-5-j.webp)
Robotické rameno bolo vytlačené 3D (s naším prusa i3).
Vďaka webovej stránke „HowtoMechatronics.com“sú jeho súbory STL úžasné na vybudovanie 3D ramena.
Vytlačenie všetkých dielov bude trvať približne 20 hodín.
Krok 3: Elektronická montáž
![Elektronická montáž Elektronická montáž](https://i.howwhatproduce.com/images/010/image-28794-6-j.webp)
Montáž je rozdelená na 2 časti:
Elektronická časť, kde je arduino prepojené so servom pomocou digitálnych pinov a so zariadením Bluetooth (Rx, Tx).
Napájacia časť, kde sú serva napájané 2 telefónnymi nabíjačkami (5 V, 2 A max.).
Krok 4: Aplikácia pre smartphone
![Aplikácia pre smartfóny Aplikácia pre smartfóny](https://i.howwhatproduce.com/images/010/image-28794-7-j.webp)
Aplikácia bola vytvorená pomocou aplikácie App Inventor 2. Na ovládanie 4 serv a 2 ďalších tlačidiel používame 2 joysticky.
Rameno a smartphone prepojíme pomocou modulu Bluetooth (HC-06).
Nakoniec, šetriaci režim umožňuje užívateľovi uložiť až 9 pozícií pre rameno.
Rameno potom prejde do automatického režimu, kde bude reprodukovať uložené polohy.
Krok 5: Kód Arduino
![Arduino kód Arduino kód](https://i.howwhatproduce.com/images/010/image-28794-8-j.webp)
![Arduino kód Arduino kód](https://i.howwhatproduce.com/images/010/image-28794-9-j.webp)
// 08/19 - Robotické rameno Ovládané smartfónom
#include #define TRUE true #define FALSE false // ********************* VYHLÁSENIA ***************** ***********
slovo rep; // mot envoyé du module Arduino au smartphone
int chiffre_final = 0; int cmd = 3; // premenná commande du servo moteur (troisième fil (orange, 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; Servopohon; // on définit notre servomoteur Servo moteur1; Servo moteur2; Servo moteur3; // Servo moteur4; Servo moteur5; int step_angle_mini = 4; int step_angle = 3; int uhol, uhol1, uhol3, uhol5, uhol2; // uhol int pas; int r, r1, r2, r3; int registrátor; booleovská plutva = NEPRAVDA; booleovská fin1 = NEPRAVDA; booleovský fin2 = NEPRAVDA; booleovský fin3 = NEPRAVDA; booleovská fin4 = NEPRAVDA; slovo w; // premenná envoyé du smartphone 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 uhol; // uhol natočenia (0 a 180)
//********************NASTAVIŤ*************************** ******** neplatné nastavenie () {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 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); uhol = 6; moteur1.write (100); uhol1 = 100; moteur2.write (90); moteur3.write (90); //moteur4.write(12); moteur5.write (90); uhol = 6; uhol1 = 100; uhol2 = 90; uhol3 = 90; uhol5 = 90; Serial.begin (9600); // modul komunikátoru Bluetooth} // ******************* BOUCLE ****************** ***************** prázdna slučka () {
// Serial.print ("uhol");
//Serial.print(angle);Serial.print ("\ t"); Serial.print (angle1); Serial.print ("\ t"); Serial.print (angle2); Serial.print ("\ t "); Serial.print (uhol3); Serial.print (" / t "); Serial.print (uhol5); Serial.print (" / n ");
//Serial.print("angle ");
int i; w = príjemca (); // na vašom smartfóne nie sú k dispozícii žiadne informácie, premenná w prepínač (w) {prípad 1: TouchDown_Release (); break; prípad 2: TouchDown_Grab (); break; prípad 3: Base_Rotation (); break; prípad 4: Base_AntiRotation (); break; prípad 5: Waist_Rotation (); break; prípad 6: Waist_AntiRotation (); break; prípad 7: Third_Arm_Rotation (); break; prípad 8: Third_Arm_AntiRotation (); break; prípad 9: Fourth_Arm_Rotation (); break; prípad 10: Fourth_Arm_AntiRotation (); break; // prípad 11: Fifth_Arm_Rotation (); break; // prípad 12: Fifth_Arm_AntiRotation (); break; prípad 21: Serial.print ("tlačidlo prípadu 1"); chiffre_final = 1; sauvegarde_positions1 [0] = uhol; sauvegarde_positions1 [1] = uhol1; sauvegarde_positions1 [2] = uhol2; sauvegarde_positions1 [3] = uhol3; [sauvegard_ = uhol5; Serial.println (sauvegarde_positions1 [1]); Serial.println (sauvegarde_positions1 [2]); Serial.println (sauvegarde_positions1 [3]); Serial.println (sauvegarde_positions1 [4]); prestávka; prípad 22: chiffre_final = 2; sauvegarde_positions2 [0] = uhol; sauvegarde_positions2 [1] = uhol1; sauvegarde_positions2 [2] = uhol2; sauvegarde_positions2 [3] = uhol3; sauvegarde_positions2 [4] = uhol5; prestávka; prípad 23: chiffre_final = 3; sauvegarde_positions3 [0] = uhol; sauvegarde_positions3 [1] = uhol1; sauvegarde_positions3 [2] = uhol2; sauvegarde_positions3 [3] = uhol3; sauvegarde_positions3 [4] = uhol5; prípad 24: chiffre_final = 4; sauvegarde_positions4 [0] = uhol; sauvegarde_positions4 [1] = uhol1; sauvegarde_positions4 [2] = uhol2; sauvegarde_positions4 [3] = uhol3; sauvegarde_positions4 [4] = uhol5; prestávka; prípad 25: chiffre_final = 5; sauvegarde_positions5 [0] = uhol; sauvegarde_positions5 [1] = uhol1; sauvegarde_positions5 [2] = uhol2; sauvegarde_positions5 [3] = uhol3; sauvegarde_positions5 [4] = uhol5; prestávka; prípad 26: chiffre_final = 6; sauvegarde_positions6 [0] = uhol; sauvegarde_positions6 [1] = uhol1; sauvegarde_positions6 [2] = uhol2; sauvegarde_positions6 [3] = uhol3; sauvegarde_positions6 [4] = uhol5; prestávka; prípad 27: chiffre_final = 7; sauvegarde_positions7 [0] = uhol; sauvegarde_positions7 [1] = uhol1; sauvegarde_positions7 [2] = uhol2; sauvegarde_positions7 [3] = uhol3; sauvegarde_positions7 [4] = uhol5; prestávka; prípad 28: chiffre_final = 8; sauvegarde_positions8 [0] = uhol; sauvegarde_positions8 [1] = uhol1; sauvegarde_positions8 [2] = uhol2; sauvegarde_positions8 [3] = uhol3; sauvegarde_positions8 [4] = uhol5; prestávka; prípad 29: chiffre_final = 9; sauvegarde_positions9 [0] = uhol; sauvegarde_positions9 [1] = uhol1; sauvegarde_positions9 [2] = uhol2; sauvegarde_positions9 [3] = uhol3; sauvegarde_positions9 [4] = uhol5; prestávka;
prípad 31: Serial.print ("31"); activate_saving = 1; chiffre_final = 0; break; // ZAČNITE
prípad 33: Serial.print ("33"); activate_saving = 0; break; // BUTTON SAVE default: break; } if (w == 32) {Serial.print ("\ nReproduce / nChiffre final:"); Serial.print (chiffre_final); Serial.print ("\ n pozícia Sauvegarde 1: / n"); for (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions1 ); Serial.print ("\ t");} Serial.print ("\ n Sauvegarde position 2: / n"); for (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions2 ); Serial.print ("\ t");} Serial.print ("\ n Sauvegarde position 3: / n"); for (i = 0; i <5; i ++) {Serial.print (sauvegarde_positions3 ); Serial.print ("\ t");} for (i = 1; i <= chiffre_final; i ++) {Serial. vytlačiť ("\ n / n ZAČAŤ / nSlučka:"); Serial.print (i); Serial.print ("\ n"); prepínač (i) {prípad 1: goto_moteur (*(sauvegarde_positions1)); oneskorenie (200); goto_moteur1 (*(sauvegarde_positions1+1)); oneskorenie (200); goto_moteur2 (*(sauvegarde_positions1+2)); delay (200); goto_moteur3 (*(sauvegarde_positions1+3)); oneskorenie (200); goto_moteur5 (*(sauvegarde_positions1+4)); delay (200); prestávka; prípad 2: goto_moteur (*(sauvegarde_positions2)); delay (200); goto_moteur1 (*(sauvegarde_positions2+1)); oneskorenie (200); goto_moteur2 (*(sauvegarde_positions2+2)); delay (200); goto_moteur3 (*(sauvegarde_positions2+3)); oneskorenie (200); goto_moteur5 (*(sauvegarde_positions2+4)); delay (200); prestávka; prípad 3: goto_moteur (*(sauvegarde_positions3)); delay (200); goto_moteur1 (*(sauvegarde_positions3+1)); oneskorenie (200); goto_moteur2 (*(sauvegarde_positions3+2)); delay (200); goto_moteur3 (*(sauvegarde_positions3+3)); oneskorenie (200); goto_moteur5 (*(sauvegarde_positions3+4)); delay (200); prestávka; prípad 4: goto_moteur (*(sauvegarde_positions4)); delay (200); goto_moteur1 (*(sauvegarde_positions4+1)); oneskorenie (200); goto_moteur2 (*(sauvegarde_positions4+2)); delay (200); goto_moteur3 (*(sauvegarde_positions4+3)); oneskorenie (200); goto_moteur5 (*(sauvegarde_positions4+4)); delay (200); prestávka; prípad 5: goto_moteur (*(sauvegarde_positions5)); oneskorenie (200); goto_moteur1 (*(sauvegarde_positions5+1)); oneskorenie (200); goto_moteur2 (*(sauvegarde_positions5+2)); delay (200); goto_moteur3 (*(sauvegarde_positions5+3)); oneskorenie (200); goto_moteur5 (*(sauvegarde_positions5+4)); delay (200); prestávka; prípad 6: goto_moteur (*(sauvegarde_positions6)); delay (200); goto_moteur1 (*(sauvegarde_positions6+1)); oneskorenie (200); goto_moteur2 (*(sauvegarde_positions6+2)); delay (200); goto_moteur3 (*(sauvegarde_positions6+3)); oneskorenie (200); goto_moteur5 (*(sauvegarde_positions6+4)); delay (200); prestávka; prípad 7: goto_moteur (*(sauvegarde_positions7)); oneskorenie (200); goto_moteur1 (*(sauvegarde_positions7+1)); oneskorenie (200); goto_moteur2 (*(sauvegarde_positions7+2)); delay (200); goto_moteur3 (*(sauvegarde_positions7+3)); oneskorenie (200); goto_moteur5 (*(sauvegarde_positions7+4)); delay (200); prestávka; prípad 8: goto_moteur (*(sauvegarde_positions8)); oneskorenie (200); goto_moteur1 (*(sauvegarde_positions8+1)); oneskorenie (200); goto_moteur2 (*(sauvegarde_positions8+2)); delay (200); goto_moteur3 (*(sauvegarde_positions8+3)); oneskorenie (200); goto_moteur5 (*(sauvegarde_positions8+4)); delay (200); prestávka; prípad 9: goto_moteur (*(sauvegarde_positions9)); oneskorenie (200); goto_moteur1 (*(sauvegarde_positions9+1)); oneskorenie (200); goto_moteur2 (*(sauvegarde_positions9+2)); delay (200); goto_moteur3 (*(sauvegarde_positions9+3)); oneskorenie (200); goto_moteur5 (*(sauvegarde_positions9+4)); delay (200); prestávka; } Serial.print ("\ n ************************ FIN REPRODUCE ***************** / n "); oneskorenie (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");*/
oneskorenie (100); } // ********************************************************************** ******************
word recevoir () {// typ permettant de recevoir l'information du smartphone
if (Serial.available ()) {w = Serial.read ();
Serial.flush ();
návrat w; }}
neplatné goto_moteur (vnútorný uhol_cielenia)
{while (uhol_ciel uhol+krok_angle) {Serial.print ("\ n -------------- * * * * * * * -------------- ---- / n "); Serial.print ("angle_destination = / t"); Serial.print (uhol_destinácie); Serial.print ("\ n angle1 = / t"); Serial.print (uhol); if (uhol_ciel uhol + krok_angle) {uhol = uhol + krok_angle; moteur.write (uhol);} oneskorenie (100); } moteur.write (uhol_cielenia); } void goto_moteur1 (int angle_destination) {while (angle_destination angle1+step_angle) {Serial.print ("\ n -------------- * * * * * * * ------- ----------- / n "); Serial.print ("angle_destination = / t"); Serial.print (uhol_destinácie); Serial.print ("\ n uhol2 = / t"); Serial.print (uhol1); if (uhol_ciel uhol1 +krok_angle) {uhol1 += krok_angle; moteur1.write (uhol1);;} oneskorenie (100); } moteur1.write (uhol_cielenia); } void goto_moteur2 (int angle_destination) {
while (uhol_ciel uhol2+krok_angle)
{Serial.print ("\ n -------------- * * * * * * * ------------------ / n"); Serial.print ("angle_destination = / t"); Serial.print (uhol_destinácie); Serial.print ("\ n angle3 = / t"); Serial.print (uhol2); if (uhol_cieľový uhol2 +step_angle) {angle2 += step_angle; moteur2.write (uhol2);} oneskorenie (100); } moteur2.write (uhol_cielenia); } void goto_moteur3 (int angle_destination) {
while (uhol_ciel uhol 3+krok_angle)
{Serial.print ("\ n -------------- * * * * * * * ------------------ / n"); Serial.print ("angle_destination = / t"); Serial.print (uhol_destinácie); Serial.print ("\ n angle4 = / t"); Serial.print (uhol3); if (uhol_ciel uhol3 +step_angle) {angle3 += step_angle; moteur3.write (uhol3);} oneskorenie (100); } moteur3.write (uhol_cielenia); } void goto_moteur5 (int angle_destination) {
while (uhol_ciel uhol 5+krok_angle)
{Serial.print ("\ n -------------- * * * * * * * ------------------ / n"); Serial.print ("angle_destination = / t"); Serial.print (uhol_destinácie); Serial.print ("\ n angle5 = / t"); Serial.print (uhol5); if (uhol_ciel uhol5 +step_angle) {angle5 += step_angle; moteur5.write (uhol5);} oneskorenie (100); } moteur5.write (uhol_cielenia); }
neplatné TouchDown_Release () // Uvoľnenie tlačidla TouchDown
{if (uhol5 <180) {uhol5 = uhol5+step_angle_mini; } moteur5.write (uhol5); }
neplatné TouchDown_Grab () // TouchDown Grab
{if (uhol5> 0) {uhol5 = uhol5-krok_angle_mini; } moteur5.write (uhol5); } neplatné Base_Rotation () {if (uhol 0) {uhol = uhol-krok_angle; } else uhol = 0; moteur.write (uhol); } neplatný Waist_Rotation () {if (uhol1 20) {uhol1 = uhol1-krok_angle; } else uhol1 = 20; moteur1.write (uhol1); } neplatné Third_Arm_Rotation () {if (uhol2 0) {uhol2 = uhol2-krok_angle; } moteur2.write (uhol2); } neplatné Fourth_Arm_Rotation () {if (angle3 = 0) {angle3 = angle3-step_angle_mini; } moteur3.write (uhol3); }
Krok 6: To je ono
Ďakujem za sledovanie, dúfam, že ste ocenili!
Ak sa vám páčil tento návod, určite nás môžete navštíviť pre viac! =)
Odporúča:
Aruduino LED hra Rýchle kliknutie Hra pre dvoch hráčov: 8 krokov
![Aruduino LED hra Rýchle kliknutie Hra pre dvoch hráčov: 8 krokov Aruduino LED hra Rýchle kliknutie Hra pre dvoch hráčov: 8 krokov](https://i.howwhatproduce.com/images/008/image-23209-j.webp)
Aruduino LED hra Rýchle kliknutie Hra pre dvoch hráčov: Tento projekt je inšpirovaný @HassonAlkeim. Ak ste ochotní sa podrobne pozrieť, tu je odkaz, ktorý si môžete pozrieť https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Táto hra je vylepšenou verziou hry Alkeim's. Jedná sa o
Kladková, robotická lampa s výkyvným ramenom: 6 krokov
![Kladková, robotická lampa s výkyvným ramenom: 6 krokov Kladková, robotická lampa s výkyvným ramenom: 6 krokov](https://i.howwhatproduce.com/images/010/image-29612-j.webp)
Robotická lampa s kyvným ramenom: Budete potrebovať: Náradie: -Nožnice na drôt -Píla -Ráčna alebo kľúč -Elektrická vŕtačka -Laserová rezačka (voliteľné) -Elektronika pištole na lepidlo: -2x hobby servomotory -Arduino/RaspberryPi/Elegoo súprava-modul na joystick alebo 2 potenciometreDodávky/iný materiál
4 robot s mechanickým ramenom DOF ovládaný Arduinom: 6 krokov
![4 robot s mechanickým ramenom DOF ovládaný Arduinom: 6 krokov 4 robot s mechanickým ramenom DOF ovládaný Arduinom: 6 krokov](https://i.howwhatproduce.com/images/004/image-9804-27-j.webp)
4 Robot s mechanickým ramenom DOF ovládaný Arduinom: Nedávno som kúpil túto sadu na aliexpress, ale nenašiel som návod, ktorý by sa k tomuto modelu hodil. Nakoniec to urobí takmer dvakrát a urobí veľa experimentov, aby zistil správne montážne uhly serva. Primeraná dokumentácia je, že
Statív pre domácich majstrov - Ako vyrobiť statív pre smartfón a fotoaparát z antény: 8 krokov
![Statív pre domácich majstrov - Ako vyrobiť statív pre smartfón a fotoaparát z antény: 8 krokov Statív pre domácich majstrov - Ako vyrobiť statív pre smartfón a fotoaparát z antény: 8 krokov](https://i.howwhatproduce.com/images/002/image-3103-123-j.webp)
Statív pre domácich majstrov | Ako vyrobiť statív pre smartfóny a fotoaparáty pomocou antény: Keď hľadám statív na vytváranie videí pre CookQueens, zistil som, že cena každého statívu za 5 stôp začína na veľmi vysokej úrovni na rôznych webových stránkach elektronického obchodu. Tiež čakám na zľavu, ale tú som nedostal. Potom som sa rozhodol urobiť m
Cenovo dostupné riešenie pre víziu s robotickým ramenom založeným na Arduine: 19 krokov (s obrázkami)
![Cenovo dostupné riešenie pre víziu s robotickým ramenom založeným na Arduine: 19 krokov (s obrázkami) Cenovo dostupné riešenie pre víziu s robotickým ramenom založeným na Arduine: 19 krokov (s obrázkami)](https://i.howwhatproduce.com/images/003/image-6590-19-j.webp)
Cenovo dostupné riešenie vízie s robotickým ramenom založeným na Arduine: Keď hovoríme o strojovom videní, vždy sa nám to zdá také nedosiahnuteľné. Vytvorili sme demo vízie s otvoreným zdrojovým kódom, ktoré by bolo veľmi jednoduché urobiť pre každého. V tomto videu s kamerou OpenMV robot bez ohľadu na to, kde je červená kocka,