Freitag, 31. Mai 2013

Arduino und Pololu

Mein neues Arduino - Board ist schon bei einigen Projekten im Einsatz. Zusammen  mit dem Fritzing Starter Kit lassen sich auf dem breadboard einfach Schaltungen realisieren und mit der Arduino-IDE ansteuern. Das wird eine interessante Unterrichtseinheit.

Das Zusammenspiel von Arduino-IDE und Pololu ist dabei ein lohnendes Anwendungsgebiet, da sich der pololu-3pi dadurch einfach programmieren lässt und die Installation überschaubar bleibt. Neueinsteiger müssen sich nur auf eine IDE einarbeiten und die Arduino-IDE ist bewusst einfach und übersichtlich gehalten.

Zur Konfiguration der IDE geht man vor, wie im Dokument Programming Orangutans and the 3pi Robot from the Arduino Environment Arduino IDE  beschrieben.

Die Erweiterung der Datei boards.txt und programmers.txt (Configuring the Arduino Environment) führt zu neuen Einträgen im Menü. Die Bibliothek der Seite Arduino Libraries for the Orangutan and 3pi Robot wird entpackt und die einzelnen Unterordner (!) in das Verzeichnis <arduino>/libraries  kopiert. Die mitgelieferten Beispiele lassen sich aus der IDE heraus aufrufen und sind kompilierbar.

Das folgende Programm lässt sich mit den Einstellungen  (board/programmer/port): Pololu 3pi robot w/ ATmega328P via Programmer on /dev/tty.usbmodem00048661 übersetzen und ausführen.

// +++++ anfang

#include <OrangutanLCD.h>

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.
 */


// Pin 1 has a red LED connected on most pololu boards.
int redLED = 1;

// Pin 7 has a green LED connected on most pololu boards.
int greenLED = 7;

//OrangutanLCD ist zu Pololu kompatibel
OrangutanLCD lcd;

// the setup routine runs once when you press reset:
void setup() {               
  // initialize the digital pin as an output.
  pinMode(redLED, OUTPUT);
  pinMode(greenLED, OUTPUT); 
}

// the loop routine runs over and over again forever:
void loop() {
  lcd.gotoXY(1,1);
  lcd.print("Hallo ");
  digitalWrite(redLED, HIGH);   // turn the LED on
  digitalWrite(greenLED, LOW);  // turn the LED off
  delay(1000);                  // wait for a second
  lcd.gotoXY(1,1);
  lcd.print("Pololu");
  digitalWrite(redLED, LOW);    // turn the LED off
  digitalWrite(greenLED, HIGH); // turn the LED on
  delay(1000);                  // wait for a second
}


// ++++ ende

Keine Kommentare:

Kommentar veröffentlichen