Archive for the ‘Arduino’ Category.

PWM mit Arduino

Über Pulsweitenmodulation (http://de.wikipedia.org/wiki/Pulsweitenmodulation) ist es einfach möglich, LEDs faden zu lassen. Ein einfaches Beispiel, das ich aus dem Arduino Tutorial http://www.arduino.cc/en/Tutorial/Fading übernommen habe, erfüllt seinen Zweck. Ich habe nur den Pin geändert,

Hier ein kurzes Video http://www.youtube.com/watch?v=CpucbeHvbCk

Im nächsten Schritt werde ich mal die Fullcolor RGB LED faden lassen, die Schaltung hab ich schon.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Buchkritik: „Arduino Praxiseinstieg“ von Thomas Brühlmann

Auf der Froscon am letzten Wochenende habe ich mir „Praxiseinstieg Arduino“ von Thomas Brühlmann gekauft. Mit knapp 25 Euro dürfte es noch in den taschengeld-tauglichen Bereich fallen. Es gefällt mir sehr gut, ist aber meines Erachtens nichts für Leute, die noch nie etwas mit Elektonik zu tun hatten. An einigen Stellen fallen halt Fachbegriffe, die für mich sehr unbekannt sind und zu denen ich gern etwas mehr Erklärung gehabt hätte.

Davon abgesehen zeigt das Buch eine Menge interessanter Beispiele und Ideen, von denen ich einige in der nächsten Zeit umsetzen werde.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Arduino und LoL Shield

Mit dem LoL Shield gibt es eine einfache Möglichkeit, per Arduino ein LED Array zu steuern. Ich habe mein Shield am letzten Wochenende auf der Froscon (http://www.froscon.de) gekauft und unter sachkundiger Hilfe die fast 130 LEDs aufgelötet. Die Vorteile des Shields sind die schiere Masse an ansteuerbaren LEDs sowie die Tatsache, dass außer den LEDs selbst keine weiteren Bauteile zum Einsatz kommen.

Auf der Homepage des Schöpfers http://jimmieprodgers.com/kits/lolshield Beispiele für die Ansteuerung des Shields, hier zwei Beispiele (aufgenommen mit einer Canon 7D):

Youtube

Youtube

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Processing für iPhone und iPod Touch

Mit iProcessing gibt es jetzt ein Framework, das die Entwicklung von iPhone Anwendungen in Processing, der Sprache, in der auch der Arduino programmiert wird, ermöglicht.

http://www.heise.de/software/download/iprocessing/71850

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Geniale Visualisierung von Geschichtsdaten

Durch Zufall habe ich eben eine geniale Visualisierung von Geschichtsdaten gefunden, die mit Processing (Arduino lässt grüßen) umgesetzt wurde. Gezeigt wird der Niedergang der Weltreiche Großbritannien, Spanien, Portugal und Frankreich im 19. und 20. Jahrhundert.

Hier der Link: http://vimeo.com/6437816.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Arduino: Temperaturen aus der Datenbank auslesen

Da die Temperatur-Daten jetzt in der Datenbank gespeichert werden, müssen wir sie auch auslesen:

<?php
 
echo "<h1>Temperaturen im Wohnzimmer</h1>";
 
$link = mysql_connect("<server>", <user>", "<password>") or 
	die("Keine Verbindung möglich: " . mysql_error());
 
mysql_select_db("<Database>") or die("Auswahl der Datenbank fehlgeschlagen");
// Die letzten 10 Werte
$query = "SELECT * FROM temperature ORDER BY TIMESTAMP DESC LIMIT 1,10"; 
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
 
while($row = mysql_fetch_object($result))
{
    echo $row->Timestamp ." ".$row->Temperature."<br/>";
}
 
mysql_close($link);
?>

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Fritzing

Von Fritzing ist schon vor einem knappen Monat Version 0.3.8. alpha erschienen. Mit Fritzing lassen sich elektronische Schaltungen im Arduino-Umfeld sehr gut und einfach darstellen.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Mit Arduino Temperaturen in eine Datenbank speichern

Mein Arduiono hat bisher nur die Temperatur meines Wohnzimmers in einer Textdatei auf dem Server gespeichert, für Auswertungszwecke ist eine Datenbank natürlich besser. Daher hab ich den PHP-Code so erweitert, dass er eine der MySQL-Datenbanken meines Providers nutzt. Hier mal der Code für das setTemperature-Skript:

<?php
header('Content-type: text/plain');
echo date("d.m.Y-H:i:s") . " Temperatur= " . $_GET['t'];
 
$link = mysql_connect("<serverhost>", "<username>", "<password>") or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("<Datenbank>") or die("Auswahl der Datenbank fehlgeschlagen");
$query = "INSERT INTO temperature(`temperature`) values(" . $_GET['t'] . ")";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
 
mysql_close($link);
?>

Im nächsten Schritt baue ich noch eine passende Auswertung, die den Temperaturverlauf auch grafisch darstellt.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Grafische Ausgabe der Temperaturen vom Arduino

Mit der pChart (http://pchart.sourceforge.net) Bibliothek habe ich eine einfache Möglichkeit gefunden, die Temperaturen grafisch darzustellen. Hier ein erstes Beispiel, anhand einer Vorlage aus der pChart Bibliothek. War recht einfach abzuändern, hat mich nur wenige Minuten gekostet, die Anpassungen vorzunehmen.

Example1.php

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Arduino übermittelt Temperaturen

Ausgehend von Mats Vanselows getTemperatur() Funktion (http://www.mats-vanselow.de/2009/03/25/temperaturen-messen-mit-arduino und einem Beispiel aus der Ethernet Library habe ich einen kleinen Client geschrieben, der alle 10 Minuten die Temperatur aus einem LM35 Sensor ausliest und per HTTP-Request an ein PHP-Skript auf meiner Homepage schickt. Da der LM35 nicht genau kalibriert ist und wohl sowieso maximal auf ein halbes Grad genau ist, habe ich mittels zwei anderer Thermometer (die wiederum selbst voneinander abweichen) die ungefähre Abweichung des LM35 bestimmt und ziehe die 2° Celsius einfach ab.

Hier der entsprechende Processing-Code:

#include <Ethernet.h>
bool connected = false;
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 99 };
// IP-Adresse des Webservers
byte serverIP[] = {111,111,111,111};
 
Client client(serverIP,80);
 
 
int inPin = 5;          // input pin 1
float inValTotal;
int i;
int runs = 5;          // Anzahl der Durchläufe
int waittime = 20;     // ms zwischen Durchläufen
int delayVal = 1000;   // Intervall für Serial Output
 
float getTemperatur() {
 
  inValTotal = 0;
  for(i = 0;i<runs;i++){
    inValTotal = inValTotal + analogRead(inPin);
    delay(waittime);
  }
 
  inValTotal = inValTotal / runs / 2;
  return(inValTotal-2);
}
 
 
void setup()
{
  Ethernet.begin(mac, ip);
  Serial.begin(9600);
  Serial.println("setup done");
 
}
 
void loop()
{
  Serial.println("Entered loop");
if (!connected){ 
   Serial.println("Not connected");
  if (client.connect()){
      connected = true;
      Serial.println("Connected to Server");
      Serial.println("Sending request to server");
      client.print("GET /storetemp.php?t=");
      client.print(getTemperatur());
      client.println(" HTTP/1.1");
      client.println("Host: www.mydomain.com");
      client.println("User-Agent: Arduino");
      client.println("Accept: text/html");
      client.println();
     } else {
        Serial.println("Cannot connect to server");
      }
    }   
  else {
    delay(500);
    while (client.connected() && client.available()) {
        char c = client.read();
        Serial.print(c);
      }
      Serial.println();
       client.stop(); 
       connected=false;
}
 
  Serial.println("Done now");
  delay(600000);
}

Hier der Code des PHP-Skripts, es schickt als Antwort Zeit und erhaltene Temperatur zurück zum Arduino und speichert die Temperatur mit Zeitstempel in einer Textdatei. Im nächsten Schritt werde ich wohl sicher eine MySQL-Datenbank hintersetzen, für den Moment reicht es aber völlig aus.

<?php
header('Content-type: text/plain');
echo date("d.m.Y-H:i:s") . " Temperatur= " . $_GET['t'];
 
$myFile = "testFile.txt";
$fh = fopen($myFile, 'a') or die("can't open file");
fwrite($fh, date("d.m.Y-H:i:s") . " Temperatur= " . $_GET['t']."\n");
fclose($fh);
?>
</php>

Und abschließend ein Auszug aus der Textdatei:

04.10.2009-09:22:29 Temperatur= 21.00
04.10.2009-09:22:37 Temperatur= 21.00
04.10.2009-09:22:44 Temperatur= 21.00
04.10.2009-09:22:52 Temperatur= 21.00
04.10.2009-09:23:00 Temperatur= 21.00
04.10.2009-09:23:07 Temperatur= 20.90
04.10.2009-09:23:15 Temperatur= 21.00
04.10.2009-09:23:33 Temperatur= 21.00

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website