【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯

【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯

  • 前言
  • 一、安装Scoop
  • 二、安装TinyGo和AVR工具
    • 2.1 安装TinyGo
    • 2.2 安装AVR工具
  • 三、VS Code配置
    • 3.1 安装Go语言的插件:
    • 3.2 安装TinyGo的插件:
  • 四、点亮LED灯
  • 后记

前言

TinyGo官网:TinyGo - A Go Compiler For Small Places
TinyGo与Arduino:Getting Started\Quick install\Windows
视频参考:搭建使用Go语言的Arduino开发环境

一、安装Scoop

Scoop是一个强大的Windows命令行包管理工具。我们使用命令行即可安装所需要的程序和软件。

关于Scoop的详细介绍和用法参考该文章:scoop使用指南

注意Powershell和.NET Franmework需要达到安装的版本。

Powershell和.NET Franmework的安装与升级地址如下:
1、.NET Franmework
2、Powershell

Scoop详细安装参考该文章:Windows 下统一开发环境 Scoop 的安装与使用(更新中)

安装时建议使用国内镜像加速:

iwr -useb https://gitee.com/glsnames/scoop-installer/raw/master/bin/install.ps1 | iex
scoop config SCOOP_REPO 'https://gitee.com/glsnames/Scoop-Core'
scoop update

Scoop安装成功:
【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯_第1张图片

二、安装TinyGo和AVR工具

2.1 安装TinyGo

直接安装tinygo会非常非常慢(也可以手动安装),因此我们先安装Aria2——加速下载:

scoop install aria2

之后,在Powershell中执行:

 scoop install tinygo

上述操作如下:
【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯_第2张图片
我在安装过程中出现了一些小错误,重新安装即可。
安装结束后输入tinygo version,如果出现tinygo的版本即说明安装成功!

tinygo version
tinygo version 0.26.0 windows/amd64 (using go version go1.19.3 and LLVM version 14.0.0)

【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯_第3张图片

2.2 安装AVR工具

AVR (例如 Arduino Uno)
如果你想为老版的 Arduino 板开发代码,比如 Arduino Uno,你可以通过 Scoop 安装 AVR 开发所需的依赖项(AVR-gcc 和 avrguy) :

scoop install avr-gcc
scoop install avrdude

【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯_第4张图片
【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯_第5张图片

升级到最新版本可以像下面这样简单:

scoop update avr-gcc
scoop update avrdude

三、VS Code配置

3.1 安装Go语言的插件:

【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯_第6张图片

3.2 安装TinyGo的插件:

【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯_第7张图片

四、点亮LED灯

首先我们先选择好所使用板子的型号,选择完成之后注意需要重启vscode!
【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯_第8张图片
之后就可以根据tinygo官方给出的操作执行(TinyGo官方文档)。
先使用如下命令初始化一个新模块:

go mod init blinky

接下来,创建一个名为 main.go 的新文件,代码如下:

package main

import (
    "machine"
    "time"
)

func main() {
    led := machine.LED
    led.Configure(machine.PinConfig{Mode: machine.PinOutput})
    for {
        led.Low()
        time.Sleep(time.Millisecond * 500)

        led.High()
        time.Sleep(time.Millisecond * 500)
    }
}

最后烧录程序:

tinygo flash -target=arduino-nano

注意:
如果使用的是不同的开发板,则需要更换-target标志。例如,Arduino Uno需要-target=arduino而Adafruit ItsyBitsy M4需要-target=itsybitsy-m4.。在此我使用的开发板是arduino nano,所以烧写命令如上所示。

烧录完成:
【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯_第9张图片
最终结果:

后记

在环境搭建过程中遇到问题可以多参考我在前文中提及的文章和视频。
关注我,我将继续更新该系列的新文章!

制作不易,转载请注明原文链接!

你可能感兴趣的:(Go语言学习之旅,golang,开发语言,单片机,mcu)