Latest Entries »

Grundsätzlich wird man nicht ohne gewisse Arbeitsmittel auskommen.
Man kann es sich eben leicht oder schwer machen. Natürlich ist es auch eine Frage der Geldmittel da nicht immer alle Tools kostenlos sind.

Als ich auf die ersten Probleme mit MPLAB gestoßen bin hab ich mich auf die Suche nach Alternativen gemacht und dabei einige Erkenntnisse gefunden.

Das ultimative Tool das perfekt ist und alles kann gibt es nicht.

Im folgenden liste ich einfach Programme, Tools und Software auf und kommentiere meine persönlichen Erfahrungen damit. Und zwar ganz unabhängig davon ob das Tool etwas kostet oder nicht. Wo und wie man die Tools herbekommt überlasse ich jedem selbst. Oft gibt es Testversionen bzw. ist das eine oder andere Programm kostenlos verfügbar.

 

Lochmaster

Ist eine Software mit der man recht einfach Lochraster-Platinen planen kann.
Es können Bauteile platziert, Leiterbahnen verlegt und Lötpunkte eingezeichnet werden.
Ich denke dass das größte Problem bei Lochraster-Platinen meist ist dass unterschätzt wird, dass Bauteile sowie Leiterbahnen einen gewissen Platz benötigen. Entweder man nimmt für eine kleine Schaltung eine Platine die mehr als groß genug dafür ist (man gerät immer wieder in Situationen wo dann plötzlich doch noch wo eine Leiterbahn mehr ist als gedacht oder ein Bauteil keinen Platz hat), oder man plant die Platine gescheit. Dabei geht es bei diesem Tool meiner Meinung nach mehr um die Planung der Platzierung von Bauteilen und Leiterbahnen um eine Vorstellung darüber zu haben wie groß die Platine sein MUSS.

image

 

Eagle

Ist wohl das bekannteste unter den Platinen Layout Programmen. Es ist nicht für Lochraster-Platinen gedacht sondern zum Herstellen von Layouts für Platinen die geätzt werden. Es unterstützt mindestens doppelseitige Platinen. Durch eine Bauteil-Bibliothek und der Möglichkeit selbst Bauteile für den Editor zu designen sind einem praktisch kaum Grenzen gesetzt.
Es inkludiert einen Schaltplan-Editor mit dem man professionelle Stromlaufpläne in AutoCAD-Manier erstellen kann aus denen dann ein Platinen-Layout generiert werden kann. Von Leiterbahnwinkeln über die Breite nach Bohrungsdurchmesser bis hin zur Massefläche und Autorouter kann dieses Programm so ziemlich alles was man sich wünscht.
Allerdings ist dies auch gleich der große Nachteil. Jemand der das Programm nicht kennt und mal eben schnell eine Platine machen will wird sich daran die Zähne ausbeißen. Für dieses Programm muss man sich erst einmal die Zeit nehmen es kennen zu lernen. Schnell schnell gibts hier nicht.
Wenn man aber ein echtes Hobby in der Elektronik sieht wird man sich schon überlegen ob man es sich nicht zulegen sollte. Kleiner Hinweis: Die meisten Pläne die man auf http://www.mikrocontroller.net/ zu sehen bekommt sind mit Eagle gemacht worden…

image

 

Flowcode

Bei diesem Programm gibt es nicht viel zu sagen. Es gibt eine Version für PIC und die Software ermöglicht das Programmieren von Mikrochips mit Hilfe von Flowcharts. Sprechblasenartig kann so relativ schnell und einfach ein Programm für Mikroprozessoren geschrieben werden.
Dabei bringt uns dieser Vorteil auch schnell zum Nachteil. Die Möglichkeiten bleiben dabei recht “rudimentär”. Mit diesem Programm lohnt es sich zu arbeiten wenn sehr einfache Programmabläufe geschehen sollen. Dann kann ich aber auch zu MPLAB greifen denn kleine, einfache Programme sind dort ebenso schnell geschrieben wenn man sich damit auskennt. Ich wollte es hier nur einmal erwähnen da ich ja auch Anfangs aus Verzweiflung nach solchen Alternativen gesucht habe.

 

MathCAD

Wer möglichst professionell arbeiten möchte… Dieses Programm berechnet ALLES.
Ich kenn es noch aus meiner Zeit in der HTL (hab ich nur 1 Jahr gemacht statt Poli).
Ich persönlich berechne die paar Sachen lieber mit Rechner sowie Papier und Bleistift.
Denn für die paar wenigen Sachen ein Programm zu verwenden das so ziemlich alles berechnet ist dasselbe wie mit Kanonen auf Spatzen zu schießen. Nebenbei kostet es auch noch viel Zeit sich einzuarbeiten weil es beinahe ebenso umfangreich gestaltet ist wie AutoCAD.

 

MPLAB & MPLAB X

Bei PIC-Microcontrollern wohl das am ehesten wahrscheinliche Programm mit dem Programmiert wird. MPLAB ist der Dinosaurier der nur Unter Windows funktioniert. Nicht mitgeliefert sind die Compiler die sich über die Hersteller-Seite aber für “Studenten” (also eh alle) herunterladen lassen.
Da allerdings mit Beschränkungen die ich nie kennengelernt habe. Die Vollversion des C-Compilers kostet was.
MPLAB X ist da schon etwas moderner. Es basiert auf Java. Was bedeutet dass ich es sogar unter Linux bereits ganz einfach zum Laufen gebracht habe. Die Compiler (und zwar alle) sind gratis Downloadbar auf der Hersteller-Seite. Vielleicht liegt das daran dass MPLAB X noch Beta ist…?
Aber einem geschenkten Gaul schaut man nicht ins Maul und die BETA ist zuletzt auch sehr stabil gelaufen und bietet einige nette Neuerungen wie zB. den Syntax-Check der bei uC-Programmierung noch recht selten ist.

Fritzing

Fritzing ist eines der genialsten Programme die ich je gesehen habe. Es ermöglicht die Erstellung einer Schaltung auf einem virtuellen Breadboard. Ganz so wie man beispielsweise vorher die Test-Schaltung aufgebaut hat. Und aus diesem Entwurf kann dann ein Platinen Layout generiert werden.
Nur noch Platinen Größe, diverse andere Eigenschaften wie Leiterbahnstärke usw. eingeben und den AutoRouter machen lassen. Auf Wunsch Doppelseitig. Und falls was nicht geht ist natürlich auch manuelles Routing möglich. Dadurch dass auch eigene Bauteile entworfen werden können (es werden nie alle Bauteile in einer Bibliothek zu finden sein) ist dieses Programm universell einsetzbar.
Dabei aber auch möglichst einfach gehalten.

image  image

Processing

Ist eine Programmiersprache für Anfänger die auf Java basiert. Mit ihr ist es möglich recht schnell einfache Erfolge zu verzeichnen. Sie ist ausnahmsweise nicht für Mikroprozessoren gedacht, ist aber zB. ideal um einen Arduino über USB mit dem PC reden zu lassen. Gut. Das kann jede Programmiersprache. Der Vorteil liegt darin dass die Arduino-IDE grundsätzlich auf Processing basiert. Wenn man also die Arduino-IDE und die Processing-IDE vergleicht wird man sich fast die Frage stellen: Ist das vom selben Entwickler?

image

 

Arduino

Nun sind wir endlich bei DER Weiterentwicklung der Mikroprozessor-Technologie auf die wir alle lange gewartet haben. Mit Arduino wird es quasi JEDEM ermöglicht die tollsten Dinge zu entwickeln.
Bei Arduino handelt es sich um ein Entwickler-Board für verschiedenste Mikroprozessoren.
Dabei ist aber immer eines gleich. Die Programmierung und die Entwicklungsumgebung.
Egal ob Windows, Linux oder MAC. Egal welches Arduino-Board verwendet wird. Die Programmiersprache, die Befehle und die Entwicklungsumgebung bleibt immer dieselbe.
Aber damit nicht genug! Es ist bezahlbar! Das Standard-Board kostet ~50 Euro. Aber wem das zu teuer erscheint kann sich die Platine auch selber bauen denn die Pläne sind OpenSource.
Man wird als Hobby-Bastler aber schnell drauf kommen dass das selbst bauen so einer Platine
den Arbeitsaufwand nicht wirklich rechtfertigt. Denn so teuer ist das Ding nicht, wenn es fertig gekauft wird. Und als non-plus-Ultra gibt es auch schon zahlreiche Librarys mit denen man bestimmte Bauteile oder Bauteil-Gruppen ansteuern kann indem man einfach die Librarys einbindet ohne das Rad gleich neu zu erfinden.
Ich kann an dieser Stelle nur sagen: Macht euch selbst einen Eindruck davon.

image   https://i2.wp.com/www.liquidware.com/system/0000/3648/Arduino_Uno_Angle.jpg

Raspberry Pi

Der Raspberry Pi ist eine ähnliche Revolution wie der Arduino. Damit gibt es den ersten Low-Cost Hosentaschenrechner. Ein PC um 30€ in Form einer kleinen Platine. Stark genug um HD zu dekodieren und ein Betriebssystem wie Linux zu unterhalten. Es kann praktisch als alles verwendet werden. Webserver, Heim-Automation, Steuerung von Elektronik, als tragbarer PC, Als Medien Center fürs Wohnzimmer und und und und. Dabei muss man aber bedenken, dass er kein Ersatz für einen Arduino/Mikrocontroller ist da er neben dem Programmablauf eines Phyton-Scipts noch das Betriebssystem bedienen muss. Zeitkritische Anwendungen wie der Betrieb eines LED-Würfels empfehle ich hier eher nicht. Es braucht nur kurz das Script stehen und die teuren LEDs sind durchgebrannt. Sehr wohl kann man ihn jedoch verwenden um über Pins mit dem Arduino/uC zu kommunizieren. So können Animationen zum Würfel übertragen werden bzw. von mir aus sogar der Würfel über eine Webseite steuerbar gemacht werden weil der Raspberry einen Webserver unterhält…
Damit sind dann endgültig kaum Grenzen mehr gesetzt. Wie kompatibel Arduino und Raspberry inklusive Arduino-Schields sind ist auch am Foto zu sehen.

http://makezineblog.files.wordpress.com/2012/12/alamode-01.jpg

Klick aufs Bild um zur Seite zu gelangen

Nachdem ich meine ersten Erkenntnisse im Programmieren von PIC Mikrocontrollern
erworben hatte (beim PicKit 3 waren einige Übungsprogramme dabei) machte ich mich also
daran, mir meinen ersten einfachen LED-Cube zu bauen.

Als Inspiration diente mir dabei folgende Seite:
http://www.ledstyles.de/fpost99870.html?highlight=Cube+leicht+gemacht

Dort bekam ich sinnvolle Tipps zum Löten des Cube, der Aufbau und die Funktion wird gut beschrieben usw.

Allerdings wird dort ein AT Tiny 2313 uC verwendet der allemal ausreichend ist.
Ich hingegen hatte bereits einen PIC 18F 4620 daheim weil ich ja in Richtung 8x8x8 RGB wollte.
Daher hab ich das ganze mit diesem viel zu starken Chip realisiert.

Folglich: Andere Pins, andere Programmierung, anderer Aufbau.

Verwendet hab ich meine bereits vorher hergestellte PIC-Test-Platine.
Mit ihr hatte ich bereits eine stabile Stromversorgung, einen Sockel in dem ich die meisten PIC-uC verwenden konnte und Pins die bereits darauf gewartet haben verwendet zu werden.
Ein weiterer Vorteil dieser Platine ist, dass der uC dabei in der fertigen Schaltung programmiert werden kann. (Dank ICSP-Programmierung)

Link zur Anleitung Test-Platine (außerdem eine gute Anlaufstelle für grundlegende Elektronik):
http://www.sprut.de/electronic/pic/test/index.htm#40pin

Auf dieser Seite hab ich sehr viele Stunden verbracht und mich in die uC-Technik eingelesen.
Auch über die ICSP-Schnittstelle und was man bei ihr beachten muss oder wie wichtig eine
stabile Stromversorgung für einen uC ist hab ich dort viel gelesen. Ich rate euch dasselbe zu tun.

Aufgebaut hab ich meinen Würfel auf einer Lochraster-Platine da ich vom selbst Ätzen noch weit entfernt war. Da meine Stromlaufpläne mit Bleistift auf Butterbrotpapier gezeichnet waren, kann ich die hier leider nicht anbieten.

 

Die Hardware

IMG_0656[1]Dies ist die Test-Platine.

Links sieht man den 7805 Spannungsregler mit seinen Kondensatoren, der für die stabile Spannungsversorgung von 5V sorgt. Er schafft max. 5A und ist daher auch für sehr viele peripheren Schaltungen geeignet. Aufgrund des Wechselrichters (links unten) ist das ganze Verpolungssicher. Benötigt wird lediglich ein Netzteil das genug Ampere und eine Spannung zwischen 8 und 20V liefert. Der Schalter dient zum Ein und Ausschalten sowie als Umschalter zum Programmieren. Am Rand verteilt sieht man schön übersichtlich die aufgetrennten Ports des PIC. Links über dem PIC befindet sich die ICSP-Schnittstelle. Rechts unter dem PIC befindet sich eine Anschlussmöglichkeit für eine externe Taktversorgung für den PIC. Sie wird hier nicht verwendet da der PIC-interne Taktgeber des PIC 4620 verwendet wird, der immerhin bis zu 32MHz schafft.

 

IMG_0657[1]Dies ist die Platine für den Würfel.

Links oben kommt das Flachbandkabel von den digitalen Pins des uC und die Stromversorgung. Links unten die Anschlüsse für die Ebenensteuerung inklusive Vorwiderstände für die Transistoren der Ebenen (BC 639) die sich unter den LEDs befinden. Ich habe BC 639 verwendet da die einen Strom von kontinuierlich 0,5A schalten können.
Wenn man bedenkt dass jede Ebene nur 1/3 der Zeit leuchtet muss man den 3-fachen Strom durchschicken damit die Helligkeit subjektiv gleich bleibt. (Auf den max. Spitzenstrom der LED im Datenblatt achten!!!) Daher rechnet man 0,02A (pro LED) * 3 (3-facher Strom) * 9 (Anzahl der LEDs in einer Ebene die gleichzeitig leuchten können) = 0,54A
Es wird womöglich Leute geben die sich fragen, weshalb ich die Transistoren für die Säulen (BC 337) eingebaut habe. Das hab ich gemacht weil ja pro LED 0,02A * 3 = 60mA benötigt werden, der PIC pro Ausgang aber nur 25mA schafft. Man könnte jetzt natürlich sagen dass der Strom auch nur 1/3 der Zeit benötigt wird und dass das deshalb dem PIC nichts ausmachen wird… Dennoch wollte ich das Risiko nicht eingehen da es viel Arbeit ist eine Lochraster-Platine umzulöten. Ein Fehler ist mir dennoch aufgefallen. Für die Transistoren der Säulen hab ich keine Vorwiderstände. Dass dies trotzdem funktioniert halte ich für Glück. Die Widerstände die man nach den Transistoren sieht sind die Vorwiderstände für die LEDs die benötigt werden um den Strom durch die LEDs auf 60mA zu begrenzen. (zum Testen vielleicht stattdessen nur Vorwiderstände für 20mA verwenden – Nicht dass bei einem Fehler alle LEDs durchbrennen…) Desweiteren sieht man rechts unten einen Taster der die Animationen durchschalten kann sowie ein Potentiometer mit dem man die Animationsgeschwindigkeit regeln kann.

 

IMG_0658[1]Hier der komplette Test-Aufbau.

Oben sieht man noch eine Platine mit 7-Segment-Anzeigen die ich nachträglich noch eingebaut habe die mir die Nummer der aktuellen Animation 2-stellig anzeigt. Die 7-Segment-Anzeige hab ich zuerst ohne Würfel entwickelt und getestet. Es handelt sich um 2 ganz normale LED Anzeigen die mittels zweier 74HC164N Schieberegister und serieller Übertragung angesteuert werden…
(meine ersten Erfahrungen mit SPI)

 

Die Software

Natürlich braucht man jetzt noch eine Software die man auf den PIC programmiert.
Ich kann hier niemandem beibringen wie man programmiert. Dazu gibt es bereits genug Dokus im Netz und in Büchern. Hier aber trotzdem ein paar Eckpunkte zur Realisierung des Programms.

Grundsätzlich gibt es im Programm 2 Timer die Interrupts auslösen. Einen der die Ebenen zuverlässig zur richtigen Zeit durschaltet und einen der die Dauer eines Bildes festlegt (gesteuert durch das Potentiometer). Ein großes Problem war das Speichern der Animationen. In diesem ersten Programm hab ich die Animationen mit Einzelbildern erstellt. Dies endete bei langen Animationen in riesigen Arrays. Ein Array ist ein zusammenhängender Speicherblock. Wenn man sich eine Zeit mit Compilern auseinandergesetzt hat, weiß man dass in einem Linker-File Spezifikationen zu bestimmten Chips stehen. Das Linker-File das beim MPLAB von Microchip benötigt wird sieht ebenfalls vor dass die Speicherbereiche auf dem PIC in Blöcke unterteilt sind. Überschreitet nun die Größe eines Arrays die Größe so eines Speicherblocks gibt es Fehler beim Kompilieren des Programms. Man muss nun das Linker-File dementsprechend bearbeiten dass ein größerer zusammenhängender Speicherblock zur Speicherung der Animationen zur Verfügung steht. Das hat verdammt viel Zeit gekostet das herauszufinden.

imageAußerdem hab ich mir die Arbeit gemacht und mir ein Programm in VB.net geschrieben, mit dem ich in einer grafische Oberfläche Animationen planen kann. Danach bekommt man das fertige Array präsentiert und kann es über die Zwischenablage einfach ins MPLAB einfügen.

 

 

 

 

Das MPLAB-Projekt inklusive Linker-File, persönlichen Notizen und Animationen sowie dem VB.net 2010-Programm biete ich euch hier zum DOWNLOAD an.
Speichern mit Rechtsklick—>Speichern unter
Es ist eine ZIP-Datei die ich zu PDF umbenannt habe damit man sie über WordPress laden kann.

 

Fertig – Der Würfel in Aktion

 

3x3x3 Single Color Cube in Aktion (noch ohne 7-Segment-Anzeige)

 

Bis hier hin hat es schon viel Zeit benötigt. Man darf dabei auch nicht vergessen dass ich eine Lehre als Nachrichtenelektroniker habe. Man muss fairerweise aber auch dazusagen dass ich seit der Lehre sehr wenig mit der Materie zu tun hatte.

Beruflich hab ich die erste Zeit Kabelbäume & Platinen in Druckern getauscht und später war ich im PC-Support und Hotline. Jetzt bin ich Netzwerk-Administrator.

Von Elektronik auf dieser Ebene keine Spur. Dennoch bin ich zumindest im Hobby zu den Wurzeln zurückgekehrt.

Wer Fragen hat, findet im Blog sicher eine Möglichkeit diese zu stellen.
Ich werde antworten sofern möglich. Nur bitte nicht vergessen dass ich nebenbei auch noch ein “echtes” Leben habe. *smile*

 

Euer

Tekknologgy

Hallo liebe Leute!

Es mag zwar fast lächerlich wirken aber manchmal spielt das Leben halt nicht so wie man möchte
und meines wollte dass ich die Elektronik mal für eine Zeit beiseite lege.

Nach meinem letzten Beitrag habe ich noch ein bisschen was auf die Beine gestellt mit meinen
neu gewonnenen Kenntnissen über PIC-Prozessoren. Leider stieß ich dabei auf Probleme die mir
etwas den Mut geraubt haben. Immerhin habe ich sehr viel über PIC-Prozessoren und über die
allgemeinen Gegebenheiten von Mikroprozessoren gelernt.

Ich habe Sinn und Zweck von Entwicklerboards erfahren, was es mit Kompilern auf sich hat,
habe viele verschiedene Vor & Nachteile von IDEs (Programmier-Oberflächen) kennengelernt
und ich habe gelernt wie man verschiedenste elektronische Komponenten wie zB. LCD-Displays
mit Mikroprozessoren ansteuert.

Schlussendlich war ich in der Lage mithilfe eines PIC einen einfärbigen 3x3x3 Würfel anzusteuern.

Eine Essenz meiner Erkenntnisse und den aktuellen Stand nach meiner Pause werde ich in den nächsten Tagen nachliefern.

Auf bald!

 

Euer Tekknologgy

Hallo Freunde!

Einleitend die Vorgeschichte:

Beim Suchen nach interessanten YouTube-Videos stieß ich auf folgendes:

3D RGB LED Cube 8x8x8

Daraufhin erkundigte ich mich nach Möglichkeiten das Teil wo zu kaufen.
Und ich wurde fündig. Dabei fand ich heraus, dass unter folgendem Link auch Bausätze für den Würfel verkauft werden. Link

Ich hab schon damit geliebäugelt. Aber erst mal wollte ich sehen, was in dem Bausatz drin ist.
Ganz interessant war natürlich der Mikrochip PIC18F4620.
Also schnell mal das Datenblatt angesehen und die Anleitung des Chips gelesen und schon wollte ich den Bausatz nicht mehr. Ich wollte Experimente mit dem Chip machen und dabei selbst auf die Lösung kommen.

Danach hab ich mich mehrere Tage eingelesen in Themen wie:
C-Programme schreiben; PIC18F4620 programmieren bzw. brennen; Funktionsweise des Chips usw.

Und heute habe ich die ersten Teile für meine Versuche bestellt.

Einkaufs-Liste:

3x 32pol. Buchsenleiste, gerade Buchse für Steckverbindungen (lötbar)
2x 50pol. Stiftleiste, gerade, RM 2,54 Stifte  für Steckverbindungen (lötbar)
3x Kupferlitze isoliert, 10M, 1×0,14mm, schwarz Litzendrähte für Steckverbindungen
1x PIC 18F4620 DIL-40 Ein stärkerer Mikroprozessor als beim PicKit dabei ist
1x Europlatine, Epoxyd, verzinnt 160×100 mm Lochraster-Platine zum experimentieren bzw. als Adapterplatine für den PIC18F4620
2x Silberdraht, Ø 0,6mm, Länge: 10M Zum Löten der Verbindungen auf der Lochraster-Platine
1x IC-Sockel, 40-polig, Burn-in-Sockel, Nullkraft Ein Nullkraft-Sockel für die Adapterplatine und den PIC18F4620
1x PICkit 3 Debug Express Programmiergerät für Mikrochips

 

image

Bei dem PICKit 3 ist eine Testplatine dabei mit aufgelötetem PIC18F45K20 Chip. Außerdem befinden sich darauf einige LEDs, ein Taster und ein Potenziometer.
Der Chip auf der Testplatine kann über den ICSP-Anschluss (In Circuit Serial Programming) mit dem PICKit mit Strom versorgt und programmiert werden. Jedoch sollte die Schaltung hinter dem Chip nicht mehr als 30mA benötigen, da USB nicht mehr hergibt. Dann sollte man eine Aktive Stromquelle für die Schaltung haben.
Wer keine Schaltung hinter dem Chip hat, braucht sich darüber keine Gedanken zu machen.

 

image

Ich bin schon gespannt, was noch alles dabei sein wird… CDs? Anleitungen?
Ich habe jedenfalls auf der Herstellerseite entsprechende Software und Anleitungen bereits heruntergeladen.

Beginnen werde ich damit, mir das Demo-Board mit dem kleineren Chip mal vor zu nehmen.
Nebenbei (wenn mir danach ist) bau ich gleich die Adapterplatine für den stärkeren Chip, den ich ja gleich mitbestellt habe.

Wenn ich soweit bin, erfahrt Ihr, wie es weitergeht.

 

“Sanfte Grüße” wünscht euch
Tekknologgy

Ich habe mich heute dazu entschlossen zu meinem neuen Hobby einen Blog zu erstellen.

Voilla! Da ist er. Worum wird es gehen? Um Technologie! Na No Na…

Aber was genau?

Haupt-Thema dieses Blogs wird sein:
Mikroprozessor-Technologie – Was man damit alles tun kann {aus dem Blickwinkel eines Fast-Laien}

Nebenbei führe ich eventuell auch andere Artikel, die aber allesamt mit Technologie und Wissenschaft zu tun haben werden.