Archive Page 12
Am 15. September 2012 erscheint die 2. Auflage von Arduino Praxiseinstieg.
Erweitere Auflage mit 530 Seiten, komplett in Farbe und mit vielen neuen Projekten.
Anzeigemodul für Oregon Scientific Wetterstation, Code basiert auf Lösung von Lostbyte.com. Über 433 Mhz-Empfangsmodul werden Daten von Sensoren im Garten abgefragt und auf dem Display darstellt.
Fazit Test Sensoren für Bodenfeuchtigkeit
4 Comments Published Juli 13th, 2012 in Arduino, Projekt, SensorEnde Juni 2011 habe ich einen Test von verschiedenen Sensoren für Bodenfeuchtigkeit gestartet. Bei diesem Langzeittest wollte ich 3 verschiedene Typen von Sensoren miteinander vergleichen. Die eingesetzten Typen für die Messung der Feuchtigkeit im Boden sind:
- Selbstbausensor mit Nägel
- Selbstbausensor mit Gipshüllen
- Professioneller Bodensensor
Sensor mit Nägel (links), Gipssensor (rechts), Professioneller Sensor (hinten)
Die Testreihe mit den Sensoren ist in einem kleinen Topf mit Erde untergebracht und wird in unregelmässigen Abständen bewässert. Die von den Sensoren erfassten Daten werden an einen Cosm-Datenfeed gesendet und online dargestellt.
Nach über einem Jahr im Testbetrieb werden nun die einzelnen Sensoren untersucht.
Nagelsensor:
Der Sensor mit 2 Nägel ist eine einfache und kostengünstige Lösung. An den Enden der Metallstifte wurde jeweils ein Draht angelötet, welcher auf die Messschaltung geführt wird. Diese Sensorvariante hatte recht genaue Messwerte, im Vergleich mit dem kommerziellen Sensortyp, geliefert. Der Nachteil dieses Sensors ist aber der chemische Prozess, welcher durch die Metalle im Boden ausgelöst wird und entsprechend Material abträgt. Das Resultat nach einem Jahr sind 2 abgebrochene Stifte, der Sensor ist ausgefallen und konnte keine korrekten Werte mehr liefern.
2-Monats-Kurve des Nagelsensors
Gips-Sensor:
Der Gips-Sensor, auch ein Selbstbau-Sensor, hat im Vergleich mit den anderen beiden Sensoren die schlechtesten Messwerte geliefert. Bei Feuchteänderung hat der Sensor viel langsamer reagiert. Auch dem Gips-Sensor sieht man die lange Laufzeit an. Die Aussenhülle des Sensors ist sehr brüchig und Material bröckelt ab. Zusätzlich ist das eine angelötete Anschlusskabel abgebrochen.
2-Monats-Kurve des Gips-Sensors
Bodensensor VG400:
Das einzige kommerzielle Produkt in dieser Messreihe hat den Versuch ohne äusserlich sichtbare Mängel überstanden. Im Vergleich mit den beiden anderen Sensoren hat dieser Typ jeweils am schnellsten auf Änderungen der Feuchtigkeit reagiert.
Fazit:
Diese 1-jährige Messreihe hat gezeigt, dass DIY-Sensoren gute Messresultate für die Erfassung der Feuchtigkeit im Boden liefern können. Für einen längeren Einsatz als Feuchtemesser im eigenen Garten müssen die Selbstbaussensoren stabiler und fester aufgebaut werden. Die Anschlusskabel müssen an die Messdrähte angeschraubt und nicht gelötet werden. Der Nagelsensor muss mit einem Schutzschlauch geschützt werden und der Gips-Sensor muss eine feste Aussenhülle bekommen. Um den chemischen Prozess zu minimieren, sollte die Messschaltung jeweils umgepolt werden. Auf diese Weise läuft die Elektrolyse in beide Richtungen.
Neben den Sensoren hat auch das Arduino-Board mit aufgestecktem Ethernet-Shield von Seeedstudio den Dauertest problemlos überstanden. Das Arduino-Board hat dabei alle 60 Sekunden die 3 Messwerte an die Cosm-Plattform gesendet und musste dabei nie neu gestartet oder zurückgesetzt werden.
Am Samstag, 07.07.12 hat im MechArtLab in Zürich ein DIY Workshop zum Thema Internet of Things (IoT) stattgefunden. Die Gruppe der Workshop-Teilnehmer hat in praxisnahen Beispielen Arduino-und BeagleBone-Boards in Betrieb genommen. Zum Schluss wurden Sensordaten aus dem Lab via Ethernet-Verbindung an die IoT-Plattform Cosm gesendet.
Neben den praktischen Übungen wurden Ideen und praktische Erfahrungen ausgetauscht.
Thomas Amberg (Gründer von Yaler) hat den Workshop geleitet und Impressionen publiziert.
The slides from my presentation „Introduction to Arduino“ at the IoT Meetup Zurich.
Download: Introduction to Arduino (PDF, 1.2 MB)
Thanks for joining this event!
Ende Mai 2012 wurde das neuste Arduino Board, der Arduino Leonardo, inklusive der neuen IDE Version 1.0.1 veröffentlicht. Der Arduino Leonardo unterscheidet sich vom Vorgängermodellen hauptsächlich durch den anderen Microcontroller-Typen und die unterschiedliche Bauform des USB-Anschlusses. Beim Arduino Leonardo wird ein ATmega32u4 Microcontroller verwendet, welcher auch die Kommunikation über die USB-Schnittstelle übernimmt. Dadurch konnte der bisher verwendete zusätzliche Controller für die USB-Kommunikation aus dem Design entfernt werden.
Mit dem neuen Microcontroller kann das Leonardo-Board standardmässig als USB-Device, als Maus oder Keyboard, betrieben werden.
Die Firma Boxtec, welche in der Schweiz Arduino-Produkte vertreibt, hat mir freundlicherweise ein Arduino Leonardo Board zum Test zur Verfügung gestellt.
Besten Dank dafür.
Der Arduino Leonardo wird, wie die anderen Arduino-Boards, in einer formschönen Kartonschachtel geliefert, welche auch direkt als Gehäuse verwendet werden kann.
Das Leonardo-Board hat die gleichen Abmessungen wie das Standardboard Arduino Uno. Optisch fällt auf den ersten Blick auf dass der USB-Stecker kleiner ist, der Reset-Knopf an einem anderen Ort platziert ist und ein Microcontroller mit einer Gehäuseform für die Oberflächenmontage verwendet wurde. Alle technischen Änderungen des Arduino Leonardo sind im Getting-Started-Dokument auf der Arduino-Website übersichtlich aufgelistet.
Voraussetzungen
Für die erfolgreiche Inbetriebnahme und Nutzung des Arduino Leonardo sind folgende Voraussetzungen zu erfüllen:
- USB-Kabel mit Steckertyp Micro-B
- installierte Entwicklungsumgebung (IDE) mit Version 1.0.1.
Der USB-Stecker Micro-B ist eine kleinere Bauform als die Bauformen der bisherigen Arduino-Boards. Beim Kauf eines Leonardo sollte somit auch gleichzeitig ein entsprechende Kabel mitbestellt werden.
Die kürzlich freigebene Version 1.0.1 der Arduino-Entwicklungsumgebung unterstützt standardmässig das neue Arduino Leonardo Board. Vor der ersten Inbetriebnahme muss die neue IDE installiert werden.
Inbetriebnahme
Der erste Schritt der Inbetriebnahme ist erwähnt die Installation der IDE mit Version 1.0.1. Die Inbetriebnahme der Hardware des Arduino Leonardo erfolgt auf die gleiche Weise wie bei den früheren Arduino-Boards. USB-Kabel am Arduino Leonardo und am Rechner anschliessen und dann die Anweisungen auf dem Bildschirm befolgen. Beim ersten Anschliessen eines Arduino Leonardo meldet dass System dass ein neuer Treiber installiert werden muss. Üblicherweise versucht das System den Treiber automatisch zu installieren. Mein Windows 7-Rechner hat zwar das neue Board erkannt, konnte den Treiber nicht korrekt installieren.
Gemäss Anleitung zum Arduino Leonardo muss der Treiber in diesem Fall manuell nachinstalliert werden. Im Device Manager (Start>Control Panel>Hardware) kann durch Rechtsklick auf das gelistete Leonardo-Board ein Update der Software (Treiber) gestartet werden. Im anschliessenden Installationsablauf wird keine automatische Treibersuche gewählt, sondern die Auswahl des Treibers von einem spezifischen Pfad durchgeführt. Der Treiber liegt im Ordner /drivers der im ersten Schritt installierten Arduino IDE 1.0.1. Nach Auswahl und Bestätigung des Treiberpfades wird der Leonardo-Treiber installiert.
Nach erfolgreicher Installation meldet die Installationsroutine
Im Gerätemanager wird nun das Arduino Leonardo Board erkannt und kann über den USB-Port genutzt werden.
In der soeben installierten IDE 1.0.1 wird nun der Arduino Leonardo in der Liste der Boards aufgelistet und in den installierten Codebeispielen gibt es unter Punkt 09.USB(Leonardo) einen Ordner mit Beispielen für Maus-und Keyboard-Emulation.
Diese neue USB-Funktionen mit denen man ein Leonardo als Maus, Keyboard oder Joystick verwenden kann, bieten zusätzliche Einsatzmöglichkeiten. Die bereits erwähnten Beispiele liefern dazu dem Anwender einen ersten Eindruck und Beispiele, welche als Grundlage für eigene Anwendungen genutzt werden können.
Anschlussbelegung:
Die Anzahl der Anschlusspins auf den Buchsenleisten und die Position der Buchsenleisten wurde beim Arduino Leonardo nicht geändert. Aber die Anschlussbelegung der einzelnen Pins hat sich aber teilweise geändert und muss bei der Verwendung von einem bestehenden Shield oder beim Einsatz einer Lösung für Arduino Uno beachtet werden.
Nachfolgende Tabelle zeigt die Unterschiede der Pins zwischen Arduino Uno und Arduino Leonardo:
Bezeichnung | Uno | Leonardo |
A06-A11 | – | D4,6,8,9,10,12 |
PWM | D3,5,6,9,10,11 | D3,5,6,9,10,11,13 |
SPI | D10,11,12,13 | ICSP Stecker |
TWI (I2C) | A04,05 und SCL, SDA | D2,3 und SCL, SDA |
Durch die unterschiedliche Anschlussbelegung, speziell des I2C-Bus und der SPI-Schnittstelle, können etliche Standardshields nicht mehr genutzt werden. Zu erwähnen sind hier SD Card Shields und älterer Versionen des Ethernet Shield, welche den SPI-Bus über die Pins 10 bis 13 nutzen.
Nachtrag: das aktuelle Ethernet Shield (Version 6) nutzt den SPI-Bus welcher über den ICSP-Stecker vom Arduino-Board geliefert wird.
Testanwendung:
Meine Testanwendung ist ein kleiner Datenlogger, welche über die serielle Schnittstelle einen Temperaturwert in eine Textdatei schreibt. Das Leonardo Board arbeitet dabei als Keyboard. Auf dem angeschlossenen Rechner muss dazu keine Software installiert werden. Der Datenlogger nutze ich gerade, da ich verschiedene Tests mit Sensoren mache und auf diese Art einfach Messdaten in einer Textdatei speichern kann.
Wie im Getting-Started Guide unter „Good Coding Practice“ beschrieben ist, sollte beachtet werden, dass bei Einsatz des Leonardo als Keyboard, das Programmieren des Boards schwierig sein kann.
if the Mouse or Keyboard library is constantly running, it will be difficult to program your board. Functions such as Mouse.move() and Keyboard.print() will move your cursor…. and should only be called when you are ready to handle them. It is recommended to use a control system to turn this functionality on, like a physical switch.
Um den Logger zu deaktivieren, habe ich dazu einen Schalter an Pin 2 angeschlossen. Im Code wird dieser jeweils abgefragt und, falls der Schalter eingeschaltet ist, wird die Keyboard-Funktionalität aktiviert und Daten geschrieben.
// Schalter abfragen
int buttonState = digitalRead(buttonPin);
// Wenn Signal = HIGH
if (buttonState == HIGH)
{
...
}
Die komplette Loggerfunktion liest einen Analogsignal von einem LM35 Temperatursensor ein und sendet die Daten an die Textdatei. Nach dem Senden des Temperaturwertes wird mit einer zusätzlichen Keyboard-Anweisung (Strg-s) die Datei gespeichert. Nach einer Verzögerung von 2 Sekunden beginnt die Messung wieder von Anfang an.
const int buttonPin = 2;
float valTemp;
int TempPin = 0;
void setup() {
// Eingang für Schalter:
pinMode(buttonPin, INPUT);
// Keyboard Initialisierung
Keyboard.begin();
}
void loop()
{
// Schalter abfragen
int buttonState = digitalRead(buttonPin);
// Wenn Signal = HIGH
if (buttonState == HIGH)
{
// Analogwert einlesen
valTemp = analogRead(TempPin);
// Umwandlung 0-100 Grad
valTemp = (5.0 * valTemp * 100.0)/1024.0;
Keyboard.println(valTemp);
// Speichern
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('s');
delay(100);
Keyboard.releaseAll();
}
delay(2000);
}
Im Texteditor auf dem Desktop wird nun alle 2 Sekunden ein Messwert gespeichert.
Fazit:
Das neue Arduino Leonardo Board bietet mit den neuen Funktionen viele zusätzliche Anwendungsmöglichkeiten. Dank den vorhandenen Anleitungen ist eine Inbetriebnahme problemlos durchzuführen. Mit den mitgelieferten Beispielen für Keyboard-und Mausemulation kann man sofort mit eigenen Experimenten beginnen.
Obwohl der Arduino Leonardo die gleiche Bauform und die gleichen Buchsenleisten besitzt, ist das neue Board nicht kompatibel mit dem Standardboard. Die Anschlussbelegung hat sich bei verschiedenen Funktionen geändert und viele bisherige Shields können ohne Anpassung nicht mehr genutzt werden. Neben der elektrischen Inkompatibilität können auch etliche Bibliotheken durch die veränderte Pinbelegung nicht mehr genutzt werden
Neben dem von mir getesteten Arduino Leonardo mit Headers ist auch eine Leonardo-Version ohne Headers und Buchse für Stromversorgung verfügbar. Diese Bauform ist noch etwas kostengünstiger und eignet sich für Lowcost-Anwendungen und Anwendungsfälle mit geringer Bauhöhe oder knappem Platzbedarf.
Abschliessend kann man sagen dass das neue Arduino Leonardo Board durch die erweitere Funktionalität als USB-Device neue Möglichkeiten bietet. Für Standardanwendungen und für Einsteiger ist das Board nicht geeignet da der Leonardo nicht voll kompatibel mit den bisherigen Standardboards ist.
Das Arduino-Team hat soeben die Arduino IDE 1.0.1 freigegeben.
Arduino 1.0.1 unterstützt nun auch das neue Board Arduino Leonardo. Zusätzlich wird die Entwicklungs-Oberfläche international und kann in 33 verschiedenen Sprachen dargestellt werden.
(via Twitter)
Bei Entwicklungen und Experimenten mit Arduino wird das Board meist über die USB-Schnittstelle mit Spannung versorgt da über den USB-Port die Sketche auf den Microcontroller geladen werden.
Nach der Realisierung der Arduino-Anwendung wird die fertige Lösung üblicherweise mit einem eigenen Steckernetzteil oder Batterie-Modul versorgt. Die Versorgung des Arduino-Boards über USB wird meist nicht verwendet da die USB-Ports des Rechners für andere Anwendungen benötigt werden oder die realisierte Lösung wird abseites des Rechners betrieben.
Der USB Power Adapter ist eine Stromversorgungsmodul welches über mehrere USB-Stecker 5 Volt liefert. Über ein handelsübliches USB-Kabel kann man mit dem Adapter beispielsweise Arduino-Boards versorgen und hat weiterhin seine USB-Schnittstellen auf dem Rechner frei. Wie der Name sagt, ist der USB Power Adapter nur ein Versorgungsmodul. Datenverkehr über die Datenleitungen der USB-Stecker ist nicht möglich da keine Verbindung mit dem Rechner besteht.
Die Schaltung des USB Power Adapters ist einfach und benötigt neben einer Leiterplatte ein paar Widerstände und USB-Stecker.
Damit man mehrere Geräte parallel versorgen kann, wird die Schaltung je nach Bedarf mehrfach aufgebaut werden. Für den USB Power Adapter wurde die Schaltung in 3-facher Ausführung auf einem Perma-Proto 1/2 Sized von Adafruit aufgebaut.
Damit die USB-Stecker auf die Leiterplatte passen, wurden an der oberen Seite des Perma Boards die beiden Stromversorgungsreihen abgetrennt. Die 4 Anschlüsse des USB-Steckers und die Montagestifte passen nun genau in das Raster der Bohrungen auf der Leiterplatte. Auf einem Perma-Proto 1/2 Sized Breadboard, also einer Leiterplatte mit der halbe Grösse eines Standardbreadboards passen ideal 3 USB-Stecker drauf.
Wie man auf der Lötseite (Bild oben) der Leiterplatte sieht, ist das Perma-Proto wie ein handelsübliches Breadboard aufgebaut. Diese Anordnung der Lötaugen und Leiterbahnen erlaubt einen sauberen und übersichtlichen Aufbau der Schaltung des USB Power Adapters.
Die 5 Volt für die Versorgung des USB Power Adapters können nun über ein Steckernetzteil oder Labornetzteil zugeführt werden. Je nach Art der Spannungsquelle werden für die Spannungszuführung eine 2.1mm-Buchse oder Bananenbuchsen eingesetzt.
Mein USB Power Adapter wird in einem kleinen Gehäuse auf dem Labortisch platziert und liefert nun Strom für mehrere Arduino-Boards.
Durch die stabile und feste Leiterplatte des Perma-Proto bekommt man eine hohe Festigkeit des gesamten Leiterplattenaufbaus. Mittels der beiden Montagebohrungen kann man die Leiterplatte fest in einem entsprechenden flachen Gehäuse befestigen.
Anwendungsbeispiel:
Deuligne ist ein 2-zeiliges LCD-Shield und wurde mir freundlicherweise vom französischen Hersteller Snootlab zur Verfügung gestellt. Das Deuligne LC-Display sieht zwar wie die meisten 2-zeiligen Display-Shields für Arduino aus, unterscheidet sich aber in der Funktionalität. Das Display wird über den I2C-Bus angesteuert. Durch die serielle Ansteuerung des Displays stehen alle digitalen Port für eigene Anwendungen zur Verfügung.
Das Deuligne LCD Shield wird als Bausatz oder als Fertigmodul im Shop von Snootlab angeboten. Der Bausatz beinhaltet alle nötigen Bauteile und wird in einem wiederverwendbaren ESD (Antistatik)-Beutel geliefert.
Der Aufbau des Deuligne Shields ist recht einfach und wird in einer ausführlichen und bebilderten Anleitung beschrieben. Die Anleitung zeigt dabei jeden einzelnen Schritt des Zusammenbaus. Mit dieser detailierten Beschreibung gelingt der Aufbau des Displays auch Einsteigern problemlos.
Nachdem das Display zusammengelötet ist, kann es auf dein Arduino-Board gesteckt werden. Die Leiterplatte des Displays ist dabei etwas grösser als die Abmessungen des Arduino, da alle Anschlusspins auf die Leiterplatte geführt sind. Montagelöcher auf der Leiterplatte erlauben eine einfache Befestigung des Displays an einer Frontplatte eines Gehäuses. Zusätzlich stehen auf dem Deuligne Shield ein Joystick mit Positionen, ein Potentiometer für den Display-Kontrast und ein Resetbutton zur Verfügung.
Die Inbetriebnahme des Deuligne ist recht einfach. Mittels einer eigenen Bibliothek und etlichen Beispielsketchen kann man die einzelnen Funktionen und die Möglichkeiten des Displays austesten.
Obwohl das Display über den I2C-Bus angesteuert wird, erfolgt die Ausgabe von Daten auf das Display wie bei einem Standard-Display mittels Print-Befehl.
void loop()
{
lcd.clear();
lcd.backLight(true);
lcd.setCursor(0,0);
lcd.print("Deuligne Shield");
lcd.setCursor(0,1);
lcd.print("Kitreview");
delay(1000);
}
Fazit:
Das Deuligne LCD Shield ist ein ausgereiftes Produkt und überzeugt durch die professionelle Leiterplatte, die ausführliche Anleitung und die vielen Programmbeispiele. Durch die serielle Ansteuerung über den I2C-Bus stehen weiterhin alle digitalen und 3 analoge Ports zur Verfügung. Die Ports können direkt am Shield angelötet und weitergenutzt werden. Wie bei allen Snootlab Shields ist die Leiterplatte sauber und gut lesbar beschriftet. Die Ansteuerung des Display ist einfach und unterscheidet sich nicht von einem parallelen Display. Die vielen Beispiel-Sketche zeigen die Möglichkeiten des Display. Mit dem zusätzlichen Joystick als Bedienelement kann eine einfache Benutzerführung realisiert werden. Dabei wird nur ein einzelner Analog-Eingang für das Einlesen der Joystick-Position verwendet.
Das Deuligne LCD Shield hat mich überzeugt und kann ich weiterempfehlen.
Arduino-Anwender in der Schweiz können den Bausatz über den offiziellen CH-Distributor play-zone.ch beziehen.
Suchen
Aktuelles
- Arduino Praxiseinstieg, 5. Auflage erschienen
- Arduino UNO R4 offiziell vorgestellt
- Review: PCB Service von WellPCB
- Review: SMD-Bestückungs-Service von JLCPCB
- Portable Power Supply – VoltBot
- Leiterplatten-Panel bei JLCPCB
- Arduino Praxiseinstieg, 4. Auflage erscheint am 29.04.2019
- Klein, kleiner, ganz klein – ATtiny10
- Review – Leiterplatten (PCB) von JLCPCB
- Arduino Day 2018
Kategorien
Archive
- Dezember 2023
- Juni 2023
- Juli 2020
- Dezember 2019
- Oktober 2019
- Juni 2019
- April 2019
- Juli 2018
- Mai 2018
- November 2017
- Oktober 2017
- September 2017
- Juli 2017
- April 2017
- März 2017
- Februar 2017
- Dezember 2016
- November 2016
- September 2016
- Mai 2016
- Januar 2016
- Dezember 2015
- August 2015
- Mai 2015
- März 2015
- Januar 2015
- Dezember 2014
- September 2014
- August 2014
- Juli 2014
- Juni 2014
- Mai 2014
- April 2014
- März 2014
- Februar 2014
- Januar 2014
- Dezember 2013
- Oktober 2013
- September 2013
- August 2013
- Juni 2013
- Mai 2013
- April 2013
- März 2013
- Februar 2013
- Januar 2013
- Dezember 2012
- November 2012
- Oktober 2012
- September 2012
- August 2012
- Juli 2012
- Juni 2012
- Mai 2012
- April 2012
- Februar 2012
- Januar 2012
- Dezember 2011
- November 2011
- Oktober 2011
- September 2011
- August 2011
- Juli 2011
- Juni 2011
- Mai 2011
- April 2011
- März 2011
- Januar 2011
- Dezember 2010
- November 2010
- Oktober 2010
- September 2010
- August 2010
- Juli 2010
- Juni 2010
- Mai 2010
Kommentare
ArduinoPraxis [...]
ArduinoPraxis [...]
Werner Smidt [...]
ArduinoPraxis [...]
Oliver [...]