Projektas #3: 180º Radaras
Išmokite sukurti ir užprogramuoti 180º radar? panaudodami „Maker Control Kit“ komplektuojam? robotikos rinkini? valdymo plokšt?s ir „Maker Kit 3“ komplektuojamo robotikos rinkinio komponentus.
Sistema aptiks bet kok? objekt?, kur? ji ras radaro 180° kampo dengiamame plote, ir apskai?iuos atstum? iki jo. Jei atstumas yra mažesnis nei 20 cm, ?sijungs raudonas LED. Jei atstumas yra didesnis nei 20 cm, ?sijungs žalias LED.
SUD?TINGUMO LYGIS: Pradedantiesiems.
PRATIMO TRUKM?: 60 min.
MEDŽIAGOS:
- 1x Vykdomasis variklis
- 1x Ultragarsinis atstumo jutiklis
- 1x raudonos spalvos LED
- 1x žalios spalvos LED
- 1x kartonin? d?ž?
- 1x „4in1 Build & Code“ plokšt?
- 1x USB – Mikro USB kabelis
- 1x Kompiuteris
- Medžiaga, skirta ultragarsinio atstumo jutiklio pagrindui sukonstruoti
- Klijai arba lipni juosta
Kas yra ultragarsinis atstumo jutiklis?
Ultragarsinis jutiklis yra atstumo matavimo prietaisas. Jis veikia, si?sdamas aukšto dažnio garso signal?, kuris n?ra girdimas žmogaus ausiai. Šis pulsas atšoka nuo šalia esan?i? objekt? ir atsispindi ? jutikl?, kuris turi š? dažn? galint? fiksuoti mikrofon?.
Išmatuojant laik? tarp signal? ir žinant garso greit?, galima ?vertinti atstum? iki objekto ? kurio pavirši? pataik? ultragarsinis signalas.
KONSTRUKCIJOS SUK?RIMAS:
Radaro sumontavimui naudosite kartonin? d?žut?, o ultragarsinio atstumo jutiklio konstrukcijai naudosite vatmano lapus.
Parsisi?skite greito sumontavimo vadov? ir atlikite nurodytus veiksmus:
- Ultragarsinio atstumo jutiklio konstrukcijai iškirpkite dvi dalis iš vatmano. Vienoje dalyje padarykite dvi angas, kad gal?tum?te per jas prakišti ultragarsin? imtuv? ir si?stuv?. Sujunkite dalis statmenai ir pritvirtinkite vis? komplekt? prie vykdomojo variklio veleno.
- Užd?kite vykdom?j? varikl? su ultragarsiniu atstumo jutikliu, raudonu ir žaliu LED ant d?žut?s išor?s.
- ?d?kite „4in1 Build&Code“ plokšt? ? d?žut? ir prijunkite visus elektroninius komponentus bei USB kabel?. Laikykit?s vis? nurodym? pateikt? toliau esan?iame skyriuje „Jungtys“.
JUNGTYS:
- Prijunkite žalios spalvos LED prie „4in1 Build&Code“ plokšt?s skaitmenin?s jungties Nr. 5.
- Prijunkite raudonos spalvos LED prie „4in1 Build&Code“ plokšt?s skaitmenin?s jungties Nr. 6.
- Prijunkite vykdom?j? varikl? prie „4in1 Build&Code“ plokšt?s skaitmenin?s jungties Nr. 9.
- Prijunkite ultragarsin? atstumo jutikl? prie „4in1 Build&Code“ plokšt?s skaitmenini? jung?i? Nr. 12 ir Nr. 13.
Perži?r?kite kabeli? spalvas ir „4in1 Build & Code“ plokšt?s kontakt? spalvas, kad žinotum?te kaip sujungti. Kiekvienas kabelis tur?t? b?ti prijungtas prie jo spalvos:
PROGRAMOS KODAS:
Program? sudaro šios dalys:
- Vykdomasis variklis juda 180° kampu ? dešin? ir kair?.
- Kol vykdomasis variklis juda, atstumas yra matuojamas ultragarsiniu atstumo jutikliu:
- Jei išmatuotas atstumas yra mažesnis nei 20 cm, ?sijungs raudonas LED.
- Jei išmatuotas atstumas yra didesnis nei 20 cm, ?sijungs žalias LED.
Ši seka toliau bus kartojama tol, kol ?rangai bus tiekiamas maitinimas.
Šiuos veiksmus galite atlikti naudodami „Arduino“ ir „Bitbloq“ programin? ?rang?, taip pat kit? suderinam? vaizdin? programavimo programin? ?rang?, naudojan?i? blokus. Žemiau pateikiamas programin?s ?rangos kodas, reikalingas kiekvienai programinei ?rangai.
„Arduino“ kodas
- Parsisi?skite „Arduino“ programin? ?rang? ir atlikite ?diegimo proces?.
- Paleiskite program? ir nukopijuokite toliau pateikt? kod?:
#include <Servo.h> Servo motor1; // motor1 = Name of the servomotor int degreeM1; // Variables of the angles of the servomotor int LEDRed = 6, LEDGreen = 5; // Red LED connected to digital port 5, green LED connected to digital port 6 int TrigPin = 13; // Connection ports of the ultrasonic sensor int EchoPin = 12; float SSound = 0.0343; // SPEED OF SOUND IN cm/us long Lengh, Distance ; // VARIABLES TO CALCULATE THE DISTANCE IN CM void setup() { // Put your setup code here, to run once: motor1.attach (9); // Servomotor connected to digital port 9 pinMode(TrigPin, OUTPUT); // Configuration ports of the ultrasonic sensor pinMode(EchoPin, INPUT); pinMode(LEDRed, OUTPUT); // Configuration port of the LEDs pinMode(LEDGreen, OUTPUT); } void loop() { // Put your main code here, to run repeatedly: for (degreeM1 = 15; degreeM1 < 181; degreeM1 = degreeM1+5) // Add the variable degreeM1 +5 until it is larger than 181 { DistanceCM(); // Calculate the distance in cm if (Distance < 20) // If the distance is less than 20 cm { digitalWrite (LEDRed, HIGH); // Red LED = ON digitalWrite (LEDGreen, LOW); // Green LED = OFF } else // If the distance is greater than 20 cm { digitalWrite (LEDRed, LOW); // Red LED = OFF digitalWrite (LEDGreen, HIGH); // Green LED = ON } motor1.write(degreeM1); // Move the servomotor to the angle of degreeM1 delay(200); // Wait 200 ms } for (degreeM1 = 180; degreeM1 > 15; degreeM1 = degreeM1-5) // Reduce the variable degreeM1 -5 until it is smaller than 15 { DistanceCM(); // Calculate the distance in cm if (Distance < 20) // If the distance is less than 20 cm { digitalWrite (LEDRed, HIGH); // Red LED = ON digitalWrite (LEDGreen, LOW); // Green LED = OFF } else // If the distance is greater than 20 cm { digitalWrite (LEDRed, LOW); // Red LED = OFF digitalWrite (LEDGreen, HIGH); // Green LED = ON } motor1.write(degreeM1); // Move the servomotor to the angle of degreeM1 delay(200); // Wait 200 ms } } void DistanceCM()// FUNCTION TO CALCULATE DISTANCE { // DISTANCE CALCULATION IN cm digitalWrite(TrigPin, LOW); // We check that the trigger is deactivated delayMicroseconds(4); // To make sure that the trigger is LOW digitalWrite(TrigPin, HIGH); // We activate the output pulse delayMicroseconds(14); // We wait 10 µs. The pulse is still active this time digitalWrite(TrigPin, LOW); // We cut the pulse and wait for ECHO Lengh = pulseIn(EchoPin, HIGH) ; //pulseIn measures the time that elapses from when the declared pin (echoPin) changes from low status to high (from 0 to 1) Distance = SSound* Lengh / 2; // CALCULATION OF THE DISTANCE }
- Sukonfig?ruokite ir ?kelkite kod?, pagal vadovo „Kaip prid?ti bibliotek? norint užprogramuoti RGB LED“ instrukcijas.
Kodas skirtas suderinamai vaizdinei programavimo programinei ?rangai, naudojan?iai blokus
- Parsisi?skite programin? ?rang? ir atlikite ?diegimo proces?.
- Paleiskite program? ir paleid? nukopijuokite ? j? toliau pateikt? kod?:
- Sukonfig?ruokite ir ?kelkite kod? pagal instrukcijas, kurios yra pateiktos dokumente „4in1 Build&Code“ plokšt?s pirmieji žingsniai.
„BitBloq“ kodas
- Parsisi?skite „BitBloq“ programin? ?rang?.
- Paleiskite „BitBloq“ program? ir paleid? nukopijuokite ? j? toliau pateikt? kod?:
- Aparatin? ?ranga
- Programin? ?ranga
- Aparatin? ?ranga
- Sukonfig?ruokite ir ?kelkite kod? pagal instrukcijas, kurios yra pateiktos dokumente „4in1 Build&Code“ plokšt?s pirmieji žingsniai.
PRATIMO REZULTATAS:
Panaudodami vykdom?j? varikl? ir ultragarsin? atstumo jutikl?, j?s padar?te, kad sistema matuot? atstum? sukdamasi 180° kampu. LED veiks kaip indikatoriai: jei aptinkamas objektas, ?sijungs raudonas LED, o jei objektas nebus aptiktas, ?sijungs žalias LED. Suk?r?te radar?, kuris sukasi 180° kampu!