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:
- 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. - 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. - 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.
75 Kommentare
Genau so stelle ich mir ein Anfänger Tutorial vor.
Danke 🙂
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
Tatsächlich ich habe noch einmal in die Tutorials geschaut. Es funktioniert ein einziges Script ohne Fehler. Weder in Wolfram noch in Scretch
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?
Es reicht schon…..
int ledPin = 17;
Nichts kommt heraus Syntax Error
Woran kann das liegen?
Die Hochkommata müssen beide HOCH sein. Also nicht
>> „Hallo“
sondern
Ups. Das liegt am KommentarScript….. Hochkommata werden am Anfang RUNTER gesetzt. Na super. Mein Kommentar also sinnfrei.
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
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
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
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.
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.
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.
kannst Du mir helfen?
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 ?
Nein, das habe ich extra so gewählt, um zu zeigen, dass man Variablen auch überschreiben kann.
Ähh, stimmt: steht ja auch da… *kopf-klatsch*
Vielen Dank Felix für das Tutorial. Einfach weiter so.
Vielen Dank für das geniale Tutorial Felix 🙂
Weiter so 🙂
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
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.
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
Falls dich etwas bestimmtes interessiert: Ich bin offen für weitere Vorschläge.
Gibt es einen DMX Controller für rasberry Pi?
Ich würde gerne einen rasberry als DMX Controller benutzen.
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
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.
Sehr coole anleitung freue mich schon sehr auf einen neuen teil
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
Falls du die Dateien per Terminal ausführst kannst du Systemlinks setzen:
alias python='python3'
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
Danke für die Einführung. Die sind in gute Häppchen verpackt.
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$
Du kannst das Bild auch einfach per Browser laden und in das Verzeichnis kopieren oder ein anderes beliebiges Bild nehmen.
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!
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?:
>>
<<
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.-
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 🙂
In der Tat! Sorry, da hat wohl beim copy-paste etwas nicht ganz geklappt…. :
# Variablen Definition
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!!!
Hallo Felix
herzliche Gratulation, das Tutorial ist super. Nur noch eine kleine Frage zum folgenden Code:
x+=1 ist die Kurzform von x=x+1
Ja, richtig.
Hallo Felix, also das ist das Programm:
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
Du musst das Skript als Admin starten, wenn du GPIOs verwendest:
sudo python skript.py
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
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.
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?
Ja 🙂
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
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
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.
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:
Wo liegt jetzt mein Fehler?
Du musst Python Code natürlich in der Python Konsole ausführen:
sudo python
Dankeschön für die mühe
ich als anfänger habe mich hier sofort zurechtgefunden und WOHLGEFÜHLT
nochmals dankeschön
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
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
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‘
Sorry, mein fehler, hab ihn selbst gefunden
Dezimalzahlen werden mit Punkt statt mit Komma angegeben !
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
Hi Stevy, schau dir mal die nächsten beiden Tutorial Teile an, da ist genau das was du suchst beschrieben 🙂
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
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 😉 .
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.
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.
•reine Python Grundlagen: Einstieg in Python (Thomas Theis)
ist falsch verlinkt… 😉
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
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
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 .
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.
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.
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.
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.
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.
Korrigiere vielleicht noch nur der Richtigkeit halber unter Deinem Kapitel „Kommentare“ im zweiten Absatz die Angabe „Raute/Hashtag“ zu „Raute/Hash“.
Hallo,
ich habe bei Python 3 vergeblich nach der Möglichkeit einer Tastatureingabe gesucht. Gibt es sowas überhaupt?
Gruß
So etwas? https://www.python-kurs.eu/python3_eingabe.php
Man sollte die Finger weglassen von Python 2!