Arduino Meetup August 2017

Folie 1



Folie 4

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


Folie 5

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


Folie 6

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


Folie 7

In Bern war die Demo Night.


Folie 8

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.


Folie 9

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.


Folie 10

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.


Folie 11

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


Folie 12

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


Folie 13



Folie 14

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


Folie 15

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


Folie 16

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


Folie 17

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


Folie 18

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


Folie 19

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


Folie 20

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


Folie 21

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


Folie 22

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 :-)


Folie 23

Dies sind die Schritte zur Synthetisierung.


Folie 24

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.


Folie 25

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.


Folie 26

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 ! :-)

Folie 27

Damit gebe ich das Mikrofon weiter.