Listing 3
package main
import "fmt"
func main() {
fmt.Println("Hallo Welt")
}
Um das Programm einfach auszuführen, verwenden Sie das Kommando go run hallo_welt.go im Terminal. Dabei erzeugen Sie keinen Maschinencode, das Programm wird quasi interpretiert. Das Erstellen des Maschinencodes stoßen Sie mit go build hallo_welt.go an. Die ausführbare Datei liegt danach im gleichen Verzeichnis; mit ./hallo_welt starten Sie sie.
Um den Unterschied noch einmal klar herauszustellen: Die Option run führt den Code einfach aus. Er ist so auf jeder CPU-Architektur lauffähig, ähnlich wie Python. Mit der Option build dagegen erzeugen Sie ein Binary für die aktuelle CPU, also die ARM-Architektur. Das Binary eignet sich dann für einen Intel-PC nicht mehr.
Atom-Zeitalter
An dieser Stelle lohnt es sich, einen Blick auf den Editor Atom zu werfen. Einfache kleine Programme lassen sich auch in einem Editor wie Vi oder Nano tippen; für größere Programmiervorhaben lohnt sich aber der Einsatz eines modernen, leistungsfähigen Editors.
Atom gibt es für Linux und Windows. Die Dateien für die Installation stehen auf der Homepage des Projekts [2] bereit. Richten Sie nun Atom mit dem für das Betriebssystem üblichen Verfahren auf einem Desktop-PC ein und starten Sie es. Unter dem Menüpunkt Edit | Preferences | Install suchen Sie nach remote-atom (Abbildung 1). Haben Sie den Eintrag gefunden, klicken Sie auf die Schaltfläche Install, um die Erweiterung einzurichten.
Nach der Installation starten Sie den Remote-Atom-Server, indem Sie unter Packages | Remote Atom den Punkt Run Server anwählen (Abbildung 2). Als Nächstes benötigen Sie eine Verbindung zum Raspberry Pi, die auf dessen Port 52698 weiterleitet. Linux-Anwender greifen hier einfach zu SSH (Listing 4), als Windows-Nutzer setzen Sie diesen Tunnel mithilfe eines Tools wie Putty auf.
Listing 4
$ ssh -R 52698:localhost:52698 pi@RasPi-IP
Nun installieren Sie noch Rmate auf dem Raspberry Pi, das Gegenstück zu Atom. Dazu führen Sie auf der Konsole des RasPi die Kommandos aus den ersten beiden Zeilen von Listing 5 aus. Um sich den Namen des Kommandos besser einprägen zu können, benennen Sie rmate am besten nach ratom um.
Listing 5
$ sudo wget -O /usr/local/bin/ratom https://raw.github.com/aurora/rmate/master/rmate $ sudo chmod +x /usr/local/bin/ratom $ ratom /home/pi/gows/hallo_welt.go
Wenn Sie jetzt auf dem Raspberry Pi das Kommando ratom mit dem Namen einer Go-Quellcodedatei eingeben, öffnet sich diese im laufenden Atom-Editor auf dem Desktop-Rechner (Abbildung 3), wo Sie sie wie gewohnt bearbeiten können. Sobald Sie die Datei speichern, lädt die Software sie automatisch zum RasPi hoch.
GPIOs ansprechen
Das nächste Testprogramm spricht die GPIOs des Raspberry Pi an. Damit Sie sehen, dass sich an der GPIO etwas tut, schließen Sie einige LEDs an. Abbildung 4 zeigt den entsprechenden Testaufbau, Abbildung 5 den Schaltplan dazu. Im Beispiel kommt die Bibliothek go-rpio zum Einsatz, die Sie mit dem Befehl aus Listing 6 von Github herunterladen und installieren.
Listing 6
$ go get -d -u github.com/stianeikeland/go-rpio
Die Bibliothek verwendet das BCM-Layout des Mini-Rechners, verwendet also die Pin-Nummern des BCM-Chips, der im Raspberry Pi steckt. Falls Sie bereits mit WiringPi gearbeitet haben, dürften Sie das recht verwirrend finden. Listing 7 hilft dabei, nachzuvollziehen, wie es funktioniert.
Wenn Sie im Go-Programm als Pin-Nummer die 17 angeben, ist damit der entsprechende Pin des BCM-Chips gemeint. Dieser ist über den physischen Pin 11 der 40-poligen Stiftleiste des Raspberry Pi herausgeführt. Wollten Sie diesen Pin mit der WiringPi-Bibliothek ansprechen, müssten Sie dort die GPIO0 wählen.










