Skip to content
Snippets Groups Projects
Commit 8c5e3ad5 authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Praktikumsunterlagen Versuch 2

parent 97603911
No related branches found
No related tags found
No related merge requests found
20231109/400_points_breadboard.jpg

129 KiB

File added
% hp-2023ws-p2.pdf - Labor Notes on Low-Level Programming
% Copyright (C) 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Peter Gerwinski
%
% This document is free software: you can redistribute it and/or
% modify it either under the terms of the Creative Commons
% Attribution-ShareAlike 3.0 License, or under the terms of the
% GNU General Public License as published by the Free Software
% Foundation, either version 3 of the License, or (at your option)
% any later version.
%
% This document is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this document. If not, see <http://www.gnu.org/licenses/>.
%
% You should have received a copy of the Creative Commons
% Attribution-ShareAlike 3.0 Unported License along with this
% document. If not, see <http://creativecommons.org/licenses/>.
% README: Versuch 2: Druckknopfampel
\documentclass[a4paper]{article}
\usepackage{pgscript}
\usepackage{multicol}
\usepackage{amsmath}
\usepackage{sfmath}
\sloppy
\raggedcolumns
\pagestyle{empty}
\addtolength{\textheight}{1cm}
\newcommand{\sep}{~$\cdot$~}
\newcommand{\mylicense}{CC-by-sa (Version 3.0) oder GNU GPL (Version 3 oder höher)}
\begin{document}
\makebox(0,0.005)[tl]{\includegraphics[scale=0.72]{logo-hochschule-bochum-cvh-text-v2.pdf}}\hfill
\makebox(0,0)[tr]{\includegraphics[scale=0.5]{logo-hochschule-bochum.pdf}}
\par\bigskip\bigskip
\begin{center}
\Large\textbf{Praktikumsversuch 2: Druckknopfampel}
\par\medskip
\normalsize Hardwarenahe Programmierung\sep
Wintersemester 2023/24\sep
Prof.~Dr.~Peter Gerwinski
\end{center}
Aufgabe: Programmieren Sie einen Mikrocontroller so,
daß er eine Druckknopfampel steuern kann.
\begin{multicols}{2}
\begin{itemize}
\item
Normalerweise zeigt eine Druckknopfampel rotes Licht für die
Fußgänger und grünes Licht für die Straße.
\item
Nach Knopfdruck wechselt die Straße über Gelb nach Rot.
Danach bekommen die Fußgänger Grün.
Nach einer gewissen Zeit bekommen die Fußgänger wieder Rot,
und die Straße wechselt über Rot-Gelb wieder zu Grün.
\medskip
\item
Als Mikrocontroller-Entwicklungsplattform stellen wir Ihnen
einen \emph{Arduino Uno\/} zur Verfügung.
\item
Software-Entwiklung für den Arduino geschieht üblicherweise
mit Hilfe der Entwicklungswerkzeuge \emph{GCC, binutils und
glibc für AVR} sowie \emph{avrdude\/} für das Herunterladen
des geschriebenen Programms vom PC auf den Mikrocontroller.
Die Arduino-Entwicklungsumgebung (siehe z.\,B.\
\url{https://www.arduino.cc/en/Main/Software}) integriert
alle diese Komponenten.
\item
Wir schreiben unser Programm in C und nicht in der INO-Sprache.
Wenn die Quelltext-Dateien in der Arduino-Entwicklungsumgebung
die Endung \file{.ino} haben, ist das kein Problem,
sofern der Inhalt der Datei in C geschrieben ist.
\item
Den Schaltplan des Arduino Uno sowie das Datenblatt des
ATmega328p finden Sie per Web-Recherche.
\columnbreak
\item
Sie können Ihr Programm direkt aus der Arduino-Entwicklungsumgebung heraus
compilieren und auf den Mikrocontroller herunterladen.
Wenn Sie dies von der Kommandozeile aus machen möchten,
geht dies folgendermaßen:
\lstinline[style=cmd]{avr-gcc -Wall -Os -mmcu=atmega328p \}\\
\lstinline[style=cmd]{dateiname.c -o dateiname.elf}
\lstinline[style=cmd]{avr-objcopy -O ihex \}\\
\lstinline[style=cmd]{dateiname-4.elf dateiname-4.hex}
\lstinline[style=cmd]{avrdude -P /dev/ttyACM0 -c arduino \}\\
\lstinline[style=cmd]{-p m328p -U flash:w:dateiname.hex}
% Notfalls: \lstinline[style=cmd]{sudo chmod 666 /dev/ttyACM0}
\medskip
\item
Die Verdrahtung erfolgt auf Steckplatinen -- siehe
Abb.~\ref{Steckplatine}.
Die mit roten und blauen Streifen markierten Lochreihen sind
in Längsrichtung elektrisch verbunden, alle anderen in
Querrichtung mit einer Trennung in der Mitte. Üblicherweise
verwendet man die Längsrichtung für die Stromversorgung: Rot
= Versorgungsspannung, Blau = 0\,V.
\item
LEDs sind keine Glühlampen! Sie haben einen Pluspol (länger)
und einen Minuspol (kürzer, Gehäuse abgeflacht), und sie dürfen
\textbf{nur mit Vorwiderstand} betrieben werden,
andernfalls besteht die Gefahr einer Zerstörung der LED
und/oder des Arduino.
\item
Anstelle eines Drucktasters verwenden wir ein Stück Draht.
\item
Bevor Sie Ihre Schaltung unter Strom setzen, lassen Sie
diese \textbf{durch einen Betreuer prüfen}.
\end{itemize}
\vspace*{-\medskipamount}
\strut\hfill\emph{Viel Erfolg!}\\[-3.5cm]
\end{multicols}
\vspace*{-1.5\bigskipamount}
\begin{figure}[h]
\begin{minipage}{7.3cm}
\includegraphics[width=8cm]{400_points_breadboard.jpg}
\vspace*{-1cm}
\caption{Steckplatine\label{Steckplatine}}
\vspace*{1cm}
\end{minipage}%
\begin{minipage}{9cm}
\small\raggedright
\vspace*{1cm}
Bildquelle:
\href{https://commons.wikimedia.org/wiki/File:400_points_breadboard.jpg}%
{\nolinkurl{https://commons.wikimedia.org/}\\
\nolinkurl{wiki/File:400_points_breadboard.jpg}}\\
Autor: \url{https://www.flickr.com/people/33504192@N00}\\
Lizenz: CC-BY-SA 2.0 Generic
\end{minipage}
\end{figure}
\vspace*{-1.5\bigskipamount}
\vfill
\begingroup
\small
\setlength{\leftskip}{3cm}
Stand: 9.\ November 2023
% Soweit nicht anders angegeben:\\
Copyright \copyright\ 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023\quad Peter Gerwinski\\
Lizenz: \mylicense
Sie können diese Praktikumsunterlagen einschließlich \LaTeX-Quelltext
% und Beispielprogramme\\
herunterladen unter:\\
\url{https://gitlab.cvh-server.de/pgerwinski/hp}
\endgroup
\end{document}
...@@ -45,6 +45,7 @@ Musterlösungen: ...@@ -45,6 +45,7 @@ Musterlösungen:
Praktikumsunterlagen: Praktikumsunterlagen:
--------------------- ---------------------
* [Versuch 1: RSA-Verschlüsselung](https://gitlab.cvh-server.de/pgerwinski/hp/raw/2023ws/20231012/hp-2023ws-p1.pdf) * [Versuch 1: RSA-Verschlüsselung](https://gitlab.cvh-server.de/pgerwinski/hp/raw/2023ws/20231012/hp-2023ws-p1.pdf)
* [Versuch 2: Druckknopfampel](https://gitlab.cvh-server.de/pgerwinski/hp/raw/2023ws/20231109/hp-2023ws-p2.pdf)
Alte Klausuren: Alte Klausuren:
--------------- ---------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment