Përmbajtje:
- Hapi 1: Pajisjet
- Hapi 2: Skedari i Imazhit të Diagramit të Qarkut
- Hapi 3: Shkrirja e skedarit të Diagramit të Qarkut
- Hapi 4: Kodi i Transmetuesit
- Hapi 5: Kodi i Marrësit
- Hapi 6: Dosjet INO
- Hapi 7: Lidhja e Bibliotekave
Video: Makinë me valë e kontrolluar me gjest: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:19
Në këtë tutorial ne do të mësojmë, si të bëjmë një makinë të kontrolluar me gjeste ose ndonjë robot. Ky projekt ka dy pjesë, një pjesë është njësi transmetuese dhe pjesa tjetër është njësi marrëse. Njësia e transmetuesit është montuar në të vërtetë në doreza dore dhe njësia e marrësit vendoset brenda një makine ose ndonjë roboti. Tani është koha për të bërë një makinë të bukur. Shkojme!
Hapi 1: Pajisjet
Njësia transmetuese
1. Arduino Nano.
2. Moduli i sensorit MPU6050.
3. Transmetues RF 433 MHz.
4. Çdo lloj 3 qelizash, bateri 11.1 volt (Këtu kam përdorur qelizë monedhe).
5. Vero-Board.
6. Doreza dore.
Njësia e Marrësit
1. Arduino Nano ose Arduino Uno.
2. Moduli i drejtuesit të motorit L298N.
3. Korniza e robotit me 4 rrota përfshirë motorët.
4. Marrës RF 433 RF.
5. Bateri 3-qelizore, 11.1 volt Li-po.
6. Vero-bord.
Të tjerët
1. Ngjitës Shkopinj dhe armë.
2. Telat e kërcyesit.
3. Vidhosës
4. Kit për saldim.
etj
Hapi 2: Skedari i Imazhit të Diagramit të Qarkut
Hapi 3: Shkrirja e skedarit të Diagramit të Qarkut
Hapi 4: Kodi i Transmetuesit
#përfshi
#përfshi
#përfshi
MPU6050 mpu6050 (Tela);
kohëmatës i gjatë = 0;
kontrollues char *;
void setup ()
{Serial.fillo (9600); Wire.begin (); mpu6050.filloj (); mpu6050.calcGyroOffsets (e vërtetë); vw_set_ptt_inverted (e vërtetë); // vw_set_tx_pin (10); vw_setup (4000); // shpejtësia e transferimit të të dhënave Kbps
}
lak void ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050. përditësim ();
nëse (milis () - kohëmatës> 1000)
{Serial.println ("============================================= =========== "); Serial.print ("temp:"); Serial.println (mpu6050.getTemp ()); Serial.print ("accX:"); Serial.print (mpu6050.getAccX ()); Serial.print ("\ taccY:"); Serial.print (mpu6050.getAccY ()); Serial.print ("\ taccZ:"); Serial.println (mpu6050.getAccZ ()); Serial.print ("gyroX:"); Serial.print (mpu6050.getGyroX ()); Serial.print ("\ tgyroY:"); Serial.print (mpu6050.getGyroY ()); Serial.print ("\ tgyroZ:"); Serial.println (mpu6050.getGyroZ ()); Serial.print ("accAngleX:"); Serial.print (mpu6050.getAccAngleX ()); Serial.print ("\ taccAngleY:"); Serial.println (mpu6050.getAccAngleY ()); Serial.print ("gyroAngleX:"); Serial.print (mpu6050.getGyroAngleX ()); Serial.print ("\ tgyroAngleY:"); Serial.print (mpu6050.getGyroAngleY ()); Serial.print ("\ tgyroAngleZ:"); Serial.println (mpu6050.getGyroAngleZ ()); Serial.print ("angleX:"); Serial.print (mpu6050.getAngleX ()); Serial.print ("\ tangleY:"); Serial.print (mpu6050.getAngleY ()); Serial.print ("\ tangleZ:"); Serial.println (mpu6050.getAngleZ ()); Serial.println ("============================================== ========== / n "); kohëmatësi = milis (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {kontrollues = "X2"; vw_send ((uint8_t *) kontrollues, strlen (kontrollues)); vw_wait_tx (); // Prisni derisa të zhduket i gjithë mesazhi Serial.println ("PARA"); } else if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) kontrollues, strlen (kontrollues)); vw_wait_tx (); // Prisni derisa të zhduket i gjithë mesazhi Serial.println ("LEFT"); } else if (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) kontrollues, strlen (kontrollues)); vw_wait_tx (); // Prisni derisa të zhduket i gjithë mesazhi Serial.println ("E DREJTA"); } tjetër if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {controller = "A1"; vw_send ((uint8_t *) kontrollues, strlen (kontrollues)); vw_wait_tx (); // Prisni derisa të zhduket i gjithë mesazhi Serial.println ("STOP"); }}
Hapi 5: Kodi i Marrësit
#përfshi
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (e vërtetë); // Kërkohet për DR3100 vw_set_rx_pin (12); vw_setup (4000); // Bit për sec pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Filloni marrësin PLL që funksionon Serial.println ("Të gjitha në rregull");
}
lak void () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
nëse (vw_get_message (buf, & buflen)) // Jo-bllokimi
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); prapa (); vonesë (100); // joaktiv (); } tjetër if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("PARA"); përpara (); vonesë (100); // joaktiv (); }
përndryshe nëse ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("E majta"); majtas (); vonesë (100); // joaktiv (); }
përndryshe nëse ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("E DREJTA"); e drejtë (); vonesë (100); // joaktiv (); } tjetër nëse ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); off (); vonesë (100); }} else {Serial.println ("Asnjë sinjal nuk është marrë"); }}
zbrazëti përpara ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
zbrazëti prapa ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
zbrazëti majtas ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
e zbrazët e drejtë ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
zbrazet ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Hapi 6: Dosjet INO
Hapi 7: Lidhja e Bibliotekave
Biblioteka Virtual Wire:
MPU6050_tockn Libraby:
Biblioteka Wire:
Recommended:
Si të bëni një Rover të kontrolluar me gjest: 4 hapa
Si të bëni një Rover të kontrolluar me gjest: Këtu janë udhëzimet për ndërtimin e një roveri të kontrolluar me gjeste (rover me telekomandë). Ai përbëhet nga një njësi rover e cila ka një sensor të shmangies së përplasjes në bord. Transmetuesi në vend që të jetë një telekomandë e ngathët është një dorezë e ftohtë e cila mund të vishet
Miu i kontrolluar me gjest: 6 hapa (me fotografi)
Miu i kontrolluar me gjeste: Ju jeni duke parë një film me miqtë tuaj në një kompjuter portativ dhe njëri prej djemve merr thirrje. Ahh .. ju duhet të dilni nga vendi juaj për të ndaluar filmin. Po jepni një prezantim në një projektor dhe keni nevojë të kaloni midis aplikacioneve. Duhet të lëvizësh
Makinë e kontrolluar me gjest: 5 hapa (me fotografi)
Makina e kontrolluar me gjeste: Robotët po luajnë një rol të rëndësishëm në automatizimin në të gjithë sektorët si ndërtimi, ushtria, mjekësia, prodhimi, etj. Pasi kam bërë disa robotë bazë si Makina e Kontrolluar duke përdorur Bluetooth, unë kam zhvilluar këtë gjest të bazuar në akcelerometër
Pesëdhjetë metra varg Pika e hyrjes me valë me TP Link WN7200ND Përshtatës me valë USB në Raspbian Stretch: 6 hapa
Pesëdhjetë metra varg Pika e hyrjes pa tel me TP Link WN7200ND Përshtatës USB me valë në Raspbian Stretch: Raspberry Pi është e mrekullueshme për të krijuar pika të sigurta të hyrjes pa tel, por nuk ka një gamë të mirë, kam përdorur një përshtatës Wireless USB TP Link WN7200ND për ta zgjeruar atë. Unë dua të ndaj se si ta bëj Pse dua të përdor një pi mjedër në vend të një ruteri? T
Rover i kontrolluar me gjest duke përdorur një përshpejtues dhe një çift marrës-transmetues RF: 4 hapa
Rover i kontrolluar me gjeste duke përdorur një përshpejtues dhe një çift transmetues-marrës RF: Hej atje, keni dëshiruar ndonjëherë të ndërtoni një rover që mund të drejtonit me gjeste të thjeshta të dorës, por kurrë nuk mund të mblidhni guximin për të hyrë në ndërlikimet e përpunimit të imazhit dhe ndërlidhjen e një ueb-kamere me pajisjen tuaj mikrokontrollues, për të mos përmendur përpjetë