-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLED.tex
More file actions
185 lines (132 loc) · 8.33 KB
/
LED.tex
File metadata and controls
185 lines (132 loc) · 8.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
\begin{figure}[ht]
\centering
\includegraphics[scale=0.25]{images/LED_Steckplatine.png}
\includegraphics[scale=0.25]{images/LED_Schaltplan.png}
% \caption{}
\label{LED_Steckplatine}
\end{figure}
\ExerciseBox{
Lasse die LED blinken [Beispiele]\\
Verändere die Helligkeit der LED in dem du ein PWM-Signal erzeugst}
\subsection{Shell}
\begin{console}
gpio -g mode 16 out
gpio -g write 16 1
gpio -g write 16 0
for i in {1..3}; do gpio -g write 16 1; sleep 1; gpio -g write 16 0; sleep 1; done
gpio -g mode 16 in
\end{console}
%https://de.scribd.com/doc/101830961/GPIO-Pads-Control2
% gpio drive 0 0 2 mA
% gpio drive 0 3 8 mA <- default
% gpio drive 0 7 16 mA
\clearpage
\subsection{C}
\begin{console}
geany &
\end{console}
Zuerst wird ein neues Projekt erstellt. Dazu wählt man im Menü \texttt{Projekt} $\rightarrow$ \texttt{Neu...}. Dann gibt man den Namen des Projekts an, z.~B. Blink. Das Anlegen der Verzeichnisse muss danach auch noch bestätigt werden.
\begin{figure}[ht]
\centering
\includegraphics[scale=0.48]{images/Geany_Projekt.png}
\includegraphics[scale=0.42]{images/Geany_Projekt2.png}
% \caption{}
\label{Geany-create}
\end{figure}
Weitere Einstellungen wie Zeichen für Einrückungen und Zeilenumbruch können unter \texttt{Projekt} $\rightarrow$ \texttt{Eigenschaften} vorgenommen werden.\\
Danach wählt man \texttt{Datei} $\rightarrow$ \texttt{Speichern unter} um die unbenannte Datei mit dem Namen "`Blink.c"' speichern zu können. Nun kann man den folgenden C-Source eingeben.
\lstset{language=C, caption=, label=LEDProgram, frame=single, basicstyle=\ttfamily
\footnotesize, breakatwhitespace=false, showstringspaces=false, showtabs=false, tabsize=2 }
\lstinputlisting{source/Blink.c}
Im Menü muss man nun unter \texttt{Erstellen} $\rightarrow$ \texttt{Kommandos zum Erstellen konfigurieren} die WiringPi Library mit "`\textit{-lwiringPi}"' bei \texttt{Compile} und \texttt{Build} ergänzen.
\begin{figure}[ht]
\centering
\includegraphics[scale=0.48]{images/Geany_Create_Wiringpi.png}
% \caption{}
\label{Geany-create}
\end{figure}
Dann kann man das Projekt mit den Ziegel-Icon \includegraphics[scale=0.4]{images/Geany_Icon_Erstellen.png} erstellen bzw. kompilieren und danach mit dem Zahnrad-Icon \includegraphics[scale=0.4]{images/Geany_Icon_Ausfuehren.png} ausführen. Beendet wird das Programm mit der Tastenkombination \framebox{Strg}+\framebox{C}.
\clearpage
\subsection{C\#}
\begin{console}
geany &
\end{console}
Zuerst wird ein neues Projekt erstellt. Dazu wählt man im Menü \texttt{Projekt} $\rightarrow$ \texttt{Neu...}. Dann gibt man den Namen des Projekts an, z.~B. csBlink. Das Anlegen der Verzeichnisse muss danach auch noch bestätigt werden. Danach wählt man \texttt{Datei} $\rightarrow$ \texttt{Speichern unter} um die unbenannte Datei mit dem Namen "`\textit{Blink.cs}"' speichern zu können. Nun kann man den folgenden C\#-Source eingeben.\\
\lstset{language=C, caption=, label=LEDProgramCS, frame=single, basicstyle=\ttfamily
\footnotesize, breakatwhitespace=false, showstringspaces=false, showtabs=false, tabsize=2 }
\lstinputlisting{source/Blink.cs}
Um das Programm kompilieren zu können, muss im Menü unter \texttt{Erstellen}
$\rightarrow$ \texttt{Kommandos zum Erstellen konfigurieren} der Pfad zur Sourcedatei des C\# WiringPi
Wrapper (siehe \ref{WiringPiCS}) hinzugefügt werden. Hierfür im Textfeld \texttt{Kompilieren} den Pfad zu WiringPi.cs ergänzen
"`\textit{mcs /t:winexe \textquotedblleft\%f\textquotedblright WiringPi.cs /r:System,System.Drawing}"'.\\
\begin{figure}[ht]
\centering
\includegraphics[scale=0.48]{images/Geany_Set_cs.png}
% \caption{}
\label{Geany-setpy3}
\end{figure}
Es muss die WiringPi Wrapper Datei in das Projektverzeichnis kopiert werden.
\begin{console}
cp ~/Projekte/WiringPi.cs ~/Projekte/csBlink/
\end{console}
Anschließend kann man das Programm mit dem Kompilieren-Icon \includegraphics[scale=0.4]{images/Geany_Icon_Kompilieren.png} erstellen bzw. kompilieren und mit dem Zahnrad-Icon \includegraphics[scale=0.4]{images/Geany_Icon_Ausfuehren.png} ausführen.
Das Programm kann mit der Tastenkombination \framebox{Strg}+\framebox{C} vorzeitig beendet werden.
\clearpage
\subsection{Python}
\begin{console}
geany &
\end{console}
Zuerst wird ein neues Projekt erstellt. Dazu wählt man im Menü \texttt{Projekt} $\rightarrow$ \texttt{Neu...}. Dann gibt man den Namen des Projekts an, z.~B. PyBlink. Das Anlegen der Verzeichnisse muss danach auch noch bestätigt werden. Danach wählt man \texttt{Datei} $\rightarrow$ \texttt{Speichern unter} um die unbenannte Datei mit dem Namen "`\textit{Blink.py}"' speichern zu können. Nun kann man den folgenden Python-Source eingeben.
\lstset{language=Python, caption=,
label=LEDProgram, frame=single, basicstyle=\ttfamily
\footnotesize, breakatwhitespace=false, showstringspaces=false,
showtabs=false, tabsize=2 }
\lstinputlisting{source/Blink.py}
Um das Programm auszuführen zu können, muss im Menü unter \texttt{Erstellen}
$\rightarrow$ \texttt{Kommandos zum Erstellen konfigurieren} der Python
Interpreter von Version 2 auf Version 3 umgestellt werden. Hierfür einfach im
Textfeld \texttt{Compile} und im Textfeld \texttt{Execute} "`\textit{python}"' durch "`\textit{python3}"'
ersetzen.
\begin{figure}[ht]
\centering
\includegraphics[scale=0.48]{images/Geany_SetPy3.png}
% \caption{}
\label{Geany-setpy3}
\end{figure}
Anschließend kann man das Programm mit dem Zahnrad-Icon \includegraphics[scale=0.4]{images/Geany_Icon_Ausfuehren.png} ausführen. Achtung, nach dem Start braucht die Initialisierung der GPIOZero Library ein paar Sekunden, bevor das Programm startet. Beendet wird das Programm mit der Tastenkombination \framebox{Strg}+\framebox{C}.
\clearpage
\subsection{Blockly-gPIo}
Nachdem man mit dem Browser die Blockly-gPIo Adresse \url{http://raspberrypi.local/Blockly-gPIo} aufgerufen hat, kann man die Programmierung vornehmen. Mit der Flagge links im Menü kann man zwischen der Sprache Deutsch und Englisch umschalten.\\
Den Block "`repeat"' bzw. "`wiederhole"' kann man vom Menüeintrag "`Loops"' bzw. "`Schleifen"' herausziehen. Die Blöcke "`set LED ..."' bzw. "`schalte LED ..."' und den Ausgangsstatus "`High"' kann man im Menüeintrag "`gPIo"' finden. Die "`wait"' bzw. "`warte"' Funktion steckt im Menüeintrag "`time"' bzw. "`Zeit"'. Den Wert für die Wartezeit muss man sich im Menü unter "`Math"' bzw. "`Mathematik"' holen.\\
Mit Plus und Minus Symbolen kann die Anzeige vergrößert und verkleinert werden. Zieht man Blöcke auf den Mistkübel werden sie gelöscht. Mit der rechten Maustaste auf einem der Blöcke, kommt man zum Kontextmenü und kann dann z. B. Elemente kopieren.
\begin{figure}[ht]
\centering
\includegraphics[scale=0.28]{images/Blockly-gPIo_LED_EN.png}
\includegraphics[scale=0.28]{images/Blockly-gPIo_LED_DE2.png}
% \caption{}
\label{Blockly-gPIo_LED_blinking}
\end{figure}
Die entsprechenden Blöcke untereinander angeordnet, ergeben die gewünschte Blinklicht Funktion. Mit der blauen Start-Taste kann das Programm im Simulationsmodus gestartet werden. Auf der rechten Seite wird der GPIO-Zustand dargestellt. Rechts unten werden Status-, Fehler- und "`print"'-Meldungen ausgegeben.\\
Nach dem Drücken der Zahnrad-Taste, kann die IP-Adresse der Raspberry Pi eingegeben oder ausgewählt werden. Mit dem Haken wird die Einstellung übernommen. Mit dem Käfer wird auf den Simulationsmodus geschaltet.
\begin{figure}[ht]
\centering
%\includegraphics[scale=0.32]{images/Blockly-gPIo_connection.png}
\includegraphics[scale=0.32]{images/Blockly-gPIo_connection_DE.png}
% \caption{}
\label{Blockly-gPIo_LED_connect}
\end{figure}
Wird auf der Seite links oben, statt des Käfers das Raspberry Pi Logo angezeigt, so wir das Programm nach dem Drücken der blauen Start-Taste auf der Raspberry Pi ausgeführt. Mit der blauen Stopp-Taste kann das Programm abgebrochen werden.
\clearpage
\subsection{Assembler}
Echte Hardcore-Programmierer können natürlich auch das Beispiel in Assembler schreiben. \texttt{;-)}
\lstset{language=[x86masm]Assembler, caption=,
label=LEDProgram, frame=single, basicstyle=\ttfamily
\footnotesize , breakatwhitespace=false, showstringspaces=false,
showtabs=false, tabsize=2 }
\lstinputlisting{source/Blink.asm}
Um das Programm zu kompilieren und auszuführen müssen folgende Befehle in die Kommandozeile eingegeben werden:
\begin{console}
as -o Blink.o Blink.asm
gcc -o Blink Blink.o -lwiringPi
./Blink
\end{console}