• Erste Schritte
  • Hardware & GPIO
  • Projekte
  • Software
    • Webserver
  • Arduino & ESP8266
  • Hausautomatisierung
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Einstieg
    • Erste Schritte
      • Raspberry Pi 3 Einstieg - Starter KitWas brauche und wie starte ich? – Raspberry Pi Einstieg
    • Einrichtung
      • microsd_karte_menuRaspbian Betriebssystem auf eine SD Karte flashen – Einfach & Schnell
      • wlanbluetooth_menuWLAN und Bluetooth einrichten – Raspberry Pi 4
      • wifi_menuWLAN Stick installieren und einrichten – Alternative
      • bash_menuSSH Zugriff einrichten via Putty – Kommandozeilen Zugriff
      • rdp_menuRemotedesktop Verbindung aufbauen – Fernsteuerung
    • Einsteiger Projekte
      • Sinnvolles Raspberry Pi Zubehör
      • 15 Raspberry Pi Projekte für Anfänger
      • Ampelschaltung mit GPIOs
      • GPIOs mit Port Expander erweitern
      • Elektronischer Würfel
      • 13 tolle Projekte für Kinder und Jugendliche
      • Roboter selber bauen
      • In Visual Studio Code mit C++ programmieren
      • Wünsch dir ein Tutorial
    • Programmieren lernen
      • Teil 1: Einführung
      • Teil 2: GPIOs steuern
      • Teil 3: GUI erstellen
      • Teil 4: PWM
      • C# GUI Apps entwickeln
  • Hardware & GPIO
    • 50 der wichtigsten Raspberry Pi Sensoren und Module – Aufgelistet mit Links zu den TutorialsRaspberry Pi Sensoren
    • Beliebte Tutorials
      • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
      • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
      • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Funksteckdosen (433MHz) steuern
      • Raspberry Pi Relais ModulRaspberry Pi: Relais-Schalter per GPIO steuern
      • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
      • Amazon-Alexa-deutsch-auf-dem-Raspberry-Pi-installierenAmazon Alexa (Deutsch) auf dem installieren
      • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
      • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren
      • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
      • Raspberry Pi USB Boot per Stick oder SSD Festplatte einrichtenUSB Boot per Stick oder SSD Festplatte
      • Analog
        • Raspberry Pi MCP3008 ADCMCP3008: Am Raspberry Pi analoge Signale auslesen
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
        • Raspberry Pi PulsmesserRaspberry Pi Pulsmesser: Herzfrequenz messen
        • Joystick am Raspberry Pi benutzen (mit MCP3008)Joystick am Raspberry Pi benutzen (mit MCP3008)
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Drehregler - Rotary EncoderKY040 Drehregler als Lautstärkeregler für den Raspberry Pi
        • Easpberry Pi Soil SensorBodenfeuchtigkeit mit dem Raspberry Pi messen
        • Raspberry Pi KeypadRaspberry Pi Keypad anschließen – Codeschloss
        • Raspberry Pi door sensorÜberwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
        • Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)
      • Funk
        • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren lassen
        • Remote Control Raspberry Pi 433Mhz Radio TransmitterRaspberry Pi mit 433Mhz Funksender fernsteuern
        • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433MHz) steuern
        • Raspberry Pi MiFlora - Xiaomi Pflanzensensor in OpenHAB einbindenMiFlora – Xiaomi Pflanzensensor ins Smart Home einbinden
        • Raspberry Pi RFID RC522 TüröffnerRaspberry Pi RFID RC522 Tags auslesen (NFC)
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation (2.4 GHz): Arduino & Raspberry Pi
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen
        • Raspberry Pi Xbox 360 Wireless ControllerRaspberry Pi mittels Xbox 360 Controller steuern
        • Raspberry Pi GSM Modul - Huawei Internet SticksRaspberry Pi GSM Modul – Mobiles Internet
        • Raspberry Pi Bluetooth DatentransferRaspberry Pi Bluetooth Datentransfer zum Smartphone
      • Infrarot & Laser
        • Raspberry Pi Infrarot FernbedienungRaspberry Pi: Per IR Remote Befehle ausführen
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Laser Lichtschranke für weite DistanzenRaspberry Pi Laser Lichtschranke für weite Distanzen
        • Infrarot Raspberry Pi FernbedienungInfrarot Steuerung einrichten
        • Raspberry Pi Infrarot Lichtschranke bauen und Geschwindigkeit messenRaspberry Pi Infrarot Lichtschranke bauen
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
      • Temperatur & Navigation
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorRaspberry Pi: Luftfeuchtigkeit und Temperatur messen
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Raspberry Pi RTC Real Time ClockReal Time Clock Modul steuern
        • Rotation und Beschleunigung mit dem Raspberry Pi messenRotation und Beschleunigung mit dem Raspberry Pi messen
        • Raspberry Pi GPS ModulRaspberry Pi GPS Ortungs- / Navigationsgerät bauen
        • Raspberry Pi Kompass selber bauenRaspberry Pi Kompass selber bauen (HMC5883L)
        • Kontaktlosen Infrarot-Temperatursensor MLX90614 am Raspberry Pi auslesenMLX90614 – Kontaktlos Temperaturen messen
      • Displays
        • Raspberrry Pi HD44780 I2CHD44780 LCD Display per I2C ansteuern
        • Raspbery Pi LCD DisplayRaspberry Pi LCD Display: 16×2 Zeichen anzeigen
        • DisplayTipps & Tricks zum offiziellen 7″ Raspberry Pi Touchscreen
        • Raspberry Pi TouchscreenTestbericht zum 7″ Raspberry Pi Touchscreen Display
        • LCD Touch Display (3.2″) am Raspberry PiLCD Touch Display (3.2″) am Raspberry Pi
        • tft lcd touch displayRaspberry Pi LCD Touch Display Teil 2 – Anpassungen
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtRaspberry Pi LED Matrix – Projektübersicht
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige mit MAX7219 am Raspberry Pi (Anode)
        • Raspberry Pi Tablet Raspad TestberichtRaspberry Pi Tablet „Sunfounder RasPad“ Testbericht
      • Motoren & Sonstige
        • Raspberry Pi Stepper Motor Control with L293D / ULN2003ARaspberry Pi Schrittmotor ansteuern
        • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
        • Raspberry Pi PCA9685 mehrere Servos gleichzeitig steuernMehrere Servo Motoren per Raspberry Pi steuern
        • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
        • How to use a Raspberry Pi Fingerprint Sensor for AuthenticationRaspberry Pi Fingerprint Sensor zur Authentifizierung nutzen
        • Raspberry Pi Akku AdapterRaspberry Pi mit Akkus/Batterien betreiben
        • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
        • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
        • Raspberry Pi WS2812 RGB LED StripWS2812 RGB LED Streifen per Raspberry Pi steuern
        • Raspberry Pi Überwachungskamera LivestreamÜberwachungskamera Livestream einrichten
        • NoIRAufnahmen mit dem offiziellen Kamera Modul
        • Raspberry Pi Zero - establishing an Ethernet connection (ENC28J60)Raspberry Pi Zero – Ethernet Verbindung
  • Software
    • Webserver Installation
      • apache2_menu25Teil 1 – Apache2
      • php_menu25Teil 2 – PHP 5
      • mysql_menu25Teil 3 – MySQL
      • phpmyadmin_menu25Teil 4 – phpMyAdmin
      • ftp_menu25Teil 5 – FTP Server
      • dns_menu25Teil 6 – DNS Server via No-IP
      • home_menu25Homeverzeichnis ändern
      • share_25Samba Server: Dateien im Netzwerk teilen
      • nodejs_menu25Node.js Webserver installieren und GPIOs schalten
      • ssl_menu25SSL Zertifikat kostenlos mit Let’s Encrypt
      • wordpress_25Eigenen WordPress-Server einrichten
      • cloud-25Nextcloud auf dem Raspberry Pi installieren
    • Entertainment
      • led_menu25Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen
      • amazon_menu25Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
      • controller_25Raspberry Pi RetroPie – Spielekonsole selber bauen
      • kodi_menu25Mediencenter Raspbmc als SmartTV mit dem Raspberry Pi
      • android_25Android TV Box zum selber bauen
      • apple-2316234_640Raspberry Pi als AirPlay-Empfänger
      • jukebox_menu25Raspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.)
      • steam_25Steam Spiele streamen
      • minecraft_menu25Raspberry Pi Minecraft Server
      • youtube_25YouTube Live Streaming einrichten
      • qr-code-tutorials-raspberrypi.de_25Raspberry Pi QR / Barcode Scanner
    • Fernsteuerung
      • rdp_menuRaspberry Pi Remotedesktop Verbindung
      • ssh_menu25SSH Zugriff einrichten via Putty (Windows)
      • vnc_menu25Raspberry Pi mittels VNC fernsteuern
      • welcome_menu25SSH Terminal Begrüßung ändern
      • telegram1_menu25Telegram Messenger auf dem RaspberryPi
      • telegram2_menu25Mit Telegram Messenger Raspberry Pi steuern
      • bluet_menu25Raspberry Pi Bluetooth Datentransfer zum Smartphone
      • alexa_voice_25Eigenen Raspberry Pi Alexa Skill bauen
      • microphone_25Sprachsteuerung selber bauen
      • mqtt_25MQTT Broker/Client Funkkommunikation
      • mail_25Vom Raspberry Pi Emails senden
      • twitter_25Per Twitter Bot Nachrichten posten
    • Weitere
      • loggen_menu25Sensordaten mit ThingSpeak loggen und auswerten
      • mysql_datalogger25Per lokaler MySQL Datenbank zum Raspberry Pi Datenlogger
      • opencv_menu25OpenCV auf dem Raspberry Pi installieren
      • arduino_menu30tWiringPi installieren & Pinbelegung (Raspberry Pi)
      • radio_menu25Raspberry Pi als Radio Sendestation
      • win10_menu25Windows 10 IoT auf dem Raspberry Pi installieren
      • printer_25Drucker einrichten und per Knopfdruck Bilder drucken
      • gsm_menu25Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)
      • autostart_menu25Autostart: Programm automatisch starten lassen
      • machine-learning-25Raspberry Pi Machine Learning erlernen
  • Projekte
      • roboter_menu30tRoboter
        • Raspberry Pi Roboter ProjektRaspberry Pi Roboter Projektübersicht
        • Raspberry Pi Roboter Bausatz fertigTeil 1: Zusammenbau
        • Raspberry Pi Roboter - Linien folgenTeil 2: Linien folgen lassen
        • Raspberry Pi Roboter per Infrarot Fernbedienung steuernTeil 3: Per Infrarot Fernbedienung steuern
        • Raspberry Pi Roboter: Ultraschall AutopilotTeil 4: Automatisch Hindernissen ausweichen
        • Raspberry Pi Roboter der eigenen Stimme folgen lassenTeil 5: Der eigenen Stimme folgen lassen
        • Raspberry Pi Roboter mit Xbox 360 Controller fernsteuernTeil 6: Mit Xbox 360 Controller Roboter fernsteuern
        • Raspberry Pi Robot Arm 6DOF6-Gelenkigen Roboter Arm am Raspberry Pi betreiben (6 DOF)
      • led_menu30LED Matrix
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtMAX7219 LED Matrix – Projektübersicht
        • 8×8 LED Dot Matrix Parts8×8 LED Matrix – Zusammenbau und Installation
        • Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED MatrizenBibliothek für mehrzeilige m x n MAX7219 LED Matrizen
        • Graphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnenGraphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnen
        • Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry PiPong auf MAX7219 Matrizen spielen (mit Joystick)
        • Snake auf Raspberry Pi MAX7219 Matrizen spielenSnake auf Raspberry Pi MAX7219 Matrizen spielen
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige (Anode) mit MAX7219/MAX7221
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
      • wetterstation_menu30Wetterstation
        • Raspberry Pi Wetterstation mit OpenHAB 2 bauenEigene Raspberry Pi Wetterstation mit OpenHAB 2 bauen
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
        • raspberry_pi_thingspeak_daten_loggenSensordaten mit ThingSpeak loggen und auswerten
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
      • arduino_menu30tArduino & ESP8266
        • ESP8266 Microcontroller BoardEinführung & Programmierung des ESP8266 NodeMCU Boards
        • Raspberry Pi + ESP8266 NodeMCU: Per WLAN Daten sendenRaspberry Pi + ESP8266 NodeMCU: Per WLAN Daten senden
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Mit dem NodeMCU ESP8266 433MHz Funksteckdosen steuernMit dem NodeMCU ESP8266 433MHz Funksteckdosen steuern
        • ESP8266 NodeMCU HD44780 LCD Display per I2C steuernNodeMCU ESP8266: HD44780 LCD Display per I2C steuern
        • ESP8266 Grafikdisplay: Am SSD1306 OLED per I2C Bilder & Text anzeigen
        • ESP8266 Google Maps API RoutenplanerESP8266 Google Maps API Routenplaner auf LCD anzeigen
        • 2000px-Arduino_Logo.svgRaspberry Pi und Arduino – Einführung
        • arduino unoArduino und Raspberry Pi miteinander kommunizieren lassen
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation zwischen Raspberry Pi’s und Arduinos (2.4 GHz)
        • NodeMCU: ESP8266 mit Solarpanel und Akku mit Strom versorgenNodeMCU: ESP8266 mit Solarzelle und Akku mit Strom versorgen
        • ESP8266 Access Point: Günstigen Wlan Repeater selber bauenESP8266 Access Point: Günstigen Wlan Repeater selber bauen
      • Mini Projekte
        • Raspberry Pi Gewächshaus automatisch selber bauenAutomatisches Raspberry Pi Gewächshaus selber bauen
        • Eigene Raspberry Pi Gartenbewässerung mit Webseite bauenEigene Gartenbewässerung mit Webseite bauen
        • Raspberry Pi Radio StationRaspberry Pi als Radio Sendestation verwenden
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen (Autoradio, Car PC)
        • spotify-logo-primary-horizontal-dark-background-rgbRaspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.) – Online Radio
        • Raspberry Pi RetroPie Guide - SNES Classic Spielekonsole selber bauenRaspberry Pi RetroPie Guide – SNES Spielekonsole bauen
        • Android + Raspberry Pi: Funksteckdosen App BedienungRaspberry Pi + Android/iOS: Funksteckdosen per App schalten
        • Indirekte Deckenbeleuchtung selber bauen mit farbigem LED LichtIndirekte Deckenbeleuchtung selber bauen mit farbigem LED Licht
  • Sonstiges
    • Wünsch dir ein Tutorial
    • News
    • Reviews
      • Pi Cap – Kapazitives Raspberry Pi Erweiterungsboard
      • Raspberry Pi Tablet „Sunfounder RasPad“ – Testbericht & Einrichtung
      • Testbericht zum 7″ Raspberry Pi Touchscreen Display
      • CrowPi 2 Testbericht: Laptop & Lern-Kit für Kinder
      • Daten auf dem Wio Terminal LCD Screen anzeigen
    • Raspberry Pi Zero
      • Offizielles 5$ Raspberry Pi Zero Modul vorgestellt
      • Raspberry Pi Zero – Ethernet Verbindung herstellen (ENC28J60)
      • Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern
  • Hausautomation
    • OpenHAB
      • steckdose_25Sonoff S20 Wifi Steckdose steuern
      • wireless_25Funksteckdosen (433 MHz) schalten
      • schalter_25Relais steuern (Rollladen, Lichter, etc.)
      • wetterstation_menu30Wetterstation mit OpenHAB 2 bauen
      • ws28_25WS28xx RGB LED Streifen steuern
      • touchscreen_25Touchscreen Panel bei Näherung aktivieren
      • mqtt_25MQTT Datenabfrage: Raspberry Pi an ESP8266
      • spotify_25Remote Spotify Player im Smart Home
      • heizung_25eQ-3 Thermostat im Smart Home
    • Einführung
      • Raspberry Pi Smart Home OpenHAB installierenOpenHAB installieren & konfigurieren
      • Home Assistant auf dem Raspberry Pi – Erste Schritte
    • ESP8266 NodeMCU
      • esp8266_25Einführung & Programmierung
      • arduino_25ESP8266: Arduino IDE installieren
      • lcd_25NodeMCU HD44780 LCD
      • battery_25Batteriebetrieb via Deep-Sleep
      • wifi_menuPer WLAN Daten senden
      • wetterstation_menu30Wetterstation Außenposten
      • maps_25Google Maps Routenplaner
      • wireless_25NodeMCU Funksteckdosen steuern
      • mail_25Vom NodeMCU Emails versenden
      • rgb_25WS2812B LEDs am Smartphone steuern
      • solar_25ESP8266 Stromversorgung mit Solarzelle
    • Überwachung
      • Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi
      • Raspberry Pi: Überwachungskamera Livestream einrichten
      • mailbox_25Briefkasten Sensor – Email Benachrichtigung bei neuer Post
      • Raspberry Pi Überwachungskamera mit Webcam betreiben
      • Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
      • ESP32 Cam Livestream Tutorial für Kamera Modul
    • Raspberry Pi + Android: Benachrichtigungen von Bewegungsmelder
    • Raspberry Pi + Android/iOS: Funksteckdosen per App schalten
    • Raspberry Pi + Android: Schwenkbarer Kamera-Livestream
      • Smart Home
        • Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
        • Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial
        • Raspberry Pi Sprachsteuerung selber bauen (Hausautomatisierung)
  • Englisch
  • Französisch
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Erste Schritte»Programmieren lernen am Raspberry Pi – Teil 1: Einführung

Programmieren lernen am Raspberry Pi – Teil 1: Einführung

Facebook Twitter LinkedIn Tumblr Email Reddit
Raspberry Pi programmieren lernen Teil 1
Teilen
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Viele Einsteiger bekommen einen Raspberry Pi geschenkt und haben oft kaum bis gar keine Programmierkenntnisse. Daher möchte ich in dieser Reihe an Tutorials die Hürde verkleinern und zum Programmieren Lernen mit dem Raspberry Pi anregen. Der große Vorteil ist, dass wir auch hardwarenahen Code schreiben können, womit wir die GPIO Pins des Raspberry Pi’s nutzen können.

Als Programmiersprache nehmen wir Python, da diese eine der am einfachst zu lernenden Sprachen für Anfänger ist und es nebenbei auch mitunter die meisten Referenzen dafür gibt.

Zubehör

Ein Hinweis vorweg: Die Tutorialreihe soll den Einstieg in die Programmierung am Raspberry Pi möglichst erleichtern, ist jedoch nicht als eigenständiger Kurs zu verstehen. Ein Buch ist zur Vertiefung und zum Nachschlagen sehr von Vorteil. Im Speziellen kann ich eines dieser beiden Bücher bzw. Online Kurs zum Lernen empfehlen:

  • Komplettkurs: Programmieren mit Python 3
  • reine Python Grundlagen: Einstieg in Python (Thomas Theis)
  • Raspberry Pi programmieren mit Python (Michael Weigend)

Als Nachschlagewerk für Leute mit erster Erfahrung eignet sich auch dieses Buch von Johannes Ernesti.

Hardware

Für den Anfang benötigen wir folgendes Zubehör:

  • Raspberry Pi (Model egal – ich empfehle keinen Zero)
  • micro SD Karte (min. 8 GB)
  • Tastatur
  • Maus
  • HDMI Kabel
  • USB Steckernetzteil + Micro USB Kabel
  • ggf. WLAN Adapter

Eine genaue Auflistung allen Einstiegszubehör findest du im übrigen in diesem Artikel: Raspberry Pi Einstieg – Was brauche und wie starte ich?

 

Vorbereitung

Bevor wir mit dem Programmieren loslegen, müssen wir einige Schritte vollziehen, um eine Umgebung einzurichten. Zunächst ist es nötig, dass der Raspberry Pi ein Betriebssystem bekommt. Dafür stellt die Raspberry Pi Foundation das sog. Raspbian OS zur Verfügung, welches wir herunterladen. Anschließend übertragen wir die enthaltene Datei auf die micro SD Karte. Eine genaue Anleitung dazu findest du hier:

Raspberry Pi Raspbian OS auf eine SD-Karte übertragen (Windows)

Nachdem das Abbild auf der SD Karte ist, stecken wir diese in den Raspberry Pi. Sobald Tastatur, Maus und ein Display per HDMI Kabel angeschlossen sind, können wir ihn starten. Dies geschieht einfach, indem wir das micro USB Kabel anschließen und mit Strom verbinden. Das Display sollte nun aufleuchten und ein paar Zeilen Code auf schwarzem Hintergrund erscheinen.

Kurz darauf ist der Startvorgang abgeschlossen und wir sehen den Desktop:

Wir öffnen nun die Python Konsole, in der wir gleich Programm-Code eingeben können. Diesen öffnen indem wir erst das Raspberry Pi Symbol oben links klicken und dann unter Programming auf Python 2 (IDLE):

Es öffnet sich nun die Python Konsole, die folgendermaßen aussieht. In dieser werden wir gleich unseren Code schreiben:

Falls du dich fragst, warum wir Python 2 genommen haben und ob du auch Python 3 nehmen kannst: Die Antwort ist, dass beides möglich ist. Zwar sind zwischen den Versionen ein paar Unterschiede, allerdings sind diese für den Einstieg egal. Den Code, den wir schreiben ist auf beiden Versionen lauffähig.
Falls dich die Unterschiede im Detail interessieren, kannst du diesen Artikel (Englisch) durchlesen.

 

Hello World Plus

Genug der Worte, wir starten! In der Konsole möchten wir mit einer typischen „Hello World“ Anwendung starten. Dabei ist nichts weiter nötig als folgende Zeile einzutippen und mit Enter abzusenden:

print("Hello World")

Damit bekommen wir unsere erste Ausgabe angezeigt:

Dabei ist print die Funktion, welche wir aufrufen. Innerhalb der Klammern geben wir Parameter an, welche die Funktion braucht. Da es sich um eine Zeichenkette handelt, müssen wir die Anführungszeichen am Anfang und Ende angeben, da sonstige Wörter als Variablen aufgefasst werden, wozu wir gleich kommen.

Nun ist es recht langweilig einfach nur einen Satz auszugeben. Daher erstellen wir nun eine sog. Variable. Dies ist quasi ein Platzhalter, der verschiedene Werte annehmen kann und über ihren Namen angesprochen werden kann. Beispiel gefällig? Hier:

zahl = 7
print(zahl)

Der Vorteil von Variablen ist, dass wir deren Wert auch einfach überschreiben können. Im nächsten Beispiel erstellen wir zwei Variablen und addieren die erste zur zweiten (und speichern das Ergebnis in der zweiten Variable – wir überschreiben diese also):

zahl_1 = 7
zahl_2 = 3.5
zahl_2 = zahl_1 + zahl_2
print(zahl_2)

Aber Achtung: Neben (Ganz-)Zahlen können Variablen ja auch z.B. Zeichenketten („Strings“) enthalten. Hier ist eine Addition nicht möglich und würde zu einem Fehler führen.

Übrigens: Die Variable kann nach Belieben benannt werden, darf aber nicht mit einer Zahl beginnen. Auch dürfen keine Sonderzeichen (abgesehen vom Unterstrich) verwendet werden. Es gibt auch keine zwei Variablen die gleich heißen.

 

Kommentare

Eine weitere nützliche Funktion sind Kommentare, die den Code erklären, falls jemand anderes oder man selbst sich den Code später noch einmal ansieht. Solche Kommentare sind in jeder Programmiersprache verfügbar und können auch dazu genutzt werden, wenn man Teile des Codes „stumm schalten“ möchte, sodass diese nicht ausgeführt werden. Den Vorgang nennt man auskommentieren.

In Python beginnen Kommentare mit einer Raute / Hashtag (#). Der Rest der Zeile wird daraufhin nicht mehr ausgeführt. Hier ein Beispiel:

# Dies ist ein Kommentar
print("Zeile1") # noch ein Kommentar
#print("Zeile2")
print("Zeile 3")

Wie du siehst, wird nur Zeile 1 und Zeile 3 ausgegeben, da wir den mittleren Befehl auskommentiert haben.

 

Erste Abfragen

Wie bereits gesagt können Variablen ja unterschiedliche Werte annehmen. Damit wir diese auch wiederum abfragen können gibt es auch hierfür eine Möglichkeit. Mit if .. else können wir dies realisieren. Hier ein Beispiel:

zahl = 7
# angenommen hier wird eine unbekannte Zahl addiert
if zahl == 10:
    print("Zahl = 10")
elif zahl < 10:
    print("Kleiner als 10")
else:
    print("Größer als 10")

Hier gibt es nun einiges zu beachten:

  1. Am Ende der if, elif bzw. else Zeile muss ein Doppelpunkt stehen, da wir somit sagen, dass die Bedingung zu Ende ist. Wir können nämlich ebenso mehrere Bedingungen verknüpfen.
  2. Bei Abfragen sind u.a. folgende Möglichkeiten gegeben == (Gleichheit), < (Kleiner), > (Größer), <= (Kleiner/gleich), >= (Größer/gleich). Beim Prüfen auf Gleichheit darf nicht das einfache Gleichheitszeichen verwendet werden, da damit nur Variablen zugewiesen werden.
  3. Die Befehle, die ausgeführt werden, falls die Bedingung wahr ist, muss mit Leerzeichen eingerückt werden. Dabei muss alles auf der gleichen Ebene sein, bzw. gleich weit eingerückt sein. Als Standard werden 4 Leerzeichen zum Einrücken genommen.

Ich zeige nun noch ein erweitertes Beispiel, damit die Syntax etwas besser verständlich ist (fiktive Person mit Geburtsdatum am 30.07.1980):

geb_tag = 30
geb_monat = 7
geb_jahr = 1980
ausgabe = "" # leerer String

if geb_jahr < (2017 - 18):
    # Nutzer ist alt genug
    ausgabe = "Alter > 18"
else:
    if (geb_monat >= 6) and (geb_monat <= 9):
        ausgabe = "Kind hat im Sommer Geburtstag"
    else:
        # hier kann z.B. noch ein weiterer Befehl stehen
        ausgabe = "kein Sommerkind"
print(ausgabe)

Wie du siehst, ist es sehr einfach möglich auch Abfragen zu verschachteln. Wichtig ist nur, dass man immer die Einrückungen im Auge behält, da man sonst einen Fehler bekommt (oder das Programm falsch ausgeführt wird).

 

Schleifen

Nun gehen wir einen Schritt weiter und schauen uns sog. Schleifen an. Diese repräsentieren im Grund einfache Wiederholungen, wobei nach jeder Wiederholung (auch Iteration genannt) geprüft wird, ob die angegebene Bedingung (noch) wahr ist.

Die beiden Schleifen Arten nennen sich ForLoop und WhileLoop. Die While-Schleife prüft anfangs ob die Abfrage wahr ist. Hier ein Beispiel:

x = 0
while x < 5:
    print(x)
    x += 1

In jeder Wiederholung wird anfangs geprüft, ob x kleiner als 5 ist und wenn ja der eingerückte Teil ausgeführt. Wir geben darin einmal die Zahl aus und addieren danach 1 zu x. Somit werden die Zahlen 0 bis 4 ausgegeben.

 

Im Gegensatz dazu ist der Aufbau der For-Schleife ein wenig anders. In Python ist dessen Definition for .. in .. : wobei man als ersten Parameter eine Variable setzt (die innerhalb der Schleife verfügbar ist) und als zweiten Parameter z.B. eine Liste. Um die Zahlen von 0 bis 4 auszugeben, haben wir folgende Möglichkeiten:

# Erste Alternative
for zahl in range(5): # range(x) gibt die Zahlen von 0 bis x-1 aus
     print(zahl)


# Zweite Alternative
for zahl in [0,1,2,3,4]:
    print(zahl)

Wie du siehst eignet sich eine For-Schleife zum einfachen Zählen besser.

 

Auslagerung des Codes in Dateien

Als letzten Schritt dieses Tutorials will ich noch zeigen, wie man den Code in eine Datei schreibt und diese ausführt. Da man meistens ganze Code-Blöcke schreibt, möchte man diese auch sequentiell ausführen lassen. Der sogenannte Compiler, welcher den lesbaren (für Menschen verständlichen) Code in Maschinencode übersetzt, kann einzelne Befehle oder ganze Dateien ausführen.

Klicke auf das Ordnersymbol in der Navigationsleiste und mache einen Rechtsklick auf die freie Fläche. Unter „Create New“ > „Empty File“ kannst du eine neue Datei anlegen:

Benenne sie z.B. „programm1.py“ (ohne Anführungszeichen). Vergiss nicht die „.py“ Endung, damit klar ist, dass es ein Python Skript ist.

Die erstellte Datei kannst du mit Doppelklick öffnen. Hier kannst du deinen Code schreiben und über das Menü abspeichern. Ich habe den Code von oben eingefügt:

 

Nachdem gespeichert wurde, können wir die Datei auch bereits starten. Dies passiert über das Terminal / Konsole. Klicke dazu in der Taskleiste auf das Symbol rechts vom Ordner. Es öffnet sich ein schwarzes Fenster, in dem du etwas eingeben kannst.

Hier schreibst du folgendes hinein (mit Enter absenden):

python2 programm1.py

Das Programm wird nun von Anfang bis Ende durchlaufen. Dabei werden eben alle Abfragen ausgeführt, bis das Programm am Ende angelangt ist, wo es keine weiteren Befehle gibt. Danach terminiert es.

 

Dies war es mit dem ersten Teil meiner kleinen Übersicht zum Einstieg in die Programmierung mit dem Raspberry Pi. Im nächsten Teil widmen wir uns dem Lesen und Beschreiben der GPIO Pins, womit wir elektronische Bauteile wie LEDs steuern und Taster auslesen können.

 

PS: Im Beitragsbild ist kein Pythoncode zu sehen, da es nur ein Symbolbild sein soll 🙂

PPS: Kommentare / Anregungen (speziell von Beginnern) sind erwünscht, sodass ich die weiteren Teile ggf. darauf anpasse.

Einsteiger Programmierung python raspberry pi einstieg
Teilen Facebook Twitter Pinterest LinkedIn Tumblr Email
Vorheriger BeitragHow to use a Raspberry Pi Fingerprint Sensor for Authentication
Nächster Beitrag Raspberry Pi GPIO Erklärung für Beginner + Programmierung (Teil 2)

Ähnliche Beiträge

Mit der Raspberry Pi REST API via Python alle GPIOs steuern

Raspberry Pi: Java 11 mit Spring Boot installieren und GPIOs steuern

So installierst du Google Chromium auf dem Raspberry Pi

TensorFlow Lite mit Google Coral TPU am Raspberry Pi 4 nutzen

75 Kommentare

  1. don am 26. März 2017 9:13

    Genau so stelle ich mir ein Anfänger Tutorial vor.
    Danke 🙂

    Antworten
    • Peter am 23. Dezember 2018 0:42

      NameError: name ‚hello‘ is not defined
      >>> print („hello“)
      hello
      >>> print(„Zeile1“)
      Zeile1
      >>> geb_tag = 30
      geb_monat = 7
      geb_jahr = 1980
      ausgabe = „“ # leerer String

      if geb_jahr 18″
      else:
      if (geb_monat >= 6) and (geb_monat >> x = 0
      while x >> for zahl in range(5): # range(x) gibt die Zahlen von 0 bis x-1 aus
      print(zahl)

      # Zweite Alternative
      for zahl in [0,1,2,3,4]:
      print(zahl)

      SyntaxError: invalid syntax
      >>>

      NameError: name ‚hello‘ is not defined
      >>> print („hello“)
      hello
      >>> print(„Zeile1“)
      Zeile1
      >>> geb_tag = 30
      geb_monat = 7
      geb_jahr = 1980
      ausgabe = „“ # leerer String

      if geb_jahr 18″
      else:
      if (geb_monat >= 6) and (geb_monat >> x = 0
      while x >> for zahl in range(5): # range(x) gibt die Zahlen von 0 bis x-1 aus
      print(zahl)

      # Zweite Alternative
      for zahl in [0,1,2,3,4]:
      print(zahl)

      SyntaxError: invalid syntax
      >>>
      Kein einziges Listing funktioniert

      Antworten
      • Peter am 23. Dezember 2018 0:52

        Tatsächlich ich habe noch einmal in die Tutorials geschaut. Es funktioniert ein einziges Script ohne Fehler. Weder in Wolfram noch in Scretch

      • Peter am 23. Dezember 2018 0:55

        Was mir auffällt ist das ich die GPIO nicht einmal öffnen kann ich habe somit nichts…bei beiden Systemen funktioniert überhaupt nichts.
        Ein Systemfehler oder liegt es an mir vor dem Bildschirm?

      • Peter am 23. Dezember 2018 1:33

        Es reicht schon…..
        int ledPin = 17;

        Nichts kommt heraus Syntax Error

        Woran kann das liegen?

      • Tzwenni am 13. Juli 2020 7:11

        Die Hochkommata müssen beide HOCH sein. Also nicht
        >> „Hallo“
        sondern

        >> "Hallo"
      • Tzwenni am 13. Juli 2020 7:13

        Ups. Das liegt am KommentarScript….. Hochkommata werden am Anfang RUNTER gesetzt. Na super. Mein Kommentar also sinnfrei.

      • I_bims_1_Mensch am 31. Juli 2020 0:09

        Wenn ich das richtig sehe hast du denn ganzen Code einfach kopiert und eingefügt das geht leider nicht du musst jede Zeile einzeln eingeben dann sollte es funktionieren

    • Peter am 23. Dezember 2018 1:23

      Keine Funktion?
      Hmmm
      Es fängt schon mit
      int ledPin = 17;an
      Das kennt er nicht….selbst / akzeptiert er nicht Bolean
      import processing.io.*;

      int ledPin = 17;
      boolean ledState = false;
      void setup() {
      size(100, 100);
      GPIO.pinMode(ledPin, GPIO.OUTPUT);
      background(102);
      }

      void draw() {
      if (ledState) {
      GPIO.digitalWrite(ledPin, GPIO.HIGH);
      background(255,0,0);
      } else {
      GPIO.digitalWrite(ledPin, GPIO.LOW);
      background(102);
      }
      }

      void mouseClicked() { //if the mouse Clicked
      ledState = !ledState; //Change the led State
      }
      gibt sofort Fehler aus…. In C++ geht das ganz anders.

      Leute irgendwas mache ich grundsätzlich falsch

      Antworten
      • Thorsten.B am 29. Dezember 2018 20:24

        Hallo Peter, es geht hier um Python, nicht um C/C++. Schreibst du deinen Code in der Python-Shell? Funktionen und Variablendeklaration wie in C/C++ sind anders in Python.
        Grüße,
        Thorsten

      • Matthias am 16. März 2019 11:39

        ich denke auch, du hast den gleichen Fehler wie ich gemacht und direkt in der Shell geschrieben. Hatte die gleichen Probleme. Du musst erst einen File öffnen oder einen neuen File anlegen. Es öffnet sich ein neues Fenster und dort wird der Code eingegeben. Dann sind auch die „>>>“ nicht mehr zu sehen und der Code sieht aus wie in den Beispielen. Mit RUN wird er dann in der Shell ausgeführt. Hat mich auch erst verzweifeln lassen.

  2. oma am 26. März 2017 9:15

    hey deine Tutorials sind richtig toll!
    mein ws2812b „funzt“

    meine Bitte:
    Gehe auf Python3.
    Python2 ist Vergangenheit und Gegenwart und python3 ist Gegenwart und Zukunft.
    Der Stil ist auch sauberer.
    Gegen Python 3 spricht, dass noch viele Module der Community nicht auf Python3 laufen…. ein Problem, das seit einiger Zeit täglich kleiner wird und inzwischen nicht mehr gravierend ist.

    Antworten
    • Felix am 26. März 2017 12:11

      Das Problem mit der Kompatibilität vieler Bibliotheken ist der Hauptgrund warum ich Python2 hauptsächlich verwende. Ich versuche mich aber daran zu halten und in Zukunft mehr Python3 zu nutzen.

      Antworten
    • Peter am 23. Dezember 2018 0:57

      kannst Du mir helfen?

      Antworten
  3. Armin am 26. März 2017 9:16

    Hallo, Felix.
    Danke für das Beispiel. Ich glaube, es ist ein Fehler in Deine zweitn Code-Beispiel:
    zahl_1 = 7
    zahl_2 = 3.5
    zahl_2 = zahl_1 + zahl_2
    Muss es nicht heißen:
    zahl_3 =zahl_1+zahl_2 ?

    Antworten
    • Felix am 26. März 2017 12:09

      Nein, das habe ich extra so gewählt, um zu zeigen, dass man Variablen auch überschreiben kann.

      Antworten
    • Armin am 27. März 2017 13:56

      Ähh, stimmt: steht ja auch da… *kopf-klatsch*

      Antworten
  4. Tomy am 26. März 2017 16:34

    Vielen Dank Felix für das Tutorial. Einfach weiter so.

    Antworten
  5. Carlo am 26. März 2017 17:16

    Vielen Dank für das geniale Tutorial Felix 🙂

    Weiter so 🙂

    Antworten
  6. björn am 26. März 2017 19:53

    diese reihe finde ich super
    kannst du ruhig fortf ahren denn hat man als anfänger aber auch echt alles beisammen
    schön wäre es denn wenn deine pythoreihe auch später richtung deine projekte geht
    und eventuell so python hausaufgaben was mit deinen projkten in verbinudung stehn

    Antworten
    • Felix am 27. März 2017 0:01

      Super Idee 🙂 Ich denke ich werde wirklich kleinere Aufgaben mit einbauen.
      Anregungen zu weiteren Teilen könnt ihr gerne äußern, ich versuche dann darauf einzugehen.

      Antworten
  7. Martin am 26. März 2017 20:00

    Als Raspi Anfänger finde ich dies echt toll.
    Mein erster aufgebauter Server mit fertigen Tools funktioniert super und jetzt freue ich mich, dass mich jemand einfach und verständlich in die Welt des vorerst einfachen Programmierens einführt.
    Danke für die Mühe. Freue mich auf die nächsten Schritte

    Antworten
    • Felix am 27. März 2017 0:02

      Falls dich etwas bestimmtes interessiert: Ich bin offen für weitere Vorschläge.

      Antworten
      • Ismael Biber am 20. März 2019 18:53

        Gibt es einen DMX Controller für rasberry Pi?
        Ich würde gerne einen rasberry als DMX Controller benutzen.

  8. Martin am 26. März 2017 23:38

    Schön, dass ich hier mal ein Tutorial finde, wie ich als Anfänger in Python hineinkomme. Besonders gut finde ich, dass Du auch mal zeigst, wie Du an ein neues Programm herangehst – erst das Programm benennen und den Speicherort festlegen – bevor auch nur eine Programmzeile erstellt wird – , finde ich gut. Bisher habe ich meine „Versuche“ umgekehrt zuerst editiert und dann unter einem neuen Namen abgespeichert. Dabei ist mir manches verloren gegangen.
    Allerdings denke ich auch, dass Python2 – nach allem, was ich bisher gelesen habe, – auch aus den Anwendungen und Beispielen, die ich gefunden habe, überholt ist.
    Gibt es eigentlich eine Python-Entsprechung für das mir aus uraltem Basic bekannten „goto/gosub……..return“? Wenn ja, dann bitte in das Tutorial aufnehmen.
    Falls Du es nicht sowieso in der Hardware-Programmierung mit aufzunehmen planst, wäre es schön, wenn Du auch mal auf deutsch eine verständliche Anleitung zu Grundlagen von Hardware-Interrupts mit aufnehmen würdest.
    Gruß
    Martin

    Antworten
    • Felix am 27. März 2017 0:00

      In den Anfängertutorials werden die wesentlichen Unterschiede zw. Python 2 und 3 nicht behandelt (bzw. ist nicht geplant). Der print Befehlt ist extra Python3 kompatibel geschrieben worden.
      Im nächsten Teil geht es dann um die Allgemeine Steuerung der GPIOs.
      PS: Goto würde ich (bis auf wenige Ausnahmen) generell nicht empfehlen zu verwenden. Return gibt es natürlich – dazu auch in späteren Teilen mehr.
      Bisher sind nur die ersten 3 Teile geplant, von daher versuche ich Wünsche möglichst einzubauen.

      Antworten
    • apored am 28. März 2017 13:34

      Sehr coole anleitung freue mich schon sehr auf einen neuen teil

      Antworten
  9. Martin am 28. März 2017 11:58

    Hallo,
    ich habe als Anfänger ein kleines Problem:
    Wenn ich auf einen meiner Pythonversuche klicke öffnet sich Python 2.7.9.
    Da ich den PI B+ zusammen mit einem PifaceDigital2 betreiben will, alle Beispiele und Informationen darüber alle in Python3 sind, wäre es schön, wenn beim Klicken auf ein Python-Programm (.py) nicht die Python2 Umgebung, sondern die Python3 Umgebung sich öffnen würde.
    Wo kann ich diese Voreinstellungen auf dem Raspi ändern? (bitte auch ein Anfänger-Tutorial)
    Danke schonmal im Voraus
    Martin

    Antworten
    • Felix am 28. März 2017 18:32

      Falls du die Dateien per Terminal ausführst kannst du Systemlinks setzen: alias python='python3'

      Antworten
  10. Kameh am 29. März 2017 18:03

    Schönes Tutorial Schritt für Schritt. War mein erster Kontakt mit Python, der Anfang ist jetzt also gemacht :-). Freue mich schon auf die GPIO-Geschichten! Viele Grüße
    Kameh

    Antworten
  11. Alex am 6. April 2017 21:49

    Danke für die Einführung. Die sind in gute Häppchen verpackt.

    Antworten
  12. Hans am 22. April 2017 7:00

    Hallo,

    In -Teil 3: GUI erstellen-, steht am Ende
    „“Übrigens: Da Python und Tkinter ebenso auf Windows und MacOS laufen, kann damit natürlich auch eine Programmoberfläche für PCs und Macs erstellt werden.““

    Die Datei gui.py habe ich auf meinem Macbook erstellt und bekomme folgenden Fehler, nur, ich sehe keinen, kann mir bitte jemand helfen, wo ich ansetzen soll?

    Danke

    Hanss-MacBook-Pro:~ hansmmb$ cd /Users/hansmmb/Desktop

    Hanss-MacBook-Pro:Desktop hansmmb$ wget http://placehold.it/200×200
    –2017-04-22 06:46:51– http://placehold.it/200×200
    Resolving placehold.it… 45.56.123.206, 2600:3c00::f03c:91ff:fe1f:70fc
    Connecting to placehold.it|45.56.123.206|:80… connected.
    HTTP request sent, awaiting response… 301 Moved Permanently
    Location: https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97200&w=200&h=200 [following]
    https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97200&w=200&h=200: HTTPS support not compiled in.

    Hanss-MacBook-Pro:Desktop hansmmb$ sudo python3 gui.py
    Traceback (most recent call last):
    File „gui.py“, line 17, in
    imageEx = PhotoImage(file = ‚200×200‘)
    File „/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py“, line 3539, in __init__
    Image.__init__(self, ‚photo‘, name, cnf, master, **kw)
    File „/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py“, line 3495, in __init__
    self.tk.call((‚image‘, ‚create‘, imgtype, name,) + options)
    _tkinter.TclError: couldn’t open „200×200“: no such file or directory
    Hanss-MacBook-Pro:Desktop hansmmb$

    Antworten
    • Felix am 22. April 2017 12:01

      Du kannst das Bild auch einfach per Browser laden und in das Verzeichnis kopieren oder ein anderes beliebiges Bild nehmen.

      Antworten
  13. Sebastian am 23. April 2017 20:24

    Vielen Dank für diesen ersten Schritt hier…
    Ich habe mich gleich an meine Schulzeit erinnert, wo wir damals mit TurboPascal etwas programmierten…. ;-).

    Und ich habe eben auch bemerkt, dass dein „Geburtstagstutorial“ nicht mit Python 3 funktioniert bis ich auf Version 2 gewechselt habe – siehe da….

    Somit viele Grüße!

    Antworten
  14. Sebastian am 24. April 2017 12:06

    Grüß dich Felix,

    Frage zu deinem „Geburtstags“-Code:
    So wie Du ihn dort geschrieben hast, erfolgt bei mir nur die Ausgabe ob älter oder jünger als 18. Dass es ein Sommerkind ja ist, da Monat=7, wird nicht mehr mit ausgegeben.
    Wäre es denn nicht so erfolgreicher?:
    >>

    # Variablen Definition
    geb_tag = 30
    geb_monat = 2
    geb_jahr = 1980
    ausgabe1 = "" # leerer String
    ausgabe2 = ""
    
    # Abfrage erfolgt
    if geb_jahr  18"
    
        if (geb_monat >= 6) and (geb_monat <= 9):
            ausgabe2 = "Kind hat im Sommer Geburtstag"
        else:
            # hier kann z.B. noch ein weiterer Befehl stehen
            ausgabe2 = "kein Sommerkind"
    # Ausgabe
    print(ausgabe1)
    print(ausgabe2)

    <<
    Oder wolltest Du die Info ob oder ob kein Sommerkind nicht ausgeben, wenn es älter als 18 ist? Denn drehe ich das Kleiner in ein Größer als, erfolgt zumindest die Ausgabe, dass die Person ein Sommerkind ist.

    Viele Grüße
    Sebastian.-

    Antworten
    • Felix am 24. April 2017 12:10

      Hallo Sebastian,
      bei deinem ersten If stimmt etwas nicht. Das ganze sollte eher die Verschachtelung von Operationen zeigen. Bestimmt kann man das Beispiel um einiges erweitern und verbessern 🙂

      Antworten
      • Sebastian am 24. April 2017 12:37

        In der Tat! Sorry, da hat wohl beim copy-paste etwas nicht ganz geklappt…. :
        # Variablen Definition

        geb_tag = 30
        geb_monat = 7
        geb_jahr = 1980
        ausgabe1 = "" # leerer String
        ausgabe2 = ""
        
        # Abfrage erfolgt
        if geb_jahr  18"
            
            if (geb_monat >= 6) and (geb_monat <= 9):
                    ausgabe2 = "Person hat im Sommer Geburtstag"
            else:
                    # hier kann z.B. noch ein weiterer Befehl stehen
                    ausgabe2 = "kein Sommerkind"
        
        # Ausgabe
        print(ausgabe1)
        print(ausgabe2)
  15. Whykiki am 29. April 2017 16:35

    Hallo Felix,

    eine richtig tolle Seite. Ixh bin begeistert. Die Tutorials sind selbst für den absoluten Einsteiger gemacht und vor allem: Du denkst oft auch an die Schritte, die viele andere Tutorials (nicht nur im Rasperry Bereich) nicht zeigen, weil sie es einfach voraussetzen.

    Ich bin Fan und hab auch daher alle meine Sachen über deine Links bestellt 🙂
    Heut is der grösste Teil gekommen und ich werd mal ein bisschen testen. Ersma paar Dioden blinken lassen 🙂
    Aber mein Ziel ist ein Gerät mit Touchpad von dem meine Band auf Livekonzerten Synthesizer und Click Playback ans Mischpult schicken kann.
    Ich hab schon gesehen, dass da n Kickstarter-Projekt ist mit einer Mehrkanal-Soundkarte (mit XLR-Outs), die bald erscheint. Mal sehen ob ich bis dahin fit genug bin, das Ganze umzusetzen.

    Aber diese Seite hier wird mir sicherlich extrem helfen.

    Danke!!!

    Antworten
  16. Ändu am 17. August 2017 8:35

    Hallo Felix
    herzliche Gratulation, das Tutorial ist super. Nur noch eine kleine Frage zum folgenden Code:

    x = 0
    while x < 5:
        print(x)
        x += 1

    x+=1 ist die Kurzform von x=x+1

    Antworten
    • Felix am 13. September 2017 19:19

      Ja, richtig.

      Antworten
  17. Günter Blumenkamp am 26. August 2017 11:58

    Hallo Felix, also das ist das Programm:

    GPIO.setup(23, GPIO.OUT)
    GPIO.setup(24, GPIO.IN)
    
    for i in range(5):
        GPIO.output(23, GPIO.HIGH)
        time.sleep(0.5)
        GPIO.output(23, GPIO.LOW)
        time.sleep(0.5)

    Anwort des Interpreters:

    Traceback (most recent call last) :
    File „/home/pi/Lubing/Versuch_1.py“, line 6 in
    GPIO.setup(26, GPIO.OUT)
    RuntimeError: No access to /dev/mem Try running as root

    ===============================================================
    Meine Frage : was soll der scheiss ?? Gerade als Anfänger darf sowas nicht pasieren,
    und wenn doch sollte darauf hingewiesen werden !! Und was mache ich jetzt )
    Gruss Günter

    Antworten
    • Felix am 13. September 2017 20:02

      Du musst das Skript als Admin starten, wenn du GPIOs verwendest: sudo python skript.py

      Antworten
  18. Waldemar am 23. November 2017 9:43

    Hallo,
    super Tutorial!
    Hätte eine Frage. Wieso wird hier nicht das Raspberry pi Zero empfehlen? Gibt es hierfür ein Grund?
    Finde die beschriebenen Möglichkeiten und die Größe natürlich sehr scharmant vom pi zerlo.

    Danke.
    Schöne Grüße
    Waldemar

    Antworten
    • Felix am 23. November 2017 10:51

      Der Pi Zero ist für Anfänger, die noch einen Pi hatten nicht ideal, da er nur einen (micro) USB Port hat und ebenfalls nur micro HDMI. Inzwischen gibt es das W-Modell mit Wlan aber die anderen haben ja auch keinen Netzwerkanschluss, was meist zu mehr Fragen führt. Die Option gibt es, aber ich halte einen normalen Raspberry Pi für die bessere Einstiegsoption.

      Antworten
      • Waldemar am 23. November 2017 11:30

        Danke für die Antwort Felix.

        Das heißt es geht rein um die Anschlüsse die vorhanden sind? Von der Programmierung ist alles identisch?

      • Felix am 23. November 2017 12:54

        Ja 🙂

  19. Heinrich Burmeister am 25. November 2017 22:43

    Hallo Felix,
    wenn ich die Python 3 IDLE anklicke bekomme ich diese Meldung:

    IDLE’s subprocess didn’t make connection. Either IDLE con’t start a
    subprocess or personal firewall software is blocking the connection

    Was muss ich machen?
    Python 2 funst.
    Danke

    Gruß Heinrich

    Antworten
  20. chris am 4. Dezember 2017 11:24

    Hallo erst mal danke für das detaillierte besxhreiben der vorgänge habe lange rum gemacht und nichts funktionierte…
    Das ich bestimmte Schritte der tuturrials im terminal machen muss hat nie jemand erwähnt …
    Jetzt hab ich eine frage wo sollte ich meine dateien speichern oder findet das terminal meine datei immer oft hatte ich das problem das zb fertige .py’s aus einem tut. Geladen habe miir aber immer wieder gesagt wurde …fehelermeldung wort x keine variable oder datei oder order nicht gefunden die pfade die dazu angegeben sind führen mich aber zu einer Python datei die kein verzeichnis ist laut pfad dafür aber noch ein unterverzeichnis exestieren muss… so das ich die datei auch nicht nachträglich dort einfügen kann… fehlen mir da module oder sonstiges als bausteine …damit das skript ausgefürt werden kann..
    Ich habe echt keine ahnung vom programmieren und die anderen anleitungen und hilfestellungen im netz setzten anscheinend wesentlich mehr Grundkenntnisse vorraus sonst wären es nicht alles sackgassen für mich danke schon mal

    Antworten
    • Felix am 4. Dezember 2017 13:13

      Kannst du die genauen Fehler usw. mal kopieren? Natürlich musst du eine Datei speichern, bevor du etwas ausführst. Stelle auch sicher, dass du die richtige Datei ausführst bzw. im richtigen Verzeichnis bist. Das ganze Spektrum in wenigen Posts zu erklären ist natürlich schwierig, da ist ein Buch eine sehr gute Hilfestellung.

      Antworten
  21. vexo am 7. Februar 2018 11:12

    Hallo Welt, Felix,

    Das hier ist eine klasse Seite und ich werde versuchen, die anfängerbereiche komplett durch zu arbeiten.
    Ich habe Raspbian aufm pi3, und kann von meinem Desktop PC über Putty auf mein pi zugreifen und auch schon das PW ändern. Ich habe keinen zusätzlichen HDMI-Monitor. Darauf versuchte ich print(„Hallo Welt“) zahl=7 usw. zu deklarieren und auszuwerfen. Dies verneinte mir jedoch die console mit den Arbeitsbereitswilligen Worten:

     pi@raspberrypi:~ $ print("Hallo Welt")
    -bash: syntax error near unexpected token `"Hallo Welt"'
    pi@raspberrypi:~ $ ^C
    pi@raspberrypi:~ $ zahl = 7
    -bash: zahl: command not found
    pi@raspberrypi:~ $ print(zahl)
    -bash: syntax error near unexpected token `zahl'

    Wo liegt jetzt mein Fehler?

    Antworten
    • Felix am 7. Februar 2018 18:45

      Du musst Python Code natürlich in der Python Konsole ausführen:
      sudo python

      Antworten
  22. tom am 17. Februar 2018 10:45

    Dankeschön für die mühe
    ich als anfänger habe mich hier sofort zurechtgefunden und WOHLGEFÜHLT

    nochmals dankeschön

    Antworten
  23. Jürgen am 22. März 2018 15:23

    Herzlichen Dank für diese hervorragende Anleitung….
    Kleine Bitte:
    Nach dem ersten Start des Pi nicht gleich zu Phyton2 gehen, sondern erst mal den Pi konfigurieren:
    Also Tastatur auf deutsch stellen und auch gleich Land und Zeitzone einstellen, sonst quält man sich, um Klammern, und andere Sonderzeichen einzugeben.

    Ich gebe ja zu, dass damit das Tutorial nun wieder eine Seite länger wird, aber das vermeidet ersten Stress.
    Vielen Dank

    Antworten
  24. Musaab am 1. Juli 2018 17:02

    Hallo Felix
    Könnten Sie mir bitte die Beschreibung von der Erhöhung der amplitude und Verschiebung der Frequenz im rasperry pi 3 schreiben ?
    Ich danke Ihnen für Ihre Bemühungen
    Mit freundlichen Grüßen
    Musaab

    Antworten
  25. RenDhark am 17. September 2018 21:40

    Hallo,
    bekomme bei der Zahl Addition folgenden fehler.

    Traceback (most recent call last):
    File „“, line 1, in
    zahl_2 = zahl_1 + zahl_2
    TypeError: unsupported operand type(s) for +: ‚int‘ and ‚tuple‘

    Antworten
  26. RenDhark am 17. September 2018 22:45

    Sorry, mein fehler, hab ihn selbst gefunden
    Dezimalzahlen werden mit Punkt statt mit Komma angegeben !

    Antworten
  27. Stevy am 30. Oktober 2018 20:39

    Hy,
    ich überlege schon lange mir ein raspberry pi anzuschaffen. Von Programmierung habe ich aber null Ahnung. Mir fehlt ein sichtbares Ergebnis dieser Programmierung. Ich habe den Code verstanden, aber was bewirkt er? Tatsächlich bin ich jemand der Programme und Anwendungen nur als Oberfläche auf einem Desktop verwendet. Öffnet sich ein fertiges Programm in dem ich die Variablen eintippe, die das Programm dann nach meinen Vorgaben verarbeitet? Wie sieht die Oberfläche aus?
    Ich hoffe, die Fragen sind jetzt nicht ganz vom anderen Planeten. Ich bin noch ganz am Anfang.
    Grüße
    Stevy

    Antworten
    • Felix am 31. Oktober 2018 8:03

      Hi Stevy, schau dir mal die nächsten beiden Tutorial Teile an, da ist genau das was du suchst beschrieben 🙂

      Antworten
  28. Marc am 8. Dezember 2018 11:49

    Hi,
    ich habe eben meine ersten kleinen Gehversuche mit Python 3 gemacht, da 2 nichtmehr auf der neuesten ist. Jedoch musste ich feststellen, dass wenn ich einen Fehler mache und Enter drücke eine Fehlermeldung kommt aber ich nichts mehr korrigieren kann. Gibt es da eine Möglichkeit das zu umgehen, dass ich den Fehler dann korrigieren kann?
    Grüße
    Marc

    Antworten
  29. Python 2 bis 3 am 20. Dezember 2018 13:06

    Nein, da Python 3.5.3 ein Paar andere Eingabemethonden braucht, und du den Code „renovieren“ müsstes.
    Aber Python 2.7.2 ist auch nicht schlecht, nur anderes 😉 .

    Antworten
  30. Uwe am 29. Dezember 2018 16:13

    Hallo,
    wollte gerade mal die Nase in die Sache stecken und schon bekomme ich Fehlermeldungen um die Ohren. Weiter wie hier:
    zahl = 7
    # angenommen hier wird eine unbekannte Zahl addiert
    if zahl == 10:
    print(„Zahl = 10“)
    elif zahl < 10: Hier sagt er Syntaxfehler und dann kann man auch keine Änderungen vornehmen.
    print("Kleiner als 10")
    else:
    print("Größer als 10")
    bin ich nicht gekommen.
    Bin mit dem raspi 3 B+ das erste mal mit Linux unterwegs und programmieren war bisher ach nicht angesagt. Das frustriert wenn gleich zu Beginn des Tut alles in die Hose geht.
    Ja der Wille war vorhanden.

    Antworten
  31. Mikel am 8. Januar 2019 14:01

    Hallo, ich will meinem Neffen (14) das Programmieren beibringen und würde Python 3 bevorzugen. So weit ich gelesen habe ist 2 nicht mehr sehr aktuell und um Verwirrungen auszuschließen wäre es doch besser gleich von Anfang an auf Python 3 zu setzen. Ich denke, dass es für Einsteiger besser ist, sie auf Python 3 zu gewöhnen.

    Antworten
  32. h am 16. Januar 2019 11:16

    •reine Python Grundlagen: Einstieg in Python (Thomas Theis)
    ist falsch verlinkt… 😉

    Antworten
  33. manul-theleagueoflegendsgod-steiner am 8. Mai 2019 12:13

    Ich bin froh das ich diese nützlichen Kommentare ab jetzt zu meinem Geisteseigentum zählen darf. Ich warte gespannt auf weitere Bereicherungen in meinem Leben. Diese 20 Comments haben mir mehr weitergeholfen als 3 Jahre AHS-Informatikunterricht. MFG Steiner Manuel, 7141 Podersdorf am See

    Antworten
  34. Hannes am 7. August 2019 15:55

    Vielen Dank für den interessanten Artikel. Um in Sachen Programmierung zu lernen ist der Raspberry Pi wie geschaffen. Kann ich nur jedem empfehlen.
    Mit besten Grüßen,
    Hannes von http://www.raspberryundco.de

    Antworten
  35. Patrick Kalesse am 16. September 2019 0:46

    Also ich bin absoluter Neuling, in der Schulzeit hab ich mal ähnliche Sachen mit Basic programmiert, später hab ich mich mit dem erstellen von Webseiten beschäftigt wo man das meiste aber via JavaScripts nur einbinden musste und dank der vielen HP Baukästen mit wenig bis keinen programmier Kenntnisse aus kam. Das oben erinnert mich etwas an Exel Aufgaben, wobei ich den Aufgaben durch einfachen lesen nicht folgen kann. Liegt vielleicht daran das ich derzeit noch auf die Hardware warte die morgen geliefert werden sollte und ich dann das ganze selbst ausprobiere . Bis Hallo Welt bin ich noch mitgekommen aber alles andere verwirrt mich ein wenig .

    Antworten
  36. Frank L. am 11. Oktober 2019 16:28

    Vielen Dank für diesen schönen und informativen Beitrag – echt klasse. Schon immer war ich sehr Technik-begeistert und habe echt viel ausprobiert. Letztens kam mein Sohn Tim und wollte einen „kleinen“ Computer haben, weil er das in der Schule aufgeschnappt hatte. Nach langem fragen, kam raus, dass Tim einen Raspberry Pi meint. Da war ich etwas überfordert, weil ich noch nie ein Raspberry Pi verwendet habe. Daher habe ich gleich mal gegoogelt und habe folgenden Beitrag gefunden: https://kinderprogrammieren.de/equipment/raspberry-pi-fuer-kinder-so-klappts-mit-dem-mini-pc/ Mit diesem Artikel haben wir uns dann ans Werk gemacht und einen Raspberry Pi besorgt und angefangen zu „programmieren“. Das ist echt überwältigend, was man damit alles machen kann. Jetzt schauen wir, dass wir eine Kamera anschließen und das dann in unserem Vogelhaus installieren, da Tim gerne sehen will, wie Vogelbabys auf die Welt kommen. Ich bin gespannt.

    Antworten
  37. wolfisch am 4. November 2019 19:47

    Hallo Felix,
    genau wie Uwe bleibe ich bei print („Zahl = 10“) hängen und nichts geht mehr.
    Ebenso läuft das Programm geb = 30 ect. überhaupt nicht obwohl der Code in
    Geany eingegeben wurde und mit python in der Konsole gestartet wird. Es wir das Alter 18
    ausgegeben – nicht mehr.
    Ich komme nicht dahinter.

    Antworten
  38. Jupp Leipertz am 15. Februar 2020 7:06

    Hallo zusammen,
    ich habe da ein Projekt im Kopf bei dem ich eure Hilfe bräuchte. Bin zwar noch absoluter Anfänger was programmieren angeht aber das sollte mich nicht hindern das zu versuchen.
    Ich plane für meine Modellbahn eine höhenverfahrbare Vitrine, angetrieben von nem Schrittmotor mit Planetengetriebe.
    Angefahren werden sollen 9 Positionen, gesteuert über Sensortasten (auf-ab). Dazu je ein Endschalter für oberste bzw. unterste Stellung.
    Bei jeder angefahrenen Ebene sollte der Motor, gesteuert durch einen Positipssensor, anhalten.

    Vielleicht ist das für den Anfang bischen viel, freue mich aber über jede Hilfe und Tipps.

    Antworten
    • Felix am 17. Februar 2020 18:01

      Das „Problem“ dabei wird sein, nach einem Reset, die Position zu bestimmen. Du müsstest ggf. nach jeder Stufenbewegung den Stand in einer Datei abspeichern.

      Antworten
  39. Markus am 20. März 2020 9:24

    Ich würde nach einem Reset oder Neustart immer an Beginn oder Ende fahren, dort muss natürlich irgendeine Art von Endschalter sein. Macht der 3D Drucker genau so.

    Antworten
  40. Peter Lennartz am 22. Juli 2020 12:26

    Korrigiere vielleicht noch nur der Richtigkeit halber unter Deinem Kapitel „Kommentare“ im zweiten Absatz die Angabe „Raute/Hashtag“ zu „Raute/Hash“.

    Antworten
  41. Peter am 24. Oktober 2020 1:10

    Hallo,

    ich habe bei Python 3 vergeblich nach der Möglichkeit einer Tastatureingabe gesucht. Gibt es sowas überhaupt?

    Gruß

    Antworten
    • Felix am 24. Oktober 2020 20:30

      So etwas? https://www.python-kurs.eu/python3_eingabe.php

      Antworten
  42. Bonzadog am 13. Dezember 2020 14:33

    Man sollte die Finger weglassen von Python 2!

    Antworten

Hinterlasse einen Kommentar Antwort abbrechen

Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED Matrizen

Raspberry Pi: Java 11 mit Spring Boot installieren und GPIOs steuern

Raspberry Pi GPIOs mittels I2C Port Expander erweitern – Teil 1

Raspberry Pi: USB Boot per Stick oder SSD Festplatte einrichten

Mit dem Raspberry Pi und OpenHAB Funksteckdosen (433 MHz) schalten

Funkkommunikation zwischen Raspberry Pi’s mittels MQTT Broker/Client

Blog abonnieren

Abboniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Kontakt & Impressum
  • Unterstützen
  • Datenschutz

Tippe den Suchbegriff oben ein und drücke Enter, um danach zu suchen. Drücke Esc, um abzubrechen.