Arduino Meetup August 2017


Nun haben wir es geschafft und haben jetzt schon alle nachwachsenden
Ressourcen dieses Jahres aufgebraucht...

Nach dieser deprimierende Nachricht heben wir die Stimmung mit einem
kleinen Büroscherz: Auf den ersten Blick erschreckend echt...

Aber kaum jemand rechnet mit einem auf Mass zugeschnittenen Papier
;-)

In Bern war die Demo Night.

Eine Demo ist ein Stück Software, das die Kunstfertigkeit des
Programmierers zeigt.
Der Ursprung war der kleine Hinweis, wer den Kopierschutz umgangen
hat, anfangs einfach nur ein Name hinzugefügt,
dann hat der sportliche Ehrgeiz dazu geführt, dass zunehmend
aufwändige Grafiken hinzugefügt wurden bis hin zu sehr komplexen
Animation.

Da Leute angefangen haben, nur noch Grafiken und Animationen am
Anfang anzusehen, ist eine eigener sportlicher Wettkampf daraus
entstanden: Das Demo.
In verschiedenen Disziplinen gilt es zu zeigen, wer am besten
programmieren kann, wer am Meisten aus der Hardware herausholen kann
und wer am kreativsten ist.
Das kann von Einzelpersonen gemacht werden oder einem ganzes Team.
Sei dies auf einem modernen PC, bei denen das Programm nicht grösser
als 64 kB sein darf.
Oder auf limitierter (alter) Hardware gemacht wird, wie zum Beispiel
C64, Amiga etc.
Bis hin zu Livewettbewerben vor Publikum, bei dem das ganze Programm
in 20 Minuten programmiert sein muss.

Oftmals geht es weniger um eine Aussage, eher um die Anwendung
komplizierter mathematischer Formeln und Algorithmen,
beispielsweise Spiegeleffekte ohne eine dafür vorbereitete
Grafikkarte zu erstellen.

Eine kleine Übersicht wann welcher Computer auf den Markt gebracht
wurde und was in der Welt gleichzeitig passierte.

Zurück zur Demo Night, die Amiga Demos liefen auf einem FPGA welches
einen Amiga 1200 synthetisierte.


Die Erklärungen zum Demo ging relativ schnell sehr tief in die
Details der Assembler Programmierung, zum Glück hatte ich das mal
gelernt :-)

An dieser Stelle wurde das Demo "Chaos Theory" aus der Kategorie PC
64 Kilobyte abgespielt, dabei ist es sehr wichtig,
KEIN Video abzuspielen, sondern dieses Live berechnen zu lassen !
Vor dem Beginn die Frage ins Publikum, ob sie es erwartet hätten,
heute in einem Lokal mit Livemusik verwöhnt zu werden ?
Link zu den Erschaffern: http://chaostheory.conspiracy.hu
Wer keinen Windows PC hat, hier doch ein Video:
Chaos Theory - Awesome 64k Demo! [720p HD]
https://www.youtube.com/watch?v=ZfuierUvx1A

Kommen wir nun zu etwas völlig anderem: Zur "Ham Radio" in
Friedrichshafen, einer der grössten Amateurfunkmessen der Welt.

Die Messe ist sehr einfach zu finden: Folge den Leuten mit den
Antennen :-)

4 grosse Messehallen voller Präsentationsständen, Verkaufsständen,
Flohmarkt sowie Maker und "Steam Punker".

Und Immer wieder schwebte fast lautlos ein Zeppelin im Tiefflug über
das Gelände. Faszinierend.

Nicht nur andere Demos Night, auch hier war FPGA das Topthema.
Um "Software definierte Radios" mit "digitalen
Signalprozessoren" auf FPGA's zu synthetisieren.

Also sehen wir uns mal genau an was so ein FPGA ist und kann.

Vier völlig verschiedene Bauformen eine Funktion:
1) Hart verdrahtete Logikbausteine aus integrierten
TTL-Schaltkreisen, werden mit Draht oder einer Leiterplatte fix
verbunden.
Das läuft extrem schnell, aber der Aufwand ist gross und Änderungen
sind nicht (kaum) mehr möglich.
2) Bei Prozessoren (CPU's) wird die Funktion als Programm berechnet,
dies ist sehr flexibel, aber langsam und bei zeitkritischen
Anwendungen sehr schwierig.
3) Ein Mittelding ist der Kontroller, bei dem einige Funktionen in
Hardware aufgebaut sind
oder beim ASIC, bei denen die Funktionen in Hardware in der Fabrik
erstellt werden, was sich nur in grossen Stückzahlen lohnt.
4) Völlig anders ist der FPGA: Eine grosse Anzahl von
Logikelementen, die via Software miteinander verbunden werden und so
die Funktionen in Hardware abbilden, fast so schnell wie
hartverdrahtet, aber flexibel wie Software. Mit fallenden Preisen
werden diese auch für Hobby Anwender sehr interessant :-)

Dies sind die Schritte zur Synthetisierung.

Entwicklungs Boards mit Programmiergeräten gibt es schon ab 20
Franken, dazu kostenlose Software.
In diesem Beispiel von Altera ein Cyclone II mit der Quartus II
Software.

Die "Definition der Funktion" kann als Schema gezeichnet oder
programmiert werden (hier in Verilog).
Nicht nur simple Gatter können erstellt werden, ganze CPU's, sogar
ein kompletter Amiga kann 1:1 synthetisiert werden !
Anschliessend kann zur Überprüfung eine Simulation gestartet werden.

Dann werden den Funktionen die Pins des Bausteins zugewiesen. Hier
zum Beispiel Input A auf Pin 42.
Zwei Tipps die mich Stunden gekostet haben: Nach der Zuweisung
nochmals "Analysis & Synthesis" starten, damit die Pins korrekt
verbunden werden.
Und bei diesem Programmiergerät darauf achten, dass die "Activity
LED" Bereitschaft anzeigt und dann erst das Programm (in oft
externen Speicher) hochladen.
Ein allgemeiner Hinweis für alle Bausteine: Nicht benötigte Eingänge
IMMER auf ein Potenzial legen, um ein "Floaten" zu verhindern,
sonst können undefinierte Eingänge beliebig schalten und damit
Störfrequenzen erzeugen und sehr viel Strom (sinnlos) verbrauchen.
Ist doch einfach ! :-)

Damit gebe ich das Mikrofon weiter.