<jupyter_start><jupyter_text>Erste Stunde (21.08.2018)Ziel der AG: Euch an die Programmierung heranführen. Zu zeigen, wie einfach und schnell man selbst Programme schreiben kann, die einem wiederkehrende Arbeiten abnehmen. Dazu verwenden wir die leicht zu erlernende Programmiersprache Python, in der Version 3. Pyhton ist eine offene und kostenlose Sprache, so daß jeder diese herunterladen und verwenden darf. Python gibt es dabei für fast jede Plattform (Windows, macOS, Linux, etc.). Die Python Downloads findet man [hier](https://www.python.org/)Wie steht es um eure Kenntnisse:* Wer hat zu Hause einen eigenen Rechner (welches Betriebsystem)?* Wer kann selbst Programme und Spiele installieren?* Wer kann seinen Rechner selbst installieren?* Wer hat schon mal ein Softwareproblem an seinem Rechner gelöst?* Wer hat schon mal Programmcode gesehen?* Wer hat schon mal ein Programm geschrieben?Mit den Resultaten der Fragen bilden wir Gruppen.Als Hardware verwenden wir hier keine Windows Rechner, sondern den Raspberry Pi, einen Einplatinenrechner, der gerade mal 35 Euro kostet. Auf diesem läuft ein Linux Betriebsystem, mit dem Namen Raspbian. Hard- und Software sind beides Open Source und wurde extra für das Bildungswesen entwickelt. Was kann man mit der Kombination Python / Rasberry Pi alles machen:* Roboter (z.B. [Monster Borg](https://www.piborg.org/robots/monsterborg))* Tier-Kamera (z.B. [Pimoroni Octocam](https://shop.pimoroni.com/products/octocam-pi-zero-w-project-kit))* Wetterstation (z.B. [Coding World](https://codingworld.io/project/wetterstation-ende))* Minecraft manipulierenBeispiele für andere Rasberry Pi Projekte:* Haussteuerung (z.B. [openhab](https://www.openhab.org/))* Internetfilter (z.B. [Pi hole](https://pi-hole.net/))Möglich wird dies durch die Verwendung der GPIO Pinleite (general purpose input/output) auf dem Pi und der Verwendung elektrischer Bauteile.![Raspberry Pi](https://projects-static.raspberrypi.org/projects/raspberry-pi-getting-started/6adfaf6cdb631126c7992ae2737d06d45f58002f/en/images/pi-plug-in.gif)Hier mal ein kleines Beispiel, mit Python eine LED an und ausschalten, welche an einem GPIO Pin hängt.Dafür starte ich die Python IDLE (IDLE = Integrated Development and Learning Environment) und gebe den Code in die Python Shell dank REPL (REPL = Read Eval Print Loop) mit direktem Feedback ein:<jupyter_code>import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.OUT)

GPIO.output(23, GPIO.HIGH)<jupyter_output><empty_output><jupyter_text>Jetzt leuchtet die LED. Wie kann man sie wohl wieder ausschalten?<jupyter_code>GPIO.output(23, GPIO.LOW)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08282904689863843, 'fraction_numerical': 0.01588502269288956, 'mean_word_length': 5.730279898218829, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 7, 'lorem ipsum': 0, 'www.': 3, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '523234', 'license': 'MIT', 'n_tokens_mistral': 889, 'n_tokens_neox': 865, 'n_words': 295, 'path': 'doc/Stunden/2018-08-21 - erste Stunde.ipynb', 'repo_name': 'Cyberdoc/PythonAG', 'size': '2644'}