Den Pi Zero habe ich schon eine Weile in der Schublade liegen. Gleich als er in UK erschienen ist, habe ich mir einen für 5£ besorgt. Allerdings so ganz ohne Header und Netzwerk ist er erst einmal nur begrenzt einsetzbar. Im Zero Essentials Kit von Pi Hut war zwar ein OTG Adapter von Micro USB auf USB enthalten. Es stellte sich aber heraus, dass der defekt war. Ohne Header und ohne USB-Anschluss war das Projekt erst einmal auf Eis gelegt.
WeiterlesenAutor: admin (Seite 2 von 4)
Im ersten Teil dieser Einführung in den ATtiny ging es um einen ersten Überblick über den Aufbau eines Mikrocontrollers. Das kleine Kerlchen für gerade einmal 1€ enthält ja ein komplettes System mit CPU, RAM und Flash auf einem winzigen Chip. In der Abbildung oben ist die Belegung der Pins des ATtiny abhängig von der jeweiligen Konfiguration dargestellt. Ein Beinchen kann also einmal mit einem I/O-Port verbunden sein, mal mit dem SPI Modul, mal mit dem Analog-Digital-Coverter. Welche Funktion das ist, hängt von der Konfiguration der jeweiligen Register ab. In diesem Beitrag soll gezeigt werden, wie ein Programm für den ATtiny mit Hilfe von Assembler erstellt wird und wie eine dieser Funktionen – der I/O-Port PB3 (hellgrau) – für einen Timer-gesteuerten Blinker genutzt wird.
WeiterlesenIn den bisherigen Teilen dieser Serie wurde (1) die Idee vorgestellt (ein Radio auf Basis des Arduino, dass die zum Ort passende UKW-Senderliste von einem RasPi per IP-Geolokation bekommt), (2) das Skript zum Beschaffen der UKW-Senderliste mit Hilfe von Screen Scraping vorgestellt und (3) die Programmierung der Kommunikation zwischen RasPi und Arduino per Seriellem Port und das Speichern in einem EEPROM des Arduino gezeigt.
In diesem Teil wird der Aufbau des eigentlichen Radios auf Basis des TEA5767 erläutert. Dieser Chip ist ein hoch integrierter Mikrocontroller, der ein komplettes UKW-Radio enthält und per I2C angesteuert wird. Es gibt ihn für 1€ – 3€ in vielen Webshops bereits auf einem Breakout-aufgelötet. Ich habe dem Board noch Steckbrett-geeignete Pins verpasst, um damit besser experimentieren zu können.
Es ist fast ein ganzes Jahr her, seit meinem letzen RasPi-Projekt. In dieser Zeit habe ich mich intensiver mit Mikrocontrollern beschäftigt. Der einfache ARM-Prozessor des RasPi war ein guter Einstieg in die Protokolle mit anderen Bauelementen, wie i2c-Sensoren oder EEPROM-Speicherbausteinen. Ich wollte noch kleinere Hardware, noch effizienter im Stromverbrauch, noch näher an der Hardware programmieren. Über den Umweg Arduino habe ich mir die Atmel ATMega Mikrocontroller näher angesehen. Der kompakteste 8bit Atmel Mikrocontroller ist der ATtiny. Den ATtiny85 bekommt man etwa für 1 € und man erhält ein System mit einer 20 MHz CPU, 512 Byte RAM, 8 KB Flash und 512 Byte EEPROM auf gerade einmal 0.73 cm². Programmiert wird er in C oder Assembler. Er versteht 120 (Maschinen-Code) Befehle und unterstützt mit i2c und SPI die wichtigen Industrieprotokolle für Sensoren und andere Mikrocontroller.
In Teil 2 wurde das python-Skript für die Erstellung der Senderliste vorgestellt. Für die Übertragung der Senderliste an den Arduino eignet sich die serielle Schnittstelle perfekt. Sie ist ja für die Kommunikation von lesbaren Zeichenfolgen geschaffen, daher sollte die Übermittlung einer Liste mit Sendernamen und Frequenzen kein Problem sein. Der Teufel ist jedoch ein Eichhörnchen und die Herausforderung einer seriellen Schnittstelle findet sich in den Details. Weiterlesen
Wie in Teil 1 bereits kurz erklärt, soll das Arduino-Radio mit dem TEA5767-FM-Chip die UKW-Senderliste passend zum eigenen Standort automatisch erhalten. Im ersten Schritt wird daher zunächst versucht, den eigenen Standort zu bestimmen. Dafür braucht es keinen GPS-Sensor. Schon die IP-Adresse liefert hinreichend gut den Standort, zumindest auf einige Kilometer genau. Das genügt, um die Radio-Sendemasten in der Nähe zu finden. Hinweise darüber liefert die Webseite fmscan.org: Die Seite listet für einen beliebigen Ort die empfangbaren Radiosender auf.
Für die Standortbestimmung per IP-Adresse gibt es einige Web-Datenbanken. Viele davon können kostenlos genutzt werden. So ganz zuverlässig ist das Ganze nicht, besonders, wenn der Internetanschluss von einem internationalen Anbieter genutzt werden. Ob es funktioniert, muss man einfach ausprobieren. Ein Dienst, der bei mir gut funktioniert hat, ist ip-api.com. Der Dienst liefert ausführliche Informationen zum Standort der abgefragten IP-Adresse und gibt sie auf Wunsch im JSON Format zurück. Das Format hat den Vorteil, dass es die Daten lesbar und in strukturierter Form vorhält. Mit einer entsprechenden Parser-Bibiliothek ist es sehr einfach, die Daten aus einer JSON-Datei in Skripten zu verwenden. Weiterlesen
[youtube https://www.youtube.com/watch?v=x3oIamrJxek]
Internetbasiertes WAS? Das Internet braucht man eigentlich nicht, wenn der TEA5767 zum Tönen gebracht werden soll. Der TEA5767 passt auf eine Fingerspitze und enthält einen komplettes FM-Radio. Es muss nur die entsprechende Sendereinstellung in das Register geladen werden und schon gibt der Chip über den Stereo-Ausgang den Sound aus. Zudem verfügt der TEA5767 über einen automatische Sendersuchlauf und kann sich so per Knopfdruck von Sender zu Sender hangeln. Also wozu Internet? Weil das Internet alles weiß. Es weiß, wo man sich gerade befindet, welche UKW-Sendemasten in der Nähe stehen und welche Signalstärke am eigenen Standort ankommen müsste. Smartes Lokal-Radio also. Weiterlesen
Ausgabe 05/2015 RasPi als Server: Noch ein Artikel von mir zum RasPi und seriellen Verbindungen im aktuellen Heft des Raspberry Pi Geek Magazins.
Die serielle Schnittstelle ist im Prinzip einfach und robust. Selbst kleinste Mikrocontroller haben die UART-Schnittstelle eingebaut. Der Arduino in seinen verschiedenen Ausführungen verfügt meist sogar über mehrere dieser Schnittstellen, um mit mehreren Komponenten gleichzeitig zu kommunizieren. Im Artikel wird gezeigt, wie die serielle Schnittstelle beim RasPi zur Kommunikation mit dem Arduino genutzt wird.
04/2015 RasPi im Netz: Mein Artikel über die Zusammenarbeit von Xbee-Modulen mit dem Raspberry Pi ist im akuellen Heft des Raspberry-Pi-Geek Magazin erschienen.
XBee-Module sind kleine Funkmodule, die Sensornetzwerk aufspannen und automatisch verwalten können. Da sie per serieller Schnittstelle kommunizieren sind die bestens für das Zusammenspiel mit dem RasPi geeignet. Der Artikel führt in die Grundlagen der Arbeit mit XBee-Modulen ein und zeigt wie man Messwerte erfasst und mit dem RasPi auswertet. Das Heft gibt es für 7,99 Eur als PDF: http://www.raspberry-pi-geek.de/Magazin/2015/04 oder am Kiosk.
Für gerade einmal 10 € gibt es ein 0,96 zoll Display mit einer Auflösung von 128×64 Pixel zum Beispiel bei amazon. Das Display ist groß genug, um kleine Grafiken und Benachrichtigungen anzuzeigen. Mein Display ist ein chinesisches Produkt, angepriesen als 100 % kompatibel zum Original von Adafruit und daher wohl 100% kompatibel zur Adafruit-Bibliothek Adafruit_SSD1306.h für den Arduino. Es wird mit 5V betrieben und verfügt über eine I2C-Schnttstelle. Die Orignal-Displays gibt es mit I2C und SPI-Schnittstelle (siehe SSD1306 OLED Displays with Raspberry Pi and BeagleBone Black – englisch). Weiterlesen