Table of Contents

Seeeduino Lite Review (Test)

Im Rahmen vom Free 4 Review konnte ich das Seeeduino Lite testen. In den folgenden Kapitel findet Ihr Informationen zum Board wie auch persönliche Erfahrungen während dem Test.

Lieferung / Montage

Das Board wird in einer Kartonschachtel geliefert. Die Steckerleisten ist noch nicht montiert und können einfach eingelötet werden.

Das fertig montierte Board sieht dann so aus, es braucht nur noch ein Micro USB Kabel und schon ist das Board einsatzbereit.

Installation

IDE

Auf dem Computer wird die Arduino IDE benötigt und noch folgende zusätzliche Dateien:

Die USBCore.cpp muss ins Verzeichnis \hardware\arduino\cores\arduino kopiert werden und die boards.txt in das Verzeichnis \hardware\arduino.

Die Original Dateien habe ich vorher umbenannt um im Notfall wieder zurück zu kommen.

http://www.seeedstudio.com/wiki/images/f/f3/USBCore.zip

http://www.seeedstudio.com/wiki/images/0/04/Boards.zip

Danach hat man in der Arduino IDE das Seeduino Lite Board zur Auswahl.

Treiber

Für Windows müssen zuerst noch USB Treiber installiert werden. Hier der Link zu den Treibern:

http://www.seeedstudio.com/wiki/images/6/6c/Driver.zip

und zu der detailierten Beschreibung:

http://www.seeedstudio.com/wiki/Seeeduino_Lite#Get_Start_with_Seeeduino_Lite

Das hat für Windows bestens funktioniert. Für Linux benötigt es keine zusätzlichen Treiber. Bei meinem Ubuntu habe ich das Board nicht zum laufen gebracht, jedoch mit dem Robox-Live läuft es problemlos.

Unterschiede

Die meisten Unterschiede zu einem Standard Arduino UNO Board sind bereits auf der Produkteseite von Boxtec beschrieben:

http://shop.boxtec.ch/seeeduino-lite-p-41478.html

Dazu ergänzen möchte ich noch folgende Spezialitäten:

* SPI Schnittstelle ist nicht wie üblich über die Port 10 bis 13 angeschlossen sondern nur über den ICSP Stecker verfügbar. Also Vorsicht bei Shield welche SPI über die Port verwenden wie dem SD Card Shield.

* I2C ist nicht über A4/A5 verfügbar, kann aber angepasst werden.

* Kein Reset wenn der serielle Port geöffnet wird. Bei der Verwendung von Serial.print(), println() oder write() Befehlen im Setup werden die Ausgaben nicht angezeigt, wenn der Serial Monitor geöffnet wird.

* Die absoluten Zahlenwerte der analogen Pins sind höher als bei einem Uno, das liegt daran, dass der Lite mehr digitale Ausgänge hat. Also immer mit A0-A5 arbeiten und nicht mit 15.

Diese Spezialitäten werden in den folgenden Kapiteln nochmals genauer erläutert.

Weitere Details können auch noch im Seeeduino Wiki nachgeschaut werden:

http://www.seeedstudio.com/wiki/Seeeduino_Lite#Input_and_Output

Shields

Das Seeeduino Lite habe ich mit den folgenden Shield getestet. Sehr praktisch bei der Verwendung von Shields ist der seitlich zugängliche Reset Knopf welcher nicht wie bei anderen Boards nicht mehr erreichbar ist sobald ein Shield darauf gesteckt ist.

Test Board

Das Testboard ist einfach dazu da alle Ein/Ausgänge eines Arduinos zu prüfen. Es baut mit einem Spannungsteiler eine Grund-Spannung auf und prüft in unterschiedlichen Verfahren alle Pins. Mehr Details dazu hier:

http://forum.boxtec.ch/index.php/topic,2275.0.html

Weil der Seeeduino Lite jedoch mehr digitale Pins hat als der Uno musste ich hier das Programm anpassen. Hier der Teil der Kontanten welche angepasst wurden.

const int FirstAnaPort = A0; old 15 const int LastAnaPort = A0 + 5; old 19

Der Test hat dann erfolgreich funktioniert.

So sieht der Seeeduino Lite mit TestBoard aus:

RTC Time Shield

Mein selber gebautes RTC Time Shield wollte ich natürlich auch auf dem Lite ausprobieren. Zuerst ist es nicht gelaufen, das Problem war schnell gefunden der I2C Bus ist beim Seeeduino Lite nicht über SDA(A4) und SCL(A5) geführt. Das heisst die Wire Libary und mein Shield können nicht kommunizieren.

Das Seeeduino sieht aber vor dass dies angepasst werden kann. Auf der Rückseite vom Board können die I2C und auch die SPI Anbindung geändert werden. Dabei muss zuerst mit einem Messer die Verbindung vom jeweils mittleren Kontakt zum A4 bzw. A5 durchtrennt werden und dann jeweils vom mittleren Kontakt zum SDA/SCL die Verbindung mit einem Lötkolben hergestellt werden.

Nachteil: dadurch sind A4 und A5 nicht mehr verfügbar sonder nur noch SDA und SCL. Natürlich kann man das ganze auch wieder zurück bauen aber es ist doch relativ aufwendig.

Hier das Photo vorher:

und nachher:

Jetzt läuft auch das RTC Shield sauber.

SD Card Shield

Das SD Card Shield läuft nicht auf Anhieb. Hier stellt sich das gleiche Problem weil SPI standardmässig nicht über D11-D13 geführt sind. Somit muss auch hier das Messer und der Lötkolben ran. Die Pins D11,D12,D13 müssen auch hier auf der Rückseite von ihrer ursprünglichen Aufgabe getrennt werden und dann mit MOSI,MISO,SCK verbunden werden.

Jetzt läuft auch das SD Shield nur leider sind die Pins D11-D13 nicht mehr normal nach aussen geführt.

Grove Stecker

Der Grove Standrad ist für mich neu, bisher hatte ich Ihn noch nie verwendet. Der Seeduino Lite verfügt über zwei direkte Grove Stecker, einen I2C und einen “Serial”. Normalerweise auf einem Arduino zuerst ein Base Shield http://shop.boxtec.ch/grove-base-shield-p-40483.html ansgeschlossen. Auf diesem Shield gibt es dan sehr viele Stecker. Der Seeduino bittet das jedoch direkt an jedoch wie gesagt nur 1xI2C und 1xSERIAL.

Die Grove Stecker sind also schön und gut nur in der Praxis werden aber selten nur max. 2 Grove Stecker benötigt.

Ich habe den Grove Ultransonic Ranger http://shop.boxtec.ch/grove-ultrasonic-ranger-p-40781.html versucht direkt am Seeduino Lite anzuschliessen. Dabei muss man zuerst prüfen welchen Schnittstellentyp die Komponente hat, weil die Stecker für I2C und “Serial” die selben sind. Hier ist es “Serial”.

Der “Serial” Grove Stecker ist mit Rx/Tx das heisst D0/D1 verbunden. Die Library lassen sich über den Boxtec Artikel besorgen und Beispiel Programme sind auch verfügbar.

Einzige Anpassung die man vornehmen muss, damit es funktioniert ist der Pin 0 der ultrasonic Klasse mitzugeben beim initialisieren.

#include “Ultrasonic.h” Ultrasonic ultrasonic(0);

Gleich beim ersten Test war ich jedoch etwas überrascht dass die Distanz nur auf ganze cm abgerundet ausgegeben wird. Es gibt jedoch die Möglichkeit direkt auf das das “Duration” Attribut zuzugreifen und danach die Berechnung der Distanz selber vorzunehmen. Hier der Ausschnitt:

ultrasonic.MeasureInCentimeters();
Serial.print(ultrasonic.RangeInCentimeters);
Serial.print(" cm ");  
distacne_cm = ultrasonic.duration;
distacne_cm = distacne_cm / 29 / 2 ;
Serial.print(distacne_cm);
Serial.println(" cm ");  
Serial.print(ultrasonic.duration);
Serial.print(" Duration ");  
delay(100);

Wie das Resultat zeigt bringt es eine bessere Genauigkeit. Es kann natürlich sein dass die Distanz nicht auf den Milimeter stimmt aber wichtig für mich sind vor allem Änderungen in der Distanz und nicht die exakte Distanz selber.

Anwendung Maus/Tastatur

Wie der Arduino Leonardo bietet auch der Seedunio Lite die Möglichkeit sich als Maus oder Tastatur am Computer auszugeben. Dadurch lassen sich beliebe Programme steuern.

In der IDE findet Ihr schon einige Beispiel Programme dazu unter <Beispiele><USB>.

Maus

Die Funktionalität ist jedoch relativ eingeschränkt, die Maus lässt sich nur vom aktuellen Punkt aus in eine gewisse Richtung verschieben. Es ist nicht möglich die Maus auf eine bestimmte Position zu fahren.

In Kombination mit dem Ultraschall Messmodul kann man aber trotzdem lustige Spiele damit spielen. Ich habe z.B. mit meiner Hand in der Luft direkt das Pong Spiel gespielt.

Meine ursprüngliche Idee war die Maus mit Hilfe von zwei Ultraschall Sensoren in der X und Y Achse zu bewegen. Das ganze funktioniert leider nur eingeschränkt weil der Messbereich jedes Sensors nur 30 Grad ist und dadurch keine grössere Fläche entsteht um in 2 Dimensionen zu steuern. Ebenfalls war mir die Reaktionszeit der ganzen Installation zu langsam um damit wirklich gezielt eine Maus zu steuern.

Tastatur

Damit lassen sich alle Tastatureingaben vom Seeduino Lite aus steuern. Man könnte die Zustände verschiedener Sensoren auslesen und dadurch die Tastatureingaben steuern.

Als erstes habe ich an Personen gedacht welche Motorische Behinderungen haben, man könnte Ihnen eine Grosse Tastatur bauen auf der Sie herumlaufen können um E-Mails zu schreiben. Oder eine andere Idee, ich integriere einen Schalter in meinen Stuhl damit ich zum schreiben eines grossen Buchstabens aufstehen kann und zum schreiben kleiner Buchstaben sitzen bleiben.

Also an Euch Neue Ideen zu suchen und umzusetzen.

Kein Reset mit der Seriellen Schnittstelle

Die Serial Schnittstelle kann beim Seeeduino Lite wie auch beim Leonardo kein Reset auslösen. Wenn also Serial.print Ausgaben im void setup() ausgegeben werden sind diese über den Serial Monitor von der IDE nicht zu sehen. Als Lösung kann man vor der Ausgabe solcher Befehle überprüfen, ob der serielle Port geöffnet ist:

while (!Serial);

Befehlsreferenz: http://arduino.cc/en/Serial/IfSerial

Weitere Informationen

Hier noch eine Linksammlung für weitere Informationen:

Produktseite Boxtec: http://shop.boxtec.ch/seeeduino-lite-p-41478.html

Wiki Seite Seedstudio: http://www.seeedstudio.com/wiki/Seeeduino_Lite

Datei USBCore.cpp: http://www.seeedstudio.com/wiki/images/f/f3/USBCore.zip

Datei Boards.txt http://www.seeedstudio.com/wiki/images/0/04/Boards.zip

Windows Treiber http://www.seeedstudio.com/wiki/images/6/6c/Driver.zip

Fazit

Es ist jetzt einige Zeit vergangen seit ich mit dem Seeeduino arbeite. Der Anfang war schwierig weil das Board aus unerklärlichen Gründen auf dem Ubuntu nicht laufen will.

Danach konnte ich aber mit Windows sehr gut mit dem Board arbeiten.

Das Board bietet für seinen kleinen Preis sehr viel, hier die Plus Punkte:

Dagegen steht aus meiner Sicht nur ein Nachteil:

⇒ Es ist ein spezielles Board und hat seine Eigenheiten mit welchen man sich befassen muss um davon zu profitieren. Es kann nicht einfach als Ersatz für ein Uno eingesetzt werden. Weil die Pin Belegung und die SPI I2C Anschlüsse nicht analog funktionieren. Aber es ist auf jeden Fall ein Blick wert.

Dann wünsche ich weiterhin viel Spass mit dem Seeeduino Lite.

Dinoi