Raspberry Pi Pico Kurs – #2 – Ein paar Worte zur Programmierung

Lesezeit 8 min.

Im ersten Artikel über den Raspberry Pi Pico habe ich Ihnen gesagt, womit wir es hier zu tun haben, was wir brauchen, und die Hauptfigur näher vorgestellt. In diesem Material werden wir uns mit der Programmiersprache und insbesondere mit ihrer Auswahl befassen. Hier beschreibe ich drei verschiedene Möglichkeiten, einen Code für den Raspberry Pi Pico W vorzubereiten. Wir werden uns die Vor- und Nachteile der einzelnen Lösungen genauer ansehen und uns schließlich für diejenige entscheiden, die wir in Zukunft verwenden werden.

Kaufen Sie ein Set, um das Programmieren mit dem Raspberry Pi Pico W zu erlernen, und nutzen Sie die Vorteile des Kurses, der im Botland Blog verfügbar ist!

Im Set enthalten: Raspberry Pi Pico W-Modul, Kontaktplatte, Leitungen, LEDs, Widerstände, Tasten, Fotowiderstände, digitale Licht-, Temperatur-, Feuchtigkeits- und Drucksensoren, OLED-Display und ein USB-microUSB-Kabel.

Vor dem Start sollte das Team zusammengestellt werden

Ein Satz von Komponenten für den Raspberry Pi Pico Kurs.

Wer das Programmieren anhand von realen Projekten erlernen möchte, braucht natürlich die richtige Ausrüstung, aber keine Sorge – Sie müssen jetzt nicht von einem Artikel zum nächsten springen und eine Liste der benötigten elektronischen Komponenten erstellen. Im Botland-Shop ist ein fertiges Set erhältlich, das alle notwendigen Komponenten enthält, um die in der Tutorial-Reihe beschriebenen Projekte mit dem Raspberry Pi Pico durchzuführen.

In dem fertigen Set von Elementen finden Sie:

  • Raspberry Pi Pico W,
  • MicroUSB-Kabel,
  • Kontaktplatte,
  • Ein Set von Anschlusskabeln in drei Ausführungen,
  • Ein Set von LEDs in drei Farben,
  • Ein Set der in der Elektronik am häufigsten verwendeten Widerstände,
  • Tact Switch-Tasten,
  • Fotowiderstände,
  • Digitaler Lichtsensor,
  • Digitaler Feuchtigkeits-, Temperatur- und Drucksensor,
  • OLED-Display.

Was bedeutet Programmieren eigentlich?

Die Markteinführung des Computers Oder 1305, der Lochkarten verwenden konnte, bildete ein farbiges Bild. (https://elwrowcy.pl)

Doch bevor wir uns mit der Programmierung des Raspberry Pi Pico W befassen, möchte ich Ihnen etwas über die Programmierung selbst erzählen, doch dazu müssen wir uns in das Jahr 1941 zurückversetzen. Der vom Prozessor ausgeführte Code lag nicht immer in Form der heute bekannten verbalen Befehle und Beschreibungen vor. Die erste Maschine, die so etwas wie ein Programm ausführen konnte, war der erste automatische Computer, der von dem deutschen Ingenieur Konrad Zuse gebaut und als Z3 bezeichnet wurde. Das Gerät war Relais-basiert und bot nach heutigen Maßstäben nur geringe Möglichkeiten. Der Computer konnte nur addieren, subtrahieren, multiplizieren, dividieren und Primzahlen auf binäre Gleitkommazahlen anwenden. Das vom Z3 durchgeführte Programm wurde auf einem speziellen Lochstreifen vorbereitet. Dabei handelte es sich um einen Datenträger aus Papier, in den an den entsprechenden Stellen Löcher geschnitten wurden, die der Computer als aufeinanderfolgende Bitreihen identifizierte. Perforierte Speichermedien waren recht schwierig vorzubereiten, und außerdem gab es Fehler, die nicht rückgängig gemacht werden konnten. Dennoch können die Techniker, die das von Z3 umgesetzte Programm vorbereiteten, als die ersten Programmierer bezeichnet werden.

Die Wissenschaft und Entwicklung sind jedoch unaufhaltsam, und so wurden im Laufe der Zeit die papierbasierten Medien durch ihre elektrischen Gegenstücke verdrängt. Der Durchbruch war natürlich das Aufkommen der ersten Halbleiterspeicher, in denen die aufeinanderfolgenden Anweisungen des auszuführenden Programms in kleinen Siliziumkernen gespeichert sind. Seit dem Aufkommen dieser Art von Konstruktion hat sich die Vorstellung von jemandem, den wir als Programmierer bezeichnen können, irgendwie verändert. Ursprünglich war der Mensch eng mit der Hardware verbunden und bereitete den entsprechenden “Code” vor, dessen Form sehr unterschiedlich sein konnte, der aber in der Regel nur auf einem einzigen Gerätetyp lief. Im Laufe der Zeit ist der Beruf des Programmierers zu etwas Universellem geworden, das mehr mit der Programmiersprache als mit der Hardware zu tun hat. Gegenwärtig ist die Sprache, in der die nachfolgenden Befehle geschrieben werden, zum wichtigsten Element geworden, da die derzeitige Hardware fast alles akzeptieren kann. Es ist jedoch zu bedenken, dass es spezialisierte Plattformen gibt, die eng mit einer spezifischen Art von “Codes” zusammenhängen, der ausgeführt wird.

Der sowjetische Berufsschüler Sasha Reshmin bereitet ein funktionsfähiges Ferrit-Speichermodul vor. Der Autor dieses Fotos von 1961 ist Isaac Tunkel.

Was genau ist Programmierung? Die Antwort auf diese Frage könnte wie folgt lauten: Es handelt sich um den Prozess, bei dem ein so genannter Programmierer ein Programm mit bestimmten Parametern vorbereitet, um eine bestimmte, in der Programmiersprache definierte Aufgabe zu erfüllen. Das klingt logisch, aber es stellt sich die Frage: Woher kennen Computer, Mikrocontroller oder andere Plattformen, auf denen ein vorbereitetes Programm ausgeführt werden kann, Programmiersprachen?

Kompilationen, Synthesen und Übersetzungen

Kein Computer, geschweige denn ein Mikrocontroller wie der RP2040, kennt oder versteht eine Programmiersprache im menschlichen Sinne des Wortes. Digitale integrierte Schaltkreise, d.h. Prozessoren aller Art, arbeiten im Binärsystem, d.h. sie basieren ausschließlich auf zwei Symbolen: 1 und 0. Dabei handelt es sich um digitale Darstellungen elektrischer Spannungen, die kurz gesagt einen hohen Zustand 1 darstellen, wenn eine Spannung vorhanden ist, oder einen niedrigen Zustand, wenn keine Spannung vorhanden ist, dargestellt durch die Null. Bei Mikrocontrollern gibt es keine Zwischenzustände. Jedes Programm hat, nachdem es mehrere Einführungsebenen durchlaufen hat, genau diese Form – die Form einer Folge von Nullen und Einsen, die dem Konzept einer bestimmten CPU entspricht. Das binäre Gegenstück der ADD-Mnemonik (Additionsoperation) in Prozessoren auf ARM-Basis, also wie im RPI Pico W, lautet beispielsweise “000110 10000 00011 0000 0000 0010”. Der RP2040-Chip, der einen solchen Befehl aus dem Speicher liest, der auch als Maschinencode bezeichnet wird, weiß, dass er eine Additionsoperation an zwei in den Arbeitsregistern gespeicherten Zahlen durchführen und das Ergebnis im nächsten Register speichern muss.

Das Schreiben von Programmen in Maschinencodes ist natürlich möglich, aber es wäre extrem schwierig, zeitaufwendig und anstrengend. Aus diesem Grund wurden mit der Entwicklung der Technologie so etwas wie Compiler geschaffen. Dabei handelt es sich um Programme, die eine Programmiersprache automatisch in eine andere übersetzen, genauer gesagt von einer Hochsprache in eine Niedrigsprache, so dass der vom Programmierer erstellte Code vom Prozessor ausgeführt werden kann.

Eine interessante Tatsache ist, dass nicht jede Übersetzung eines Codes in einen anderen eine Kompilierung ist. Programmierbare Schaltungen wie FPGAs sind ein Beispiel dafür. Wenn man den Prozess der Beschreibung der Hardware von außen betrachtet, kann man fälschlicherweise annehmen, dass es sich dabei nur um eine Programmierung handelt, bei der der vorbereitete Code kompiliert wird. Die korrekte Aussage ist jedoch die Konfiguration,und eine in VHDL oder Verilog geschriebene Beschreibung der Hardware wird entsprechend der korrekten Nomenklatur synthetisiert.

Wahl des Steins zur Bestimmung

Arduino UNO R4, RPI Pico W und RPI Zero 2 Boards.

Aber kommen wir zurück zum Hauptthema dieses Artikels. Für die Programmierung des Raspberry Pi Pico W gibt es mehrere Lösungen. Die beliebtesten sind die Arduino IDE, MicroPython und C/C++ SDK. Wenn Ihnen diese Namen nicht geläufig sind, brauchen Sie sich keine Sorgen zu machen. Ich werde gleich erklären, worum es sich bei den einzelnen Lösungen handelt, Fragen zu ihren Stärken und Schwächen beantworten und aufzeigen, wo sie eingesetzt werden.

Programmieren mit der Arduino IDE

Jeder, der schon einmal mit Elektronik gearbeitet hat, hat sicher schon von Arduino-Boards gehört. Diese kleinen Plattformen, die vom Konzept her ähnlich wie der Raspberry Pi Pico sind, haben vor allem bei Hobbyelektronikern außerordentlich an Beliebtheit gewonnen. Dank ihrer Einfachheit, der Fülle an Wissensquellen und der Unterstützung durch die Gemeinschaft ist sie zu einer weit verbreiteten Wahl in der Kategorie der Plattformen zum Erlernen von Elektronik und Programmierung geworden. Es ist jedoch wichtig zu wissen, dass Arduino nicht nur ein Board mit einem aufgelöteten Mikrocontroller ist, sondern vor allem eine Entwicklungsumgebung, mit der man Codes auch für andere Hardwareplattformen erstellen kann.

Die Arduino IDE, wie die Entwicklungsumgebung der Arduino-Plattform genannt wird, ist ein äußerst einfaches und intuitives Tool, mit dem Sie Codes in der Sprache C erstellen können, die auf dem RPI Pico W-Board erfolgreich ausgeführt werden können. Der Vorteil der Arduino-IDE liegt vor allem in ihrer Einfachheit und den schnellen Ergebnissen. In buchstäblich wenigen Minuten können wir ein funktionales Programm erstellen, das einfache Aufgaben erfüllt. Die Vision des schnellen Erfolgs ist verlockend, aber es ist wichtig zu wissen, dass der Arduino im weitesten Sinne mit vielen Nachteilen und Widrigkeiten behaftet ist, über die man einen eigenen Artikel schreiben könnte. Nicht umsonst sind die Boards und auch die Arduino-Entwicklungsumgebung in professionellen Anwendungen eher unbekannt. Es ist eine einfache Plattform, aber es ist wichtig, sich ihrer Grenzen bewusst zu sein – die fehlende Unterstützung für fortgeschrittene Funktionen auf bestimmten Mikroprozessoren, die blinde Verwendung von Codes, die von anderen Nutzern vorbereitet wurden, und unratsame Programmierpraktiken, die zur Gewohnheit werden, sind nur einige Beispiele für die Nachteile, die mit der Arduino-Umgebung verbunden sind.

Der unglaubliche Vorteil, den ich bereits erwähnt habe, ist jedoch die Einfachheit. Die Arduino-Plattform und damit auch die Software, die zur Erstellung des Codes verwendet wird, ermöglichen es, schnell von einer Idee zu einer funktionierenden Schaltung zu gelangen. Mit anderen Worten, die Verwendung der Arduino-IDE zur Programmierung des Raspberry Pi Pico ermöglicht eine schnelle Umsetzung der Visionen und Ideen des Benutzers, aber für die endgültige Version des Projekts lohnt es sich, eine andere Methode zur Vorbereitung des Codes in Betracht zu ziehen.

MicroPython-Sprache

Eine interessante Möglichkeit, den Raspberry Pi Pico W zu programmieren, ist die Verwendung der Sprache MicroPython. Vielleicht haben Sie auch schon einmal von ihr gehört. Sie wurde von der Sprache Python abgeleitet und ist eine Implementierung dieser Sprache, die für die Ausführung auf Mikrocontrollern und eingebetteten Systemen mit begrenzter Leistung und Ressourcen optimiert wurde.

In den letzten Jahren hat die Sprache Python in der Programmiergemeinschaft erheblich an Popularität gewonnen und ist besonders bei Menschen beliebt, die Wert auf Einfachheit und Flexibilität des Codes legen. Auch MicroPython verfügt über diese und alle anderen Eigenschaften einer Skriptsprache und ist damit vor allem für Anfänger äußerst zugänglich. Darüber hinaus unterstützt die Sprache viele der im Original verwendeten Standard-Code-Bibliotheken und -Lösungen, so dass sie wie die Arduino-IDE ein schnelles und einfaches Prototyping ermöglicht.

Es ist jedoch wichtig zu wissen, dass es mehrere Probleme im Zusammenhang mit MicroPython gibt. Die Skriptsprache funktioniert gut in der Computerprogrammierung, aber in einem leistungsbegrenzten System, in dem der Benutzer sich der Hardwarebeschränkungen bewusst sein muss, funktioniert sie nicht gut. Die Sprache bietet nicht alle Möglichkeiten zur Steuerung von Mikrocontrollern, und man kann hier die Analogie verwenden, dass MicroPython eher beschreibt, was die Hardware tun soll, als wie sie genau funktioniert. Vor allem aus diesem Grund ist die MicroPython-Gemeinde noch klein und wir werden sie in den meisten Rankings für die Beliebtheit von Embedded-Programmiersprachen nicht finden. Es lohnt sich jedoch, dieses Projekt im Auge zu behalten und sogar einige der Grundlagen seiner Anwendung zu erlernen, denn niemand weiß, was die Zukunft uns bringen wird.

C/C++ SDK

Der unangefochtene König der Programmiersprachen für eingebettete Systeme ist C. Sie wird seit vielen Jahren von Ingenieuren und Programmierern verwendet, und heute gibt es praktisch keinen Mikroprozessorchip, der sie nicht unterstützt. Die Sprache C zeichnet sich vor allem durch die vollständige Kontrolle über die Hardware und eine niedrige Abstraktionsstufe aus, die es ermöglicht, das im Chip verborgene Potenzial voll auszuschöpfen. Außerdem hat sich im Laufe der Jahre eine große Gemeinschaft von Nutzern um C herum gebildet, so dass es viel einfacher ist, Antworten auf Fragen zu finden. Darüber hinaus sollte erwähnt werden, dass der resultierende Code nach der Kompilierung der Sprache C im Vergleich zu Skriptsprachen wie MicroPython in Bezug auf die Ressourcennutzung optimierter ist.

Allerdings ist die C Sprache nicht nur Superlative, für Anfänger kann sie etwas komplizierter erscheinen, besonders im Vergleich zu Skriptsprachen. Der Code selbst wird auch länger und komplizierter sein, so dass es leichter ist, einen Fehler zu machen. Darüber hinaus kann C als weniger flexibel bezeichnet werden, insbesondere durch die Tatsache, dass es keine automatische Speicherverwaltung unterstützt.

For power users… For hobbyists…

Sie haben wahrscheinlich schon geahnt, dass wir in den folgenden Materialien die Sprache C verwenden werden. Es lohnt sich, den Ratschlägen auf der Webseite der Raspberry Pi Foundation zu folgen. Es ist die Sprache C, die Sie im Abschnitt “Für Power-User” finden, und schließlich möchte jeder in der Zukunft einer sein. Es ist nicht ausgeschlossen, dass wir noch einmal auf die Arduino IDE und MicroPython zurückkommen werden, aber eher als Kuriosität. Um die Möglichkeiten des RPI Pico voll ausschöpfen zu können, müssen wir das vom Hersteller angebotene C/C++ SDK verwenden. Wenn man seine Zukunft an die Elektronik oder die Embedde-Industrie bindet, lohnt es sich außerdem, die Sprache C gründlich zu beherrschen, da sie dort sehr häufig verwendet wird.

Ein paar Worte zum Schluss...

In diesem Material habe ich Ihnen einige der Programmiermöglichkeiten des Raspberry Pi Pico beschrieben und ein wenig über das Programmieren selbst erzählt. Wie Sie bereits wissen, werden wir in den folgenden Materialien die Sprache C verwenden, und es spricht nichts dagegen, jetzt schon die entsprechende Software vorzubereiten und unser erstes Projekt durchzuführen.

Quellen:

  • https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf
  • https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf
  • https://www.raspberrypi.com/products/rp2040/
  • https://en.wikipedia.org/wiki/Computer_programhttps://en.wikipedia.org/wiki/Read-only_memory

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 4.7 / 5. Stimmenzahl: 26

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Teilen:

Picture of Rafał Bartoszak

Rafał Bartoszak

Ein mit Botland kooperierender Elektroniker, der sein Wissen im Internet teilt. Enthusiast für digitale Systeme, programmierbare Schaltungen und Mikroelektronik. Leidenschaftlich für Geschichte, mit besonderem Schwerpunkt auf dem 20. Jahrhundert.

Siehe mehr:

Mateusz Mróz

Rangliste der Widerstandslötkolben

Heute befassen wir uns mit Widerstandslötkolben. Die Wahl der Ausrüstung hängt immer von Ihren individuellen Bedürfnissen ab, daher sollten Sie sich überlegen, welche Funktionen für Sie am wichtigsten sind. Werfen Sie einen Blick auf unsere Liste!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Aus Sicherheitsgründen ist die Verwendung des reCAPTCHA-Dienstes von Google erforderlich, der den Google-Datenschutzbestimmungen und Nutzungsbedingungen unterliegt..