Beiträge getaggt mit C

Internetbasiertes FM-Radio – Teil 4: Schaltung und Arduino-Programmierung

In 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.

TEA5767-schema

Den Rest des Beitrags lesen »

, , , , , , , ,

Hinterlasse einen Kommentar

Internetbasiertes FM-Radio – Teil 3: Serielle Datenübertragung zwischen RasPi und Arduino

RasPi Seriell Arduino

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. Den Rest des Beitrags lesen »

, , , ,

Ein Kommentar

Meine Smartwatch :-) Mit I2C ein OLED-Display ansteuern

OLEDFü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). Den Rest des Beitrags lesen »

, , , , ,

4 Kommentare

Analoge Messwerte mit einem ADC über SPI auslesen

IMG_20141102_210732

Elektronische Sensoren geben die erfassten Messwerte auf unterschiedliche Weise an den Empfänger weiter. Einige Sensoren verändern eine Spannung oder einen Stromfluss, je nach Messwert. Ein Fotowiderstand lässt zum Beispiel mehr oder weniger Strom durch, je nachdem wie viel Licht auf den Sensor trifft. Einige andere Sensoren geben die Messwerte als Datenpakete weiter. Dafür benutzen sie spezielle Schnittstellen, wie den i2c-Bus oder SPI. Signale, die auf diese Weise in Bits und Bytes übersetzt werden, nennt man digitale Messwerte.
Den Rest des Beitrags lesen »

, , ,

Hinterlasse einen Kommentar

Eine Echtzeituhr mit dem i2c-Bus anprogrammieren

RTC_com

Viele Sensoren und Microntroller unterstützen den i2c-Bus. Dieser Bus hat den Vorteil, dass nur zwei Drähten zur Kommunikation aller Teilnehmer benötigt werden. Dadurch kann ein so genannter Bus-Master über 100 Microcontroller (Slaves) im Zaum halten. Das Protokoll ist so verbreitet, dass zur Programmierung inzwischen zahlreiche Bibliotheken zur Verfügung stehen.
Den Rest des Beitrags lesen »

, , , , , ,

4 Kommentare

Ein 2 x 16 Zeichen LCD mit den GPIO-Pins programmieren

LCD10Ein zweizeiliges LCD kostet inklusive Versand knapp 3 EUR. Oft genug reichen 2 x 16 Zeichen völlig aus, um die wichtigsten Informationen darzustellen. Ob eine IP-Adresse, ein MP3-Titel, eine Benachrichtigung über ein Systemereignis oder Messwerte – einen kompletten Bildschirm braucht es oft nicht. LCDs mit einem HD44780-Controller sind sehr verbreitet. Es gibt viele Projekte, die ein solches Display für den RasPi verwenden. Das LCD wird dabei meist mit Hilfe von Bibliotheken angesprochen, die das Programmieren des Controllers abnehmen. Die python-Bibliothek RPLCD ist zum Beispiel so eine Bibliothek. In diesem Beitrag soll gezeigt werden, wie das LCD über die GPIO-Pins direkt auf der Ebene des Microcontrollers angesprochen wird. Der Quell-Code für das C-Programm ist auf gitHub abgelegt: https://github.com/rheikvaneyck/HD44780. Den Rest des Beitrags lesen »

, , , , ,

7 Kommentare