Ultrasonic sensor i openFrameworks använder Arduino (2 / 4 steg)
Steg 2: Programmera din Arduino
Ingen att du har slutfört steg två vi behöver något att förvandla ditt brand spanking nya Arduino projekt i något som talar. För att göra detta måste du kasta detta begreppet Firmata ut genom fönstret! (Kan du berätta jag är lite bitter?).
Låter start av läggs Nya Ping-biblioteket till din Arduino IDE. Detta bibliotek hjälper gränssnitt med många ultraljudssensorer.
- Ladda ner biblioteket (http://playground.arduino.cc/Code/NewPing)
- Extrahera mappen
- Kopiera till YourPC\Arduino\libraries
Biblioteket kan nu ingå i dina skisser. Du kan också bläddra i exempel för att använda biblioteket.
Nu behöver du hämta bifogade filen "serialPingOF.ino" och öppna med Arduino IDE. Här hittar du kommenterade kod som förbereder Arduinoen för att kommunicera distanserar hittade. Se koden för detaljerade rad för rad kommentarer.
I korthet du börjar om genom att lägga till nya Ping biblioteket och definiera vilket stift av Arduino kommer att tilldelas avtryckaren och Echo stiften på ultrasonic sensor.
Du skriver sedan funktionen ping_cm() till en int variabel som förbereder den för överföring över följetong, denna funktion får tiden mellan kvittra av Trig PIN-koden och kvittra återvänder till echo stift. Det returnerar sedan det i cm, kan du använda ping_in() för inches.
Programmet skriver sedan denna sträcka som en int till följetongen. När du skriver variabeln till den seriella porten skickar du effektivt det som ett byte eller en serie av byte. I nästa steg kommer vi att se hur vi kan plocka upp de byte på andra sidan av USB genom openFrameworks.
Innan nästa steg ansluta din Arduino via USB till datorn och ladda upp koden har du just skrivit. Yahooo! Vi är nästan där!
Arduino kod
Cormac Joyce 2015
initiera bibliotek.
#include
Arduino pin tilldelats utlösa pin på ultrasonic sensor.
#define TRIGGER_PIN 12
Arduino pin tilldelats echo pin på ultrasonic sensor.
#define ECHO_PIN 11
Maximalt avstånd vi vill skicka ping (i centimeter). Maximal sensorn avståndet är dimensionerade för 400-500cm.
#define MAX_DISTANCE 500
int för att läsa avståndet i cm in.
int dist;
NewPing inställning av stift och maximalt avstånd.
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.BEGIN(9600); Öppna seriell monitor på 115200 baud se ping resultat.
}
void loop() {
(ange ping avståndet i cm till dist variabel (0 = utanför förutbestämd distans intervall).
dist = sonar.ping_cm();
Vänta 50 ms mellan pingmeddelandena (ca 20 ping/SEK).
Delay(50);
här dist variabeln skrivs i byte så det är kan läsas i av som en int.
Serial.write(dist);
}