Il blog di Blia.it

Go e Arduino con Gobot

Gobot è un framework per la costruzione di droni, robot e dispositivi IoT. Supporta numerosi dispositivi e piattaforme, tra cui le schede Arduino e Raspberry Pi.

Gobot utilizza il protocollo Firmata per comunicare con Arduino, quindi il primo passo è caricare la libreria Firmata sulla scheda. La libreria Firmata viene fornita con l'ultima versione dell'IDE di Arduino, quindi scarichiamo ed installiamo il pacchetto IDE di Arduino da qui.

Colleghiamo la scheda Arduino al computer tramite il cavo USB.
Configuriamo l'IDE con il tipo e la porta della scheda (Strumenti->Scheda e Strumenti->Porta).
Carichiamo il file StandardFirmata.ino (File->Esempi->Firmata).
Clicchiamo su Carica e aspettiamo che il codice venga trasferito sulla scheda.
Se tutto è andato liscio a fine trasferimento dovremmo vedere il messaggio "Caricamento completato" nella finestra di stato. La scheda è pronta per funzionare con Gobot.

Scriviamo questo semplice programmino che accende e spegne ogni secondo il led di controllo di Arduino, salvandolo, ad esempio, con il nome "blink.go".

package main

import (
        "time"

        "gobot.io/x/gobot"
        "gobot.io/x/gobot/drivers/gpio"
        "gobot.io/x/gobot/platforms/firmata"
)

func main() {
        firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0")
        led := gpio.NewLedDriver(firmataAdaptor, "13")

        work := func() {
                gobot.Every(1*time.Second, func() {
                        led.Toggle()
                })
        }

        robot := gobot.NewRobot("bot",
                []gobot.Connection{firmataAdaptor},
                []gobot.Device{led},
                work,
        )

        robot.Start()
}

Eseguite con: go run blink.go .
Se tutto è andato bene dovreste vedere il led lampeggiare.

Buon divertimento con Go, Gobot e Arduino

Mastodon

Blia.it NON utilizza cookie (v. informativa)

Per contattare la redazione di Blia.it potete scrivere a: infoblia@gmail.com
(attenzione, blia.it non ha nessun rapporto con banche, scuole o altri enti/aziende, i cui indirizzi sono visualizzati al solo scopo di rendere un servizio agli utenti del sito)