Home Uni|Fakultäten    Home Physik |Studium |IT-Ausbildung                      (diese Seite ist zul. bearbeitet:09.01.2023)


Folgendes ist etwas zu umfangreich geraten:  
Wer es dennoch lesen möchte, es soll nur ein Soll-Fahrplan sein

 jetzt modernisiert -->.  Software mit Test und Hardware-Prototypenbau  mit Steckbrettern, weil dynamisch  und praktisch.

Soweit es der Kurs zulässt, und es gewünscht wird, zeige ich auch die Anwendung vom Elektronik Layout Programm "Eagle"

Vermittlung von praktischen Techniken, auch im Selbstbau, Zusammenbau, Löten.
  Erfahrung bekommt man nur durch "selbst tun".
( Bauteile und Funktion werden erklärt ) .

Installation und Einrichten einer Entwicklungsumgebung ( IDE ). Darin enthalten: Programmier-(Flash)-Software, Programm-Editor, Compiler ( WINAVR ), Makefiles für Compiler. Funktionsumfang-Helpfiles, Terminalprogramm zur Kommunikation mit dem µC.

Erstellen eigener, erster grundlegender Programme in der IDE. Damit vollständiger Entwicklungs-Tournaround:  Editieren, Kompilieren mit 'makefile', Flashen (=Laden auf µC), Run. Simples "Monitoring" des: --> "was tut der µC ?"

Kennenlernen des µ-Controllers, Anschluss Pins, den Ports, der vielfachen Belegungsmöglichkeiten der Port-Pins (je nach Modi ).
Erkunden des Innenlebens der µControllers, also den internen Komponenten (Fähigkeiten ) .

Ansprechen der inneren µC Komponenten mit den internen Steuerregistern ( SFR= Special Function Register ).

Programmiertechniken zum korrekten Ansprechen der Steuer-Register ( SFR
= Special Function Register )

Umsetzung der Erkenntnisse in methodische Programmiertechniken zur Manipulation einzelner Bits ( setzen, löschen etc.. )

Erarbeiten der Techniken zum Aktivieren des ADC (Analog-Digital Converter) oder Timers in einen gewünschten Modus. Dazu muss man sich mit dem inneren Geschehen im µC vertraut machen umso die einzelnen notwendigen Schritte zu verstehen, Im selben Zug werden die Steuerbits der zugehörigen Steuer Register gesetzt/gelöscht.

dazu: Umsetzung des µ-Controller Handbuches ( PDF ), mit der darin enthaltenen Registerbeschreibung, in eigenen  "lesbaren" C-Code.

Kommunikation des µC mit einem Terminalprogramm. Steuerung des µC via Text-Befehle = "Mnemonik Befehle".
z.B. Auf ein "Ping" antwortet der µC mit "Pong", oder "Frq,300"-->  bedeutet "Frequenz On mit 300 Pulsen/Sec".

Signalerzeugung mit mathematischen Methoden unter Beachtung  in der Programmierung typischer Grenzen.  z.B. Sinus Wertetabelle mit grenze-genauen Wertebereich.

Ansteuerung externer  ICs durch eigene Umsetzung des im Handbuch geforderten Signalflusses. Damit kann man die Möglichkeiten des µC unbegrenzt erweitern. z.B. mit hochauflösenden externen ADCs, DACs oder In-Out Porterweiterung.

Einbindung von fremden Software-Modulen, z.B. eine IR-Code ( Infrarot ) Empfänger Software. Damit kann z.B. eine TV Fernbedienung empfangen werden. Oder mit einer LCD-Softwaresammlung ein LCD Display genutzt werden.

Sensorik: Normierung  und Anpassung von optischen oder anderen Sensorsignalen  auf die Eigenschaften der µC Eingänge.

Schrittmotor Ansteuerung, durch Interrupts präziser und organisierter, Signalerzeugung durch den µC.

Servo Ansteuerung mittels PWM     ( und warum es da Grenzen in der Auflösung gibt ).

Erarbeitung fortgeschrittener Software-Konzepte.     z.B. kalibrierter Analog-Digital Converter, oder Software generierte und  Interrupt getriggert Multi PWMs.

Signal Synthetisieren:     z.B. mit Digital-Analog-Converter oder Interrupts ( z.B. eine TV taugliche Videosignal Synthese =  BAS-Signal )

Die µ-Controller Programmierung wird in ANSI-C  (nicht C++) und nicht in Assembler  (nur ausnahmsweise mit zeitkritische Routinen) erledigt.
ANSI-C ist relativ einfach, besitzt eine gewaltige Funktionsbibliothek ( math.h  etc. ) und ist letztlich gut "lesbar".
Die Compiler Ergebnisse des GNU-C Compilers können sich mit dem Zu-Fuß Assembler messen und sind stabil wie Eisen.
Es wird jedoch Stückweise Programmcode fertig geliefert, einschließlich der Methode und Klippen wie diese auf dem ersten Blick 'merkwürdigen' Makefiles.
Es folgt im Laufe die Erkenntnis, dass Software traditionelle Hardware ersetzen und überflüssig machen kann.
So kann z.B. ein 100% exakter Sinus auf mathematischen Weg mit Digital-Analog-Converter  produziert werden, z.B. mit 0.01Hz was ohne µC in dieser Qualität gar nicht denkbar ist.

Das Themenspektrum geht von Bohren, Löten, Bestücken, Testen über zur Programmierung, Erlernen der Bedeutung der Hardware-Komponenten, des Innenlebens des µ-Controllers, der µ-Controller Steuer-Register, Programmiertechniken, wie Flag-Bit Steuerung des Programmflusses.
So wird langsam der Mut "es selbst anders zu machen" geweckt Und so schwer ist es nicht.!

Was leider nicht gelernt wird, einfach mangels Zeit:
10 Tage = 2 Wochen ist zu kurz um umfasend dieses Thema zu behandeln.
Bsp. Protokolle.  Kommunikations-,Funkprotokolle, Kodierungsverfahren wie z.B. Zeitzeichensender etc.



Aus Erfahrung muss ich die Voraussetzungen genauer definieren: 
DIESE VORAUSSETZUNGEN SIND PFLICHT !

Wer in folgender Liste Lücken bei sich entdeckt d em empfehle ich den Kurs zu einem späteren Zeitpunkt zu besuchen.
Gefordert sind ( und das ist ernst gemeint ...)
ERSTENS: 'Grundlegende' Elektronik-Grundkenntnisse:
Ohm' sches Gesetz.
Schaltzeichen Grundkenntnisse,
allg. Verständnis der Bauteile:  Widerstand, Kondensator, Dioden.
~"einfaches" Verständnis des Transistors.
( aber "Fragen" ist immer erlaubt. Deshalb ist es ja ein Kurs. )

Wichtig: Ein paar Kenntnisse in der digitalen Logik:

( Wahrheitstabelle: And/Or/Not/Exor). Dies erörtere ich nochmals bei Bedarf

ZWEITENS: 
Programmiersprache ANSI -C
,  nach Kerninghan & Richie
Es müssen Kenntnisse bekannt sein über:
* Grund-Datentypen und Bereichsgrenzen von:   integer, char, unsigned char, unsigned word. pointer (*,&)
* Steuerstrukturen ( while(1){};, for (...), if(..)   etc..
* Operatoren +, -, *, /   usw..
* aber auch die Kurzformen : &=, |=, ^=, += , -= etc..

* Logik Grundlagen wie UND-gleich, OR-gleich, XOR-gleich, PLUS-gleich usw..
    Folgendes erläutere ich selbstverständlich im Kurs nochmals ausführlich:     
* Binär UND ( &) zu  logisch UND (&&) ,         
* Binär ODER ( | ) zu  logisch ODER (||) ,
* Bit-Shift  (<<, >>), z.B.   ( 1<< 3 )     .....weil wir es brauchen werden!

* Syntax, Aufbau   ( halt das typische etwas kryptische C, mit main .c und Headerfiels main.h )
Ich erkläre aber im Kurs alles erforderliche nochmals


Wir arbeiten auf der Plattform Windows10. Nicht Linux.
Wer das tun möchte, kann dies natürlich.

Früher mit dem kostenlosen Compiler WINAVR  C-Compiler
Ich plane den Ardunio Sketch als Compiler zu gebrauchen.
Den Weg dazu zeige ich auf.

(im Praktikumsraum sind PCs mit Windows10 vorhanden, 2 Personen/Tisch. evtl. eigenes Notebook möglich)

Ich behandele nicht die Linux-Welt. Obwohl das möglich ist. Das kann jeder selbst entscheiden, ob das einem lieber ist.
Linux GNU-C Compiler für  AVR Controller gibt es selbstverständlich. Dann aber selbst die Foren dazu recherchieren.
Ich empfehle einfache  Programmier Umgebungen und "Programmers Notepad ".
Nicht das AVRStudio (weil AVRStudio ist für den Anfang völlig überfrachtet und der Projektwechsel sehr umständlich).




Das Mikrocontroller ATmega(xxx) Manual als PDF des ATMega383 µControllers ist die wichtigste Dokumentation,  ebenso die Schaltpläne der Hardware und der Software-module.
Um diese Controller Beschreibung dreht sich letztlich alles:      Arduino UNO-R3 Mikrocontroller

Ein kostenloser Compiler: "DEV-C++".. https://homepages.uni-regensburg.de/~erc24492/DEV-C++/DEV-C++.html




Gründe für die Auswahl des ATMega  xxx

kostenloser, unlimitierter C/C++ Compiler ( GNU C ) und Entwicklungsumgebung
Programm einfach und billig "flashbar", Umfangreiche innere Ausstattung. Stabil und gut zu verstehen.
Kompatibel zu vielen Typen wie ATMega8 / 16 / 88   oder 328, ATTiny2313 und viele Andere.


Daten des ATMEGA 328p
extrem preisgünstiger Controller ~3..4€€
-kostenloser unlimitierter Compiler.
-hervorragende Dokumentationen zu Hardware und Compiler sind online verfügbar.
-Programme einfach via ISP flashbar.
-enorme Hardwareausstattung des Controllers
-3 Timer/Counter,
-serielle Schnittstelle, meist mit USB->RS232 Pegelwandler
-mehrere MUX ADCs, 8 oder 10 Bit
-In/Outs frei konfigurierbar
-I2C Bus usw.
-schnelle 16Mhz
-großer 32K Programm-Flash-Speicher + 512Byte EEPROM
-großzügige RAM-Ausstattung,,  2kB RAM
-leicht in eigene Hardware-Entwürfe integrierbar.
( Handbare Dimensionen )
-riesige Unterstützung von Freeware und von Konzepten im Internet




 
Projekte
Am Ende des Kurses wird ein individuelles µController Projekt erarbeitet. Frei nach Phantasie und Idee.
Eigene Projektideen sind erwünscht! wenn realisierbar. Jedoch schlage ich auch gerne welche vor.
Bsp. PID-Temperatur Regelung, IR-Morse Sende->Empfangs streck. Eine automatisierten Blumen Giesanlage mit Schrittmotor, Signalsynthese, z.B: Bildübertragung in SSTV Format. ( Ja! Das geht )


    Kleine Filme

Beispiele was realisiert werden kann: Youtubes:
Kursinhalte:
LED-Leiste an Arduino: https://youtu.be/xzEvoNsBBII
Star Trek - Blinker: https://youtu.be/bCqgU04aVAY
Knight Rider Blinker mit ATMega RROGMEM: https://youtu.be/3ELvAC1iKjg
8 Bit PWM mit ~61Hz : https://youtu.be/CQGpZJtY4rA
8 Bit PWM Oszillographen Bild:  https://youtu.be/CAvdiVNBoME
Sonstiges:
10 Bit und höher bzw. Hochauflösend, Software PWMs
Digitaler Servo mit Sinusmodulierter PWM: https://youtu.be/wDE_EwiImvc

Servo Antrieb als Laserspiegelschwenker: https://www.youtube.com/watch?v=Ad7s4GSefew
Schrittmotor Antrieb: https://www.youtube.com/watch?v=s_6w92g4vhc

Arduino - 8Bit PWM an LED: https://youtu.be/4bqq1U355Z0

Charlie Plexing: 
https://www.youtube.com/watch?v=fM7R5IJtgz0
PCF8574, TWI oder I2C Bus. SDA oben, SCL unten (mit AVR µC)  https://youtu.be/EsfhAZGRDGM LCD-Display Steuerung: I2C LCD + 8x8 Matrix mit MAX7219 https://youtu.be/KoqKPxGFp78
LED MAX7219 Matrix 8x8 https://youtu.be/ujFhfiDGThU
TTL 74595 CLK Data mit Shift 1: https://youtu.be/nBX_Ky-e4os

MAXREFDES99#: MAX7219 DISPLAY DRIVER SHIELD: https://youtu.be/5n3Nx3rOnx8

Braille : Text zu Blindenschrift Coder für Blindenschrift Drucker:
https://www.youtube.com/watch?v=amIJ61Tzl9w

LED Array als Fraktal Kunst: https://www.youtube.com/watch?v=q_FECRtilEk
Kursprojekt: Uhrzeitschreiber mit Servos: https://www.youtube.com/watch?v=ODoEta9Fo0I
ATmega16 Mikrocontroller erzeugt BAS Videosignal für das Spiel Tetris: https://youtu.be/u968ryO1Kpc

Roboterarm Steuerung https://www.youtube.com/watch?v=VD9lyP64qxw
Arduino in der Schule. Schulprojekte mit einfacher C-like Sketch Programmierung (langer Bericht):  https://youtu.be/gwcmN8XoMfE


Verantwortlich für den Inhalt dieser Seite ist Christof Ermer. Regensburg.
Telefon 0941-943-2140
Christof.Ermer@ur.de

Document made with KompoZer