\documentclass[]{schulein}
\usepackage[utf8]{inputenc}
\usepackage{schulinf}

% Dieses Dokument ist in der Zusammenarbeit von Informatikreferendaren und
% ehemaligen Informatikreferendaren der Studienseminare (heute ZfsL) Arnsberg,
% Hamm und Solingen entstanden.
%
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
%
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden,
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben
% und auf die ursprünglichen Urheber verwiesen wird.
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen.
%
% Die Namensnennung durch einen Verweis und die Lizenzangabe der ursprünglichen
% Urheber auf den Materialien für Schülerinnen und Schüler ist erforderlich.
%
% Die Sammlung der Dokumente steht unter
% http://ddi.uni-wuppertal.de/material/materialsammlung/
% zur Verfügung.
%
% Das LaTeX-Paket zum Setzen der Dokumente der Sammlung steht
% unter  http://www.ctan.org/pkg/schule
% zur Verfügung.

\usepackage[pdfauthor={Referendare der Informatikfachseminare Arnsberg, Hamm und Solingen}]{hyperref}
\includexmp{lizenz}
\cclizenz{byncsaeu}
\footerQRLink{materialsammlung_qr_url.pdf}

\svnid{$Id: info_04_gpio_beschleunigungssensor.tex 626 2014-05-22 21:36:50Z pieper $}

\dokName{RasPi: Beschleunigungssensor am GPIO}
\jahrgang{9}

\usepackage{units}

\lstset{% 
	breaklines=true, % Zeilenumbrüche
	language=python, % Sprache
	basicstyle=\ttfamily\small,
	% breakindent=1pt,
	breakatwhitespace=false,
% 	framexleftmargin=5mm,
	% breakautoindent=false,
	numbers=left, numberstyle=\footnotesize,  numbersep=5pt,
	tabsize=2,
}

\begin{document}

\section*{Beschleunigungssensor am GPIO}
Überall auf der Erde wird man durch die Anziehungskraft zum Erdmittelpunkt hin beschleunigt. Diese Kraft lässt sich messen. Wenn man dieses in alle drei Raumrichtungen gleichzeitig macht, kann man damit auch die Lage eines Elementes zur Erdoberfläche bestimmen. Um solche Messungen mit dem Raspberry Pi durchführen zu können eignet sich der Chip MMA7455 sehr gut. Es ist aber zu beachten, dass dieser Chip mit den Abmessungen 5 x 3 x 1\,mm sehr klein ist. Daher bietet es sich an, ihn auf eine 4 x 4 Lochrasterplatine zu kleben und die notwendigen Anschlüsse mit einer Stiftleiste zu verbinden, so dass diese Kombination in Verbindung mit einem Steckbrett genutzt werden kann. Die Anschlüsse am Chip und die Verbindung mit dem GPIO sind den beiden nachfolgenden Zeichnungen zu entnehmen. Mit etwas Warmklebe kann dann zusätzlich verhindert werden, dass es zu Kontakten zwischen den dünnen Drähten kommt.

\begin{center}
	\input{chip_mma7455.cir} \hspace{3cm} \input{schaltung_gpio_mma7455.cir}
\end{center}

\subsection*{Treiber laden}
Der MMA7455 wird über das \(I^2C\)-Protokoll angesprochen. Der Raspberry Pi unterstützt dieses Protokoll, nachdem die entsprechenden Treiber als Kernelmodule geladen sind. Damit dieses dauerhaft der Fall ist muss in der Datei \lstinline|/etc/modprobe.d/raspi-blacklist.conf| die Zeile mit \lstinline|i2c-bcm2708| durch eine Raute auskommentiert werden. Außerdem muss in die Datei \lstinline|/etc/modules| eine Zeile mit \lstinline|i2c-dev| hinzugefügt werden. Nach einem Neustart des Raspberry ist dann alles notwendige an Treibern vorhanden. Alternativ können beide Module als Superuser mit dem Befehl \lstinline|modprobe| direkt geladen werden.

\subsection*{Auslesen mit Python}
Damit Python alle nötigen Befehle des \(I^2C\)-Protokolls versteht müssen erst noch zwei Pakete installiert werden. Dieses geht am einfachsten mit \lstinline|sudo apt-get install i2c-tools python-smbus|.

Ein Python-Programm, dass die Werte aller drei Achsen ausließt und darstellt wurde in der vierten Ausgabe von The MagPi vorgestellt, die unter \url{http://www.themagpi.com/en/issue/4} erhältlich ist.

\clearpage
Der Quelltext dieses Programms ist hier noch einmal abgedruckt:

\lstinputlisting[firstline=19]{beschleunigung.py}

\end{document}