Elektronik_Header_3LŘftersteuerung mit ESP-01

 

PIC-W├╝rfel

Tja, so etwa im Januar 2009 hatte ich dann mal Mu├če und Lust, mir Gedanken ├╝ber einen PIC-W├╝rfel zu machen, nachdem ich in fr├╝heren Zeiten bereits einige elektronische Varianten von W├╝rfeln zusammen gebaut hatte.

Heraus gekommen ist dabei diese Schaltung

SMD-W├╝rfel mit PIC 12F629 (Click f├╝r volle Aufl├Âsung)

und das zugeh├Ârige Layout

einseitiges Layout SMD-W├╝rfel

das, mit Eagle3D und Povray verwurstelt, einen Eindruck des sp├Ąteren Aussehens vermittelt

SMD-W├╝rfel, gerendert

Im richtigen Leben sah die Platine vor dem Versuch der ersten Programmierung so aus

SMD-W├╝rfel, Original (nach falsches Layout)

und wartet jetzt auf die belebenden Innereien in Form von ausf├╝hrbarem Code.

Ich habe die Platine einseitig entworfen und bei MME fertigen lassen. Der Batteriehalter f├╝r die Knopfzelle sitzt auf der Unterseite, die Anschl├╝sse werden auf der Oberseite angel├Âtet.
Die drei rechteckigen Pads sind die Kontakte f├╝r die Programmierung des PIC, zus├Ątzlich sind Masse und ggf. 5V zu verbinden. Die Batterie muss dann nat├╝rlich entfernt werden.
Jede LED hat ihren eigenen Vorwiderstand, was die kreuzungsfreie Leiterf├╝hrung deutlich erleichtert bzw. ├╝berhaupt erst m├Âglich gemacht hat.

Die Designunterlagen im Eagle 5.2-Format k├Ânnen hier geladen werden.


Ich habe nat├╝rlich ein paar Ideen zu den Funktionen des W├╝rfels entwickelt, ohne allerdings absch├Ątzen zu k├Ânnen, ob das alles in den verwendeten kleinen PIC 12F629 passt. Das wird mir aber der Compiler sicherlich verraten, wenn das Programm erst mal existiert.

Ich plane, den W├╝rfel in C oder BASIC zu programmieren und verwende daf├╝r die Freeware-Versionen von mikroElektronika, die es erlauben, 2k Code zu erzeugen. Das reicht f├╝r den 12F629 dicke aus, der hat nur 1k Speicher.

Die Fallback-Strategie lautet nat├╝rlich Assembler, sollten die Compiler zu umfangreichen Code erzeugen.

Hier mein Lastenheft f├╝r den PIC-W├╝rfel:

  • Da Batteriebetrieb vorgesehen ist (1x CR1632), muss die Schaltung absolut Strom sparend sein, d.h. der PIC muss im SleepMode sein, solange die Taste nicht gedr├╝ckt wird.
  • Die LEDs m├╝ssen ggf. gepulst angesteuert werden um Strom zu sparen.
  • Durch Tastendruck wird der PIC geweckt und misst sofort die Zeitdauer des Tastendrucks.
  • Wird die Taste einmal kurz (z.B. k├╝rzer als 400 ms) gedr├╝ckt, muss eine Zufallszahl zwischen 1 und 6 erzeugt werden (Huch? ;-)
  • Die Zahl wird blinkend 2 bis 3mal angezeigt, danach wieder SleepMode.
  • Wird die Taste lang gedr├╝ckt (z.B. l├Ąnger als 1/2 Sekunde), wird die zuvor gew├╝rfelte(n) Zahl(en) noch mal angezeigt.
  • Wird die Taste mehrfach kurz gedr├╝ckt, (mehrfach jeweils k├╝rzer als z.B. 400 ms) wird je Druck eine Zufallszahl ermittelt und reihum angezeigt (Simulation mehrerer W├╝rfel).
  • Wird Quatsch gemacht (mehrmals dr├╝cken aber mal k├╝rzer, mal l├Ąnger) geht der PIC sofort wieder in den SleepMode.

Wenn der W├╝rfel tut was er soll, werde ich den Code hier ver├Âffentlichen.


... etwas sp├Ąter...

Die ersten Gehversuche in Sachen W├╝rfel-Code habe ich hinter mir. Das Lastenheft ist bisher nur sehr rudiment├Ąr erf├╝llt, sprich, ich habe erst mal nur einen (Pseudo-) Zufallszahlengenerator und eine Anzeigeroutine implementiert, um die Schaltung mit Leben zu erf├╝llen.

Nach ein paar Wochen Ruhe auf meinem Schreibtisch hat sich der Taster ├╝brigens drastisch verschlechtert und prellt was das Zeug h├Ąlt. Ich muss also noch eine Entprellroutine vorsehen.

Die Programmierung erfolgte mit dem ICD2-Nachbau ├╝ber nur f├╝r diesen Zweck an den vorgesehenen Pads angel├Âteten Dr├Ąhte. Wenn der Code steht, kommen die nat├╝rlich wieder weg.

PIC-W├╝rfel mit Programmierschnittstelle

Bei der Programmierung habe ich dann auch gelernt, dass ich die Pinbelegung ├Ąndern muss, da der Reset f├╝r die Programmierung erhalten bleiben muss und nicht als Ausgang verwendet werden kann. Au├čerdem ben├Âtigt der Reset auch noch einen PullUp-Widerstand und ich habe einen Blockkondensator spendiert. Im Schaltbild und im abgebildeten Layout ist das bereits ber├╝cksichtigt.

Zu diesem Zeitpunkt war die Schaltung aber schon fertig aufgebaut, so dass ich die ├änderungen durch Kratzen und zus├Ątzliche Dr├Ąhte einbringen musste. Der Blockkondensator und der PullUp h├Ąngen in der zweiten Ebene.

zus├Ątzliche Bauteile und ge├Ąnderte Verdrahtung

In Orignalgr├Â├če sieht das Ganze etwa so aus (zumindest auf meinem Monitor),  man hat also tunlichst eine ruhige Hand, gute Augen (oder alternativ eine gute Brille ;-), eine spitze Pinzette und einen ebensolchen L├Âtkolben.
Eine Lupe mit Ringleuchte ist in diesem Zusammenhang ebenfalls kein Fehler.

Bildausschnitt etwa in Originalgr├Â├če

Nicht ganz trivial, aber es hat funktioniert. Besser ist nat├╝rlich die Verwendung des korrigierten Layouts ;-)


Ich habe vor lauter Begeisterung auch noch eine Variante des SMD-W├╝rfels mit einem Atmel ATtiny13 entworfen, dessen Layout auf Grund anderen Pinnings und besserer Features etwas aufger├Ąumter wirkt.

 


Besucherzaehler

Besucher seit
25.11.2000

>