Archiv der Kategorie: AVR

Mein kleiner Microcontroller

Kurzer Report von der Bastelfront

Festivals schön und gut, aber die freie Zeit muss natürlich auch etwas produktiv genutzt werden. Momentan heißt das hauptsächlich Housekeeping – Systeme reparieren und allerhand Basteleien, welche auf die Schnelle erfolgten, halbwegs vernünftig verpacken und fest einbauen. Trotzem sind einige neue Projekte dabei, zu denen ich in Kürze noch mehr schreiben werde, unter anderem hat meine Solaranlage eine neue Überwachungselektronik und viele neue Abnehmer erhalten. Zudem haben einige Webprojekte Updates erhalten, unter anderem kann mein Archivsystem, welches ich für die Bildarchivierung des Geschichtsvereins Saffig entwickelt hatte, inzwischen einige wichtige DMS-Funktionen wie Kontaktverwaltung und ORC erfüllen und sammelt nun in einer lokalen Installation meine Papierkorrespondenz in nerdgerechter Form. Auch einige Haushaltsgeräte sind inzwischen soweit, dass sie theoretisch Meldungen an meinen Steuerrechner übermitteln könnten – wenn denn ein Kabel da wäre. Da die Geräte weit entfernt von jeder Infrastruktur stehen und auf Grund baulicher Gegebenheiten das verlegen neuer Kabel für eine solche „Spielerei“ zu aufwändig wäre habe ich mir einige NRF24l01+ organisiert, ein Funkmodul welches mit integrierter Transportschicht glänzt und mit <3€ preislich sehr ansprechend ist. Leider konnte ich den Sample-Code nicht zum laufen bewegen, daher suchte ich nach Debug-Möglichkeiten. Zum Glück fiel mir mein guter, alter BusPirate wieder in die Hände, welcher sich direkt mal als simpler Logic-Analyzer versuchen durfte und – zu meiner Überraschung – gemessen an Preis und Ausstattung sehr gute Ergebnisse liefert, so konnte ich z.B. ermitteln, dass der Sendebefehl definitiv korrekt ans Sende-Modul übermittelt wird. Also wird gleich die Empfängerseite dran glauben müssen.
Bild: https://www.adlerweb.info/blog/wp-content/uploads/2012/06/test2-300×38.png

3€ AVR-Board im Test

Ein ATMega für 3€? Nichts neues, aber dank Steffen Vogel bin ich auf einen chinesischer Händler gestoßen, welcher für diesen Preis derzeit einen kompletten AVR-Programmierer auf Basis des USBasp anbietet. Mit an Board sind neben einem ATMega8A auch ein 12MHz Quarz, ein V-USB-Kompatibler USB-Port, 2 LEDs, ein Jumper und ein 3,3V Spannungsregler (AMS1117, 800mA). Zudem befinden sich auf dem 10-Pin Programmer-Port neben dem üblichen SPI auch die RS232-Pins des Atmel-Controllers, ein passendes Flachbandkabel ist ebenfalls im Lieferumfang. Viel Technik für wenig Geld, oder? Ein erster Blick zeigt: Das Board kommt nicht gerade in Vorzeigequalität, ab und an ist mal eines der SMD-Bauteile etwas schief, aber dennoch funktionierten alle Boards einwandfrei. Bei den Bauteilen hat man ebenfalls gespart: Die LEDs sind im Gegensatz zum zweifarbigen Original beide Rot, 2 der 3 im original vorgesehenen Jumper sind nicht bestückt. Die Controller sind – wie der Produkttitel es vermuten lässt – mit der Programmiersoftware des USBasp-Projektes versehen, wenn auch nicht in der aktuellen Version.

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2012/04/IMG_8440-150×150.jpgBild: https://www.adlerweb.info/blog/wp-content/uploads/2012/04/IMG_8441-150×150.jpg

Also – wenn ich schon einen haufen Programmieradapter habe programmieren wir auch mal etwas: Mit einem Drahtstück wird der nicht bestückte J2 eines Boards überbrückt – hiermit wird dieser in den „Self-Programming“-Modus geschaltet und kann so über die ISP-Schnittstelle mit neuer Firmware versorgt werden. Über eins der mitgelieferten Kabel wird das neue Ziel nun mit einem anderen Programmer verbunden. Steht bei beiden J1 auf 5V Target (wie ausgeliefert) wird das Ziel über den Programmer mit Strom versorgt. Die aktuellen avrdude-Versionen erkennen den Programmer ohne Probleme und versorgen das Ziel mit der neuen Firmware. Im ersten Versuch wurde ein Programmer mit der neuen Firmware des USBasp versorgt – und unterstützt nun auch die neuen Funktionen.

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2012/04/IMG_8421-150×150.jpgBild: https://www.adlerweb.info/blog/wp-content/uploads/2012/04/IMG_8422-150×150.jpg

Ein Zweites Board durfte sich mit den Demo-Codes des V-USB-Projektes begnügen, namentlich der HID-Maus-Demo. Das Makefile muss auf den Atmega8 angepasst werden, in der usbconfig.h muss der IOPORT auf B, Minus auf 0 und Plus auf 1 geändert werden. Bekommt man den Code dann noch kompiliert (neuere Compiler stören sich etwas an veralteten Definitionen im V-USB-Code) kann man den Stick dann problemlos verwenden um Arbeitskollegen zu verwirren.

Im nächsten Schritt soll einer dieser Sticks dann den etwas teureren und eher provisorisch angeflanschten Arduino als Stromzähler ersetzen, welcher derzeit die im letzten Post genannten Auswertsysteme versorgt. Die Timer laufen schon, nur das mit den USB-„Interrupts“ zum spontanen senden von Daten via V-USB produziert derzeit noch abstürze – muss ich wohl noch etwas nacharbeiten…

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2012/04/IMG_8408-150×150.jpg

BitBastelei #11 – RGB-CTL – RGB-LEDs mit dem ATTiny25

BitBastelei #11 - RGB-CTL - RGB-LEDs mit dem ATTiny25

(154 MB) 00:16:49

2011-10-28 15:38 🛈

Entwurf & Aufbau eines RGB-LED-Controllers mit ATTiny25

Links:
LED: http://www.dealextreme.com/p/4530?r=38871381
Moodlamp-Projekt CCC München: http://wiki.muc.ccc.de/moodlamp_30
Elektronik-Kompendium – Stromreglerdiode: http://www.elektronik-kompendium.de/public/schaerer/curr2pol.htm
USI TWI Slave: http://www.jtronics.de/elektronik-avr/lib-i2c/twi-mit-usi-interface
Soft-PWM: http://www.mikrocontroller.net/articles/Soft-PWM
I²C @ Wikipedia: http://de.wikipedia.org/wiki/I%C2%B2C
Software/Hardware: https://github.com/adlerweb/RGB-CTL
Bauteilliste: https://secure.reichelt.de/index.html?;ACTION=20;LA=5010;AWKID=492057;PROVID=2084

BitBastelei #6: Kinderspielzeug-Hacking – USB-Anschluss für Burgerking-Lampe

BitBastelei #6: Kinderspielzeug-Hacking - USB-Anschluss für Burgerking-Lampe

(60 MB) 00:08:49

2011-03-26 04:29 🛈

Was macht man, wenn man als Bastler Kinderspielzeug geschenkt bekommt? Zerlegen und Verbessern! Nun hat der kleine Burgerking-Anstecker mit LED einen USB-Anschluss und kann z.B. neue Mails anzeigen!

Ergänzende Hinweise:
Die gezeigte Schaltung arbeitet mit 5V auf den Daten-Pins – dies entspricht nicht dem Standard und funktioniert eventuell nicht überall. Ggf. kann man wie hier unter B beschrieben Zener-Dioden zwischen Datenleitung und GND schalten.

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2011/03/bk-usb-150×150.png

Die Software gibt es unter https://adlerweb.info/files/avr/bk-led/bk-led.tar.bz2 – wie bereits im Video erwähnt handelt es sich im Prinzip nur um das „hid-custom-rq“-Beispiel des Herstellers. Die Original-Lib gibts auf http://www.obdev.at/vusb/

BitBastelei #5: Stromverbrauch am PC darstellen

BitBastelei #5: Stromverbrauch am PC darstellen

(13 MB) 00:09:06

2010-12-17 13:28 🛈

Korrekturen:

  • Wenn man auf der Volkszaehler-Seite statt Wiki die Folien bemüht findet man Dokumentation
  • Zur Ergänzug, da ich nur das Tagesdiagramm gezeigt hatte: Natürlich habe ich auch einen „Live“-Modus, bei meinem Zäher erhalte ich ca. alle 2-3 Sekunden einen neuen Wert

Links zum Thema:

Effiziente Festspannung

[2009/09/20] Es gibt viele möglichkeiten eine Festspannung zu erzeugen, bei den Werten denke ich aber, dass ich ab sofort die auf die paar Cent die 78xx weniger kosten verzichte…

Testbedingung:

Vin: 13.4V
Vout: 5V, 500mA

78S05                   0.40A
34063A StepDown         0.22A

Schieberegister (74HC***) an ATMega8

[2008/12/02] Da im Netz nicht viel auf Anhieb zu finden ist hier ein kleiner Code zur Ansteuerung eines – sollte recht portabel sein:

#include <avr/io.h>

#define SHIFT_PORT     PORTB
#define SHIFT_PORT_DDR DDRB
#define SHIFT_DATA     PINB0
#define SHIFT_SCK      PINB1
#define SHIFT_OUT      PINB2

void shift_out(int);

int main(void) {
	SHIFT_PORT_DDR |= (1<<SHIFT_DATA) | (1<<SHIFT_SCK) | (1<<SHIFT_OUT);
	shift_out( 0xAA );

	while (1) {
	}
}

void shift_out (int num) {
	for(int i=1; i<=128; i*=2) {
		if(num & i) {
			SHIFT_PORT |= (1 << SHIFT_DATA);
		} else {
			SHIFT_PORT &= ~(1 << SHIFT_DATA);
		}
		//clock
		SHIFT_PORT |=  (1 << SHIFT_SCK);
		SHIFT_PORT &= ~(1 << SHIFT_SCK);
	}

	//move to the pins
	SHIFT_PORT |=  (1 << SHIFT_OUT);
	SHIFT_PORT &= ~(1 << SHIFT_OUT);
}

Ordnung im Wirrwarr

Basteln ist zwar schön, aber wenn ein System über Jahre wächst ist das Chaos irgendwann eher hinderlich als gesund, entsprechend musste jetzt meine Signalverteilung samt 1Wire-Converter und Eingabeverarbeitung eine Umstellung vom Kabelkneul zur LSA-Leiste mitmachen:

Vorher:

2071820733

Nachher:

2072320738

Wenn denn alles so funktioniert wie ich mir das Vorstelle folgt morgen dann noch die Platine mit dem Brandmeldesystem, dir wurde komplett neu erstellt und kann im Gegensatz zum jetzigen System nicht nur die Rauchmelder mit Strom/Notstrom versorgen sonder auch den Alarm Abfangen, den Strom in betroffenen Bereichen teilweise abschalten und den Alarm sowohl hausintern als auch per Mail/SMS/… weiterleiten.

Ein AVR lernt IRC

Die Bastelwut war doch größer: Neben meinem Tuxgraphics-Board findet sich jetzt auch ein AVR-Net-IO von Pollin in meiner Samlung. Nach etwas Gebastel an der Hardware und etwas mehr Gebastel an der Software lief die Kiste auch mit der Originalfirmware. Die meisten Schwierigkeiten machte mir dabei die Anleitung: In dieser waren 2 Kondensatoren vertauscht, was den Quarz des AVR lahmlegte. Zeigt sich wie immer: Besser auf die Anleitung verzichten. Die beigelegte Windows-Software war auch erst nach IP-Anpassung lauffähig die serielle Schnittstelle fehlte komplett.

Kurz danach wanderte auch schon die original-Firmware in die Tonne und wurde durch Ethersex ersetzt. Ohne großen Aufwand meldete sich das Board auch ICMP-Pings und brachte einen Webserver, der alle definierten IO-Ports zeigte. Die ADCs funktionierten fürs erste mit der GIT-HEAD nicht, hier fehlt offenbar eine Datei. Kurz darauf war im BugIRC folgende Zeile zu lesen:

–> ethersex (ethersex@bug-…) has joined #bug

Ich würde sagen, da geht noch was :p. Leider ist der Controller nur mit 32kb bedacht, was die Funktionen momentan etwas einschränkt – demnächst wird der durch einen Pinkompatiblen 64er ersetzt und darf sich dann als Ethernet-Bastelplattform betätigen.

Grafisches LCD-Schnäppchen

Vor einiger Zeit hatte ich bei Pollin ein LCD mit bestellt. Grafisch, 128×60 Pixel für 7 Euro – da kann man ja nicht viel falsch machen. Übers Wochenende habe ich mit dem Kleinteil mal angenommen und war von der Ausstattung doch sehr überrascht: Neben dem LCD selbst, welches eine ganz Brauchbare Qualität zeigt, ist auch noch ein Touchscreen vorhanden. Offenbar gab es Kontaktprobleme, wodurch dieser zum Teil nicht funktioniert und daher nicht im Datenblatt erwähnt ist. Ich hatte Glück: Auch ohne Basteln lief der Touchscreen sofort und darf demnächst als kleine GUI für mein MSR-System herhalten.

19358