Adruino — IDE und Programmaufbau

[seriesposts name=“Arduino“, orderby=“user_order“]

Die IDE — Arduino 0022

Die Arduino IDE ist als Open Source Software (wie alles von Arduino) verfügbar und in Java implementiert. Deshalb ist sie für alle gängigen Betriebsysteme auf der Arduino Homepage (Windows 7, Mac OS X und Linux (32bit)) verfügbar.

Die Installation ist recht einfach und eine Installationsanleitung (englisch) ist auf der Arduino-Homepage verfügbar. Ich möchte deshalb hier nicht weiter auf die Installation eingehen.

Der Programmaufbau

Die Programmiersprache des Arduino-Entwicklungs-Board ist C, wobei externe Bibliotheken in C++ implementiert sein dürfen. Innerhalb der IDE kommt der gcc-arv-Kompiler zum Einsatz.

Programmstruktur
Ein einfaches Arduino-Programm besteht aus zwei Methoden, der setup()–Methode und der loop()–Methode.

Die setup()–Methode beinhaltet Programm-Code der einmal ausgeführt wird. Dagegen
wird der Programm-Code der loop()–Methode immer wieder ausgeführt.

void setup() {
  // Setup-Code wird einmal ausgeführt

}

void loop() {
  // Haupt-Code wird immer wieder ausgeführt
  
}

LaTeX — Was ist LaTeX

[seriesposts name=“LaTeX“, orderby=“user_order“]

Im Gegensatz zu bekannten Textverarbeitungsprogrammen (wie Word, OpenOffice oder Pagers)
verfolgt LaTeX einen ähnlichen Ansatz wie html. Bei html wird der Inhalt mithilfe von sog.
Tags strukturiert. Ein weiters Programm (der Browser) interpretiert den Inhalt und stellt
ihn anschließend dar. Diese Technik ist nötig, da eine Webseite von ganz unterschiedlichen
Geräten optimal angezeigt werden soll.

Bei LaTeX wird der Inhalt mithilfe von Tex-Befehlen strukturiert. Dieser Quellcode wird anschließend von einem Programm (latex) interpretiert und das Ergebnis z.B. in einer
pdf-Datei gespeichert. Der Vorteil ist, dass LaTeX den Text selbständig formatiert und somit mehr Zeit auf den Inhalt verwendet werden kann.

Ein kurzes Beispiel für LaTeX

[js_markieren]

\documentclass{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
 
\title{Hallo Welt!}
\author{blog.herrwolff.org}
\date{10.10.2011}
\begin{document}
 
\maketitle
\tableofcontents
\section{Hallo Welt}
 
Der Inhalt des ersten Kapitels 
 
\subsection{Formeln}
 
Formeln mit \LaTeX{} 
\begin{align}
E &= mc^2
\end{align}
\end{document}

Arduino — Der Ultraschallsensor

[seriesposts name=“Arduino“, orderby=“user_order“]

Der Ultraschallsensor „Seeed Ultrasonic Sensor“ ist ein digitaler Sensor.

Um die Laufdauer des Ultraschalls abzufragen, muss über den Datenpin ein High-Signal
von 2ms Dauer gesendet werden. Anschließend wird dasselbe Pin auf Input gesetzt und
die High-Dauer gemessen.

Schaltplan

Notes: 4

Ein einfacher Code, der die gemessene Entfernung über die Serielle Schnittstelle ausgibt:

const int pingPin = 7;

void setup() {
  // initialize serial communication:
  Serial.begin(9600);
}

void loop()
{
  long duration, cm;

  // A HIGH pulse of 2 or more microseconds.
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(15);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(20);
  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);

  // convert the time into a distance
  cm = microsecondsToCentimeters(duration);
  
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  
  delay(100);
}

long microsecondsToCentimeters(long microseconds)
{
  return microseconds / 29 / 2;
}

Arduino — Der Temperatursensor

[seriesposts name=“Arduino“, orderby=“user_order“]

Der Temperatursensor LM35 CZ ist ein analoger Sensor.

Nähers zur Funktionsweise findet sich auf dem Datenblatt

Schaltplan

Notes: 4


Ein einfacher Code, der die aktuelle Temperatur über die Serielle Schnittstelle ausgibt:

/* Test for the Temperature Sensor LM35CZ */

const unsigned int TEMP_SENSOR_PIN = 0;
const float SUPPLY_VOLTAGE = 5000;
const unsigned int BOUD_RATE = 9600;

void setup() {
  Serial.begin(BOUD_RATE);
}

void loop() {
  Serial.print(get_temperature());
  Serial.println(" C");  
}

const float get_temperature() {
  const int sensor_volate = analogRead(TEMP_SENSOR_PIN);
  const float voltage = sensor_volate *(SUPPLY_VOLTAGE / 1024); 
  return voltage / 10;
}

Weiterlesen

Arduino im Unterricht: Die Idee

[seriesposts name=“Arduino“, orderby=“user_order“]

In den letzten Wochen habe ich das Buch Arduino A Quick-Start Guide1
von Maik Schmidt durchgearbeitet.

Dabei ist mir die Idee gekommen die Arduino Plattform im Informatikunterricht einzusetzen.
Dabei sind vor allem zwei Faktoren entscheidend.

Zum einen gestattet das Arduino Projekt eine Vielzahl von Inhalten der Bildungsstandard
im Wahlfach Informatik umzusetzen, zum anderen ist der Preis unschlagbar.

Ich möchte einen Lernziel erstellen, der unter anderen folgende Stationen umfassen soll:

  • Grundlagen von Arduino und Einführung in die IDE
  • Einführung in Processing
  • Serielle Kommunikation zw. Arduino und PC
  • Analog Sensoren und Digitalsensoren
  • Webserver
  • Game Kontroller mit einem analogen Beschleunigungssensor
  • Kommunikationsprotokoll der wii chucknut
  1. [zotpress item=“Z9UHZP5I“] []