Beiträge getaggt mit Programmieren

Elektrisch Programmieren 3: Der Pi Zero als ISP

IMAG1049_1

Im letzten Teil der Serie ging es darum, wie der Programm-Code für den ATtiny aussieht. Da Assembler-Code am besten geeignet ist, um möglichst viel über die Abläufe des Mikrocontrollers zu erfahren, gab es auch eine kleine Einführung in Assembler für den ATtiny. In diesem Teil soll es darum gehen, wie man den Programm-Code in den Flash-Speicher des ATtiny lädt. Normalerweise programmiere ich im Amtel Studio. Damit ist die Verwaltung eines Projekts und die Einstellungen der Chip-spezifischen Konfiguration sehr einfach. Mit einem 886MB großen Installer wird damit allerdings mit Kanonen auf Spatzen geschossen. Ein guter Editor ist völlig ausreichend. Ich habe mir vor einiger Zeit eine Lizenz für Sublime Text zugelegt, da der sich super konfigurieren lässt, es geht natürlich auch mit vim oder irgendein anderer Editor der idealerweise gleich das kompilieren und debuggen unterstützt.

Den Rest des Beitrags lesen »

, , , , ,

Ein Kommentar

Elektrisch Programmieren 2: ATtiny unter totaler Kontrolle

PIN Layout

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.

Den Rest des Beitrags lesen »

, , ,

3 Kommentare

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

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

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