#前言

由于开发环境是树莓派连接Arduino的板子然后控制其它元件,而树莓派和Arduino都已经被放置在了密封装置中,只能通过wifi的方式连接,所以通过Google找到了一个教程成功实现远程Arduino编译上传.

#环境

Raspberry Pi3,Ubuntu-Mate 16.04 LTS,Arduino Mega 2560.

#配置

找到的工具是 Ino. 首先按照文档要求, 安装依赖文件:

1
2
3
4
# 默认Ubuntu下有Python 2.6+故无需重新安装
sudo apt-get update
sudo apt-get install arduino arduino-core # 大概ino也是一个控制工具,还是要依赖arduino的ide
sudo apt-get install picocom # picocom是一个串口调试工具

安装后即可安装ino,官方推荐了可以用过pip和easy_install安装,不过我都安装失败了,故这里选择下载方式:

1
2
3
4
5
6
7
# 在https://pypi.python.org/pypi/ino/#downloads网页中找到最新的压缩包下载即可.
tar -xvf ino-0.3.6.tar.gz
cd ino-0.3.6/
pip install -r requirements.txt # 不知道为什么我用python setup.py就是会出错,只能手动安装pip依赖
cd ..
sudo mv ino-0.3.6/ /usr/local/ino
sudo ln -s /usr/local/ino/bin/ino /usr/bin/ino

#使用

因为arduino限制文件必须在工程下才能编译,所以先创建工程(其实就是一个文件夹即可):

1
2
sudo mkdir driver
cd driver

使用init命令可以自动帮你生成一个工程:

1
ino init

然后修改src文件下的.ino文件即可. 编写完成后,使用build命令编译:

1
ino build -m mega2560 # -m参数是板子类型

编译完成后,使用upload命令上传:

1
ino upload -m mega2560 -p /dev/ttyACM0 # -p是串口号

可以添加配置文件就不用每次build和upload的时候都带参数:

1
2
3
4
5
6
7
8
9
10
vi ino.ini
[build]
board-model = mega2560

[upload]
board-model = mega2560
serial-port = /dev/ttyACM0

[serial]
serial-port = /dev/ttyACM0

#参考文档