Archiv für die Kategorie 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

Elektrisch Programmieren: Der ATtiny

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

Den Rest des Beitrags lesen »

, ,

Ein 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

XBee und Raspberry Pi im Raspberry-Pi-Geek Magazin

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.

, , , ,

Hinterlasse einen Kommentar

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 »

, , ,

4 Kommentare