如何从bash上传源代码到Arduino?

时间:2013-03-03 10:56:23

标签: linux bash deployment arduino

现在我正在使用标准的Arduino IDE 1.0.1。

然而,我发现IDE本身都很不舒服,我自己编辑其他编辑器中的代码只需要将它复制粘贴到IDE中并将其上传到我的Arduino。

我真的不喜欢这个工作流程。

所以我想知道:通过命令行最好部署Arduino项目吗?基本上我正在寻找一种从bash运行类似arduino deploy /path/to/project /dev/ttyUSB0的方法。

3 个答案:

答案 0 :(得分:5)

您需要一个名为avrdude的程序将二进制文件上传到您的目标,并根据您的设置和目标修改参数:

mcu=atmega8
f_cpu=16000000
format=ihex
rate=19200
port=/dev/ttyusb0
programmer=stk500
target_file=test.hex

avrdude -F -p $mcu -P $port -c $programmer -b $rate -U flash:w:$target_file

如果您使用的是DebianUbuntu计算机,则可以执行此操作以安装avrdude

sudo apt-get install avrdude 

否则你应该能够从here获取资源并自行构建。

还有一个全面的Makefile可用于构建并上传到Arduino,再次使用类似的avrdude命令上传到目标。更改Makefile中的参数后,运行make upload将hex文件上传到目标。

注意:您需要安装gcc-avravr-libc个软件包来构建二进制文件(从问题看起来就像您已经在做的那样)。

答案 1 :(得分:1)

以下是您可以尝试的两个选项

仅限Arduino 1.5.x

如果您使用的是Arduino 1.5.x,那么您可以使用arduino可执行文件接受commandline parameters

请注意,Arduino 1.5.x仍处于测试阶段,因此您可能会面临一些问题。

Arduino 1.0.x

如果您正在使用Arduino 1.0.x,那么您可以使用我的makefile for Arduino,它可用于从命令行编译和上传Arduino(或普通AVR C)程序到Arduino。

以下是此makefile的一些重要功能

  • 支持通过Arduino上传为ISP或任何程序员
  • 通过序列号
  • 与Arduino通信
  • 支持编译普通AVR C程序
  • 支持用户和系统库。
  • 生成装配和符号文件
  • 使用备用Arduino核心(如ATtiny或Arduino备用核心)编程

答案 2 :(得分:0)

我为ubuntu / linux制作了一个arduino构建器帮助

  • 构建
  • 上传
  • 侦听串口
  • 跟踪草图文件中的更改

可在此处找到构建器和如何设置所有内容的说明: https://github.com/limitium/arduino_builder

此外,您还可以在此处看到有关它的小型演示视频: https://youtu.be/Nu3YGMoXORI