Processing — Einführung

Processing ist eine Open Source Programmiersprache mit zugehöriger integrierter Entwicklungsumgebung, diese ist Java implementiert. Sie ist einem Projekt des Massachusetts Institute of Technology in Boston von Ben Fry (Broad Institute) und Casey Reas (UCLA Design|Media Arts) initiiert worden. Processing ist vom Charakter einer stark vereinfachter Java-Dialekt. Processing erlaubt es Interaktionen und visuelle Elemente zu programmieren, und richtet sich vorwiegend an Gestalter, Künstler und Programmieranfänger.

Vorteile für den Unterricht:

  • Plattformunabhänigkeit (IDE und Applet auffällig auf Windows, Mac OS X und Linux)
  • Vereinfachte Java-Dialekt ermöglicht gute Didaktische Reduktion
  • Einfache und Übersichtliche IDE
  • Open Source Software, d.h. keine Lizenzgebühren

Quelle:
Von der Processing Homepage können verschieden Versionen herunter geladen werden:

Von der Struktur ist ein Processing-Programm ähnlich zu Arduino. Es gibt im wesentlichen
zwei Methoden, die setup()– und draw()-Methode

void setup()
{
 PFont font = loadFont("Courier-20.vlw");
 textFont(font,20);
 size(200,200);
}

void draw()
{
 text("Hello World!", 30,50);
}

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;
}

Arduino — Der Temperatursensor weiterlesen