Intellekten Edison: Radar (4 / 5 steg)
Steg 4: Infoga det på Edison och börja kodning!
Den kod grundläggande är ganska enkelt, göra bara servo rotera i steg från höger till vänster och tillbaka och sedan göra ultraljud sensorn att leta upp avståndet till den aktuella positionen.
All information är tryckt till seriell, häxa vi kommer att använda senare att dra en beskrivare av insamlade data.
Koden går så här.
Definiera komponenter och konfigurera globala variabler.
#define ECHOPIN 6
#define TRIGPIN 5
#include
Servo myservo;
int pos = 0;
Sedan kan få setup rätt.
void setup() {
Serial.BEGIN(115200);
myservo.attach(9);
pinMode (ECHOPIN, indata);
pinMode (TRIGPIN, OUTPUT);
}
Och sedan huvudprogrammet. Om du vill justera vinkeln på servo bara justera pos = 10 och pos = 170.
Detta är den servo rörelsen i servo position. Pos += 3 innebär att varje steg är 3 steg för servomotor.
OID loop() {
myservo.write(10);
Delay(1000);
för (pos = 10; pos < = 170; pos + = 3)
{
myservo.write(POS);
Print(Distance(), pos);
Delay(15);
}
Delay(1000);
för (pos = 170; pos > = 10; pos-= 3)
{
myservo.write(POS);
Print(Distance(), pos);
Delay(15);
}}
Vi gör sedan några subrutiner att köra i slingan. Detta kommer bara göra huvudprogrammet ser mycket mer renare.
Annullera utskrift (int R, int T)
{
Serial.Print(R); Serial.Print (",");
Serial.Print(T); Serial.println(".");
Delay(100);
}
float avstånd () {
digitalWrite (TRIGPIN, låg);
delayMicroseconds(2);
digitalWrite (TRIGPIN, hög);
delayMicroseconds(10);
digitalWrite (TRIGPIN, låg);
Beräkning av färdavstånd
flyta avstånd = pulseIn (ECHOPIN, hög);
avståndet = avstånd/58,2;
Return(Distance);
}