Samstag, 23. Januar 2016

Arduino RFID Modul RC522

Nachdem ich sehr interessante Beschreibungen von RFID Anwendungen für den Arduino gelesen hatte, wollte ich mir ein RFID Kit für den Arduino besorgen und meine eigenen Erfahrungen sammeln.
Nach doch einer recht langen Wartezeit kamen die beiden RFID RC522 Kits aus China bei mir an.



Neben dem Modul und den Leiterplatten Steckerleisten waren auch zwei RFID Tags im Lieferumfang enthalten.

Hintergrund

Wer an mehr Hingrundinformation zu RFID interessiert ist, kann unter Makecourse eine sehr ausführliche Beschreibung bekommen.

Arduino Bibliotheken

Von der Arduino Playground Seite zu RC522 kommt man zur RC522 Bibliothek von Miki Balboa (miguelbalboa), die eine umfangreiche Dokumentation mit Fritzing Darstellungen für die Anwendung bietet.
Hier die Beschreibung des Pin Layouts für die Nutzung der Bibliothek. 







Schnell war ein kleines Demo auf dem Breadbord zusammengesteckt, 2 von 4 RFID Transpondern sind bekannt und lassen eine grüne LED leuchten, sonst eine rote...

Weiter geht es, die RFID Transponder mit Informationen zu beschreiben, aus denen dann Zugriff gewährt wird oder eine Anzeige auf einer LCD dargestellt wird.

Beispiel einfachste Zugangskontrolle

Dazu braucht man ja wenigstens zwei Dinge, etwas, was die Tags so vorbereitet, damit sie dann ausgewertet werden können.
Dazu werden die fabrikneuen Tags mit einem Namen und einer Pin beschrieben.
Zukünftig würden auch die Schlüssel geändert werden, aber das sind dann nur Details.

Zum Auslesen und Anzeigen auf einem LCD Display und dann weiter ein Relay oder Servo zum Öffnen einer Tür, durch den Pin könnte man zusätzlich noch mit einem Keypad den im Transponder gespeicherten Pin abfragen.

links werden die Tags beschrieben, rechts ausgewertet

Zugang OK, der Name wird ausgelesen und angezeigt

Alarm! Unbefugter Zugang, das ging noch mal gut...

Montag, 4. Januar 2016

433MHz Kommunikation als Zeitgeber

Mit meinem DCF77 Projekt, hatte ich die Möglichkeit, die Uhrzeit sehr genau zu bestimmen und anzuzeigen.
In anderen Projekten, die eine RTC nutzen, nutzte ich die DCF77 Bibliothek und verband  das DCF77 Signal und Masse der beiden Boards, um so die RTC genau zu stellen.
Diese Methode funktioniert, ist aber mühsam.
Es wäre doch sehr bequem, die Zeit und das Datum drahtlos zu verteilen und auf der Empfänger-Seite wird ein SyncProvider genutzt, der aus der empfangenen Nachricht die Zeit synchronisiert.

433MHz Rx/Tx Module

 

Diese Module bekommt man recht günstig auch gleich als Paket mit 10 Sendern und Empfängern.
Ich nutze die VirtualWire Bibliothek und bin sehr zufrieden damit.






 

Erweiterung des DCF77 Moduls für den 433MHz Sender

 
Das Datum und die Zeit werden jetzt von der DCF77 synchronisierten Uhr gesendet, jede Sekunde die komplette Information, allerdings nur auf sehr kurze Distanz.
Der Empfänger braucht jetzt nur die VirtualWire Bibliothek zu nutzen, die Nachricht zu empfangen und als Datum/ Zeit zurückzugeben, als SyncProvider.

 

433MHz SyncProvider Empfänger

 






Sonntag, 3. Januar 2016

THDuino Knight Rider

Aus dem Arduino Knight Rider Post (die Knight Rider Version 3) habe ich die Idee eines LED Lauf-Licht genommen, um es mit einem kleinen Shield für den THDuino zu bauen.



THDuino mit LED Shield
Es sind 8 LEDs, die über Transitor von Arduino Ports angesteuert werden.




Die Laufzeit lies sich nur über eine Programm Änderung beeinflussen, Idee, einen Distanz Sensor nutzen, je dichter ein Objekt kommt, um so schneller läuft das LED Licht...





Mit einem Distanz-Sensor wird die Laufgeschwindigkeit reguliert


Der Sketch lässt sich noch verbessern, es stockt etwas bei schnellen Distanz Änderungen.

I2C Scanner mit 3Wire LCD Anzeige

Der für mich bequemste Weg ein 16x2 oder 20x4 LCD Display zu steuern ist über den I2C Bus.
Funktioniert zuverlässig und ist sehr einfach aufzubauen.
Es ist manchmal mühsam, die Adressen der Geräte herauszufinden, manchmal ist die Dokumentation falsch, also programmiert man den I2C Scanner Sketch und lässt sich die verbundenen Geräte über den Seriellen Monitor anzeigen.




In diesem Projekt nutze ich ein 3-Wire LCD Display, um die I2C Adressen, der angeschlossenen Geräte anzuzeigen.

Anzeige von 4 erkannten Geräten mit den Adressen-Informationen 
Aufbau der 2 LCD Displays und der RTC mit EEPROM
Hier sieht man das 3Wire Board für die LCD Anzeige

Der Sketch ist der original I2C Scanner mit der zusätzlichen Ausgabe auf dem LCD Display, in meinem Fall ein 16x2 Display für ein 20x4 Display müssten minimale Anpassungen durchgeführt werden.

Donnerstag, 31. Dezember 2015

Freeduino serial V2.0 Bausatz

Über die Feiertage hatte ich das Vergnügen, einen kleinen Bausatz für einen Freeduino serial V2.0 zusammenzubauen.




Erste Funktionsprüfung

Fertiger Bausatz

Der Bausatz ließ sich sehr leicht zusammensetzen, von NKC Electronics gibt es auch einen Blog Eintrag mit einer Schritt-für-Schritt Anleitung für diesen Bausatz. Braucht man allerdings nicht. Es ist sinnvoll, die Bauelemente nachzumessen, auf der Leiterplatte sind die Bauelemente mit ihren Werten vermerkt, macht es eigentlich sehr sicher keine Fehler zu machen.
Nach dem Zusammenbau habe ich ohne die beiden Schaltkreise die Spannungen gemessen, um einen Kurzschluss oder eine Überspannung auszuschließen, danach erst die beiden Integrierten Schaltkreise in die mitgelieferten Sockel gesteckt.
Da ich noch einen sehr alten Laptop (Dell Latitude C650) mit original serieller Schnittstelle, hatte ich eine Probleme Arduino Sketches zu laden.
Man muss nur daran denken, daß es sich um einen Arduino Duemilanove kompatibles Board handelt und entsprechend die Arduino IDE einstellt.

Das erste Projekt mit dem Freeduino serial V2.0 und enem 2.8'' TFT LCD Board

 

erstes Projekt mit dem Freeduino serial V2.0 und einem 2.8'' TFT LCD (LGDP4535)

Ich hatte mir vor einiger Zeit ein 2.8'' TFT LCD Board mit Touch und SD Unterstützung günstig über eBay beschafft. Leider hatte ich es bisher nicht geschafft, dieses Board zum Laufen zu bekommen.
Erst jetzt habe ich mir dieses Teil noch einmal vorgenommen und gleich 2 funktionierende Libs gefunden.


  1. Bibliothek AdaLGDP4535TFTLCD
    1. nutzt die Adafruit Gfx Bibliothek,
    2. hat ein Beispiel Sketch
  2. Bibliothek TFT-LGDP4535 
    1. nutzt auch die Adafruit Gfx Biliothek,
    2. bietet zusätzlich eine xTouch Bibliothek für die Touch-Funktion,
    3. hat zahlreiche Beispiel Sketches für Anzeige, Touch und SD Funktion,

Das Beispiel ist der Taschenrechner aus den Beispielen von Ceez.

Sonntag, 16. November 2014

2,2" TFT ILI9341 Arduino Shield

TFT Hardware

TFT Displays werden immer günstiger, ich habe ein 2,2" TFT mit SPI Interface (ILI9341 5 Pin) für unter 6 € mit Porto aus GB bekommen. Das ist ja unglaublich, wenn man überlegt, das dieses Angebot in die Nähe des billigsten LCD Displays mit SPI Interface kommt, aber viel mehr kann.




Die Auflösung dieses TFT Displays ist viertel VGA (320x240 Pixel). 

Projekt

Bei diesem Projekt ging es vor Allem, um die Hardware Ansteuerung, was ich dann damit machen werde, wenn das Shield fertig ist, weiß ich noch nicht.
Ich denke, wenn ich auch auf den SD Adapter zugreifen kann und man in einer erträglichen Geschwindigkeit auf Bilder zugreifen kann, wäre ein kleiner Bildbetrachter doch eine witzige Anwendung.
Dieses kleine Projekt wurde inspiriert von Gordon Pimblotts Blog Beitrag zu diesem Display.

 

Pin-Zuordnung


TFT-01 -> VCC3.3V
TFT-02 -> GND
TFT-03 -> CS -> D10
TFT-04 -> Reset -> D08
TFT-05 -> DC -> D09
TFT-06 -> MOSI -> SD-02
TFT-07 -> SCK -> SD-04
TFT-08 -> LED (D07 oder 3,3V mit 150 Ohm)
TFT-09 -> MISO -> SD-03
SD-01 -> CS -> D04


 

Pegelanpassung


Da das TFT Display ausschließlich mit max. 3.3V betrieben werden darf, muss nicht nur die Versorgungsspannung von 3.3V, sondern auch die Signalpegel mit max. 3.3V bereitgestellt werden.

Auch wenn der CD4050BE nicht die maximale SPI Geschwindigkeit schaffen sollte, nutze ich diesen Ansatz für mein Projekt.

Erster Versuchsaufbau auf Breadboard und Adafruid GFX mit ILI9341 Treiber,



Das Protoboard realisiert die Pegel-Wandlung und nimmt das TFT Board auf







 

Arduino Bibliotheken

 


Folgende Arduino Bibliotheken unterstützen dieses TFT Display mit ILI9341 Controller:


Für die UTFT Bibliothek für einen Arduino UNO nutzen zu können, muss man in der dafür vorbereiteten Memsaver Datei die Unterstützung für alle Controller außer dem ILI9341_5P deaktivieren. Damit steht jetzt genug Platz im UNO zur Verfügung, um das UTFT Demo 320x240 ablaufen zu lassen. 


Wie bei Gordon beschrieben, alles bis auf die ILI9341 5SP Treiber entfernen, so passte Gordons Sketch, der Hennings UTFT nutzt in den UNO Speicher.



Die Adafruid ILI9341 Bibliothek nutzt die SPI Pins und erreicht im Vergleich zur Nutzung 'normalen' Pins eine beachtliche Geschwindigkeitsverbesserung.
Ich musste nur im Konstruktor neben Chip Select und DC auch das Reset Pin mit übergeben, um im SPI Modus arbeiten zu können.






TFT SD Bildbetrachter


Ein kleines Projekt direkt vom TFTV2 Beispiel TFTBMP abgeleitet, das ein paar Bilder von der SD Karte auf dem TFT darstellt.




Montag, 4. August 2014

Arduino Due TFT Analog Uhr

Henning Karlsen hat eine sehr praktische Universal TFT Bibliothek für Arduino Mega und Arduino Due geschaffen. Schon das Demo ist sehr eindrucksvoll.
Als Fingerübung hat er ein UTFT Analog Clock Project programmiert.
Mit meinem ersten Arduino Due habe ich dieses Projekt nachgebaut.

Alles recht geradeaus, TFT 320x240 3,2'' mit dem entsprechenden Adapter für den Arduino Due, alles ganz einfach. 
Was fehlt, eine RTC, eigentlich kein Problem, aber wo ist die Proto-Area bei diesem Board? Ja gibt es nicht, dann muss man improvisieren.

Auf dem Adapter Board eine RTC 
(mit Panzerband befestigt! nur für das Foto entfernt, damit man es sehen kann)

Es funktioniert, eine TFT Analog Uhr!

Einstellung per Touch!