树莓派上搭建arduino开发环境
-------------还是博客园上面的格式看这舒服,不去新浪了-------------
为什么要在树莓派上开发arduino呢?总要把树莓派用起来嘛,不然老吃灰。
树莓派使用SSH时没有图形界面,不能使用IDE,那怎么做开发呢?可以使用命令行。
Arduino本身支持各种平台,IDE的界面也几乎是一模一样,使用起来相当方便,省去了跨平台时的摸索阶段。树莓派支持的就是linux,所以在上面开发Arduino是没有问题的,并且开发所需要的环境都已经打包整理好了。安装命令如下:
$ sudo apt-get install arduino arduino-mk
arduino是开发环境,而arduino-mk是在命令行下make文件时所需要的环境。毕竟99%的人都是使用SSH的方式链接上树莓派的,没有图形界面,此时使用arduino-mk就大为方便了。
安装完成后,找到/usr/share/arduino/Arduino.mk文件,该文件包含几乎所有需要的信息。(大致信息见文末)
配置方法如下:
创建任意一目录:
$ mkdir blink_test
$ cd blink_test
拷贝示例代码(闪灯)到当前目录:
$ cp /usr/share/doc/arduino-core/examples/.Basics/Blink/Blink.ino .
创建Makefile文件:
$ vim Makefile
添加如下代码,树莓派上一般是/dev/ttyACM0端口:
ARDUINO_LIBS = Ethernet SPI
BOARD_TAG = uno
MONITOR_PORT = /dev/ttyACM0
include /usr/share/arduino/Arduino.mk
保存,退出编辑
编译:
$ make
如果编译通过没有出错,就可以烧入程序:
$ make upload
执行结果如下:


看到Thank you就代表成功烧入程序了。
End.
另:可以使用make help查看完整帮助。
-------------------------------------------------
2016.12.05更新:
树莓派上的arduino手动安装和使用第三方库的方法(IDE和make通用),也可以直接放在arduino的系统库路径下。
第三方库一般的位置:(方便管理)
mac下默认第三方库路径:~/Documents/Arduino/libraries
windows下默认第三方库路径:My Documents\Arduino\libraries\
linux下一般是在你的sketchbook目录下(不懂是什么意思)
反正在树莓派上,在~目录下新建一个sketchbook目录,在该目录下在创建一个libraries目录,然后将第三方库解压到libraries目录下。
注意:在libraries目录下,每个库应该在单独的文件夹里,并且要满足如下规则:比如你的库名字叫ArduinoParty,那么libraries目录下就要有ArduinoParty文件夹,并且该文件夹目录下必须有ArduinoParty.cpp和ArduinoParty.h文件,只能放在该目录下,不支持嵌套。(如果有example文件夹,则下面的例子IDE也能识别)。
在Makefile中设置USER_LIB_PATH变量,指定第三方库路径:
USER_LIB_PATH = /home/pi/sketchbook/libraries(必须是绝对路径,而且是完整的,不能用~等)
设置ARDUINO_LIBS变量,指定需要加载的库文件:
ARDUINO_LIBS = Ethernet SPI yourlib
注意,不能通过USER_LIB_PATH = /home/pi/sketchbook/libraries/yourlib的方式来指定加载的第三方库,必须拆分成这两步。
附1.部份目录说明:
/usr/share/arduino/hardware/arduino/cores/arduino/:含arduino核心代码
/usr/share/doc/arduino-core/examples/:含示例代码
/usr/share/doc/arduino-core/reference/:含API帮助文档
/usr/share/arduino/libraries/:含arduino自带的库
/usr/bin/:包含相关的可执行程序,avr-g++, avr-gcc ,arduino, avrdude,等
/etc/avrdude.conf:avrdude的配置文件
附2.Arduino.mk简要翻译:
################################################################################################
# 环境变量设置:
# 有三种类型的文件路径需要设置:
# .ARDMK_DIR 指定*.mk文件存放的路径
# .ARDUINO_DIR指定arduino的安装路径,如boards.txt, libraries, &c等
# .AVR_TOOLS_DIR指定arduino包依赖的其它工具链,不过一般是由系统指定,比如在Linux上
#
# 这三个变量设置好了,剩下的就交给脚本去处理了.一般路径如下:
# MacOS上:
# ARDUINO_DIR = /Applications/Arduino.app/Contents/Resources/Java
# ARDMK_DIR = /usr/local
#
# Linux上:
# ARDUINO_DIR = /usr/share/arduino
# ARDMK_DIR = /usr/share/arduino
# AVR_TOOLS_DIR = /usr
#
# Windows上麻烦一点:
# 使用控制面板设置这些变量.依次点击Control Panel > System > Advanced system settings,
# 设置环境变量的时候,如果有空格或者特殊符号必须使用”\”进行转义.ARDUINO_DIR和AVR_TOOLS_DIR
# 必须是相对路径,不能是绝对路径.如下所示,
# ARDUINO_DIR =../../../../../Arduino
# AVR_TOOLS_DIR =../../../../../Arduino/hardware/tools/avr
# ARDMK_DIR = /cygdrive/c/Users/"YourUser"/Arduino-Makefile
# 这只是示例,具体的路径要依据自己的系统设置.
# 并且,在windows上强烈建议使用符号连接目录,避免和windows的# 目录混淆起来.比如
# c:\Program Files (x86)\Arduino,在console里使用# mklink命令就行了.(没有windows的环境,没有尝试过.)
#
# 一般有两种方式,一是在系统上设置,一是在Makefile中设置.如果没有设置这些变量,系统将自己猜测
# 相关的配置,这有可能会正常工作,也有可能不会正常工作.
# 如果不想看到输出配置信息,定义ARDUINO_QUIET就好.
################################################################################################
# arduino标准工作流程
# 创建一个sketch目录,在改目录下创建一个Makefile文件,里面只需要定义一些变量和包含一个路径
# 例如:
# ARDUINO_LIBS = Ethernet SPI
# BOARD_TAG = uno
# MONITOR_PORT = /dev/cu.usb*
#
# include /usr/share/arduino/Arduino.mk
#
# 相关名词解释
# ARDUINO_LIBS:当前工程(目录sketch)使用的库文件列表,默认在
# $(ARDUINO_DIR)/hardware/libraries目录下或者你当前的sketch目录下
# MONITOR_PORT:arduino可以使用的端口(上传时需要)
# BOARD_TAG:arduino板子的类型,比如uno或mega,使用
# 'make show_boards'查看列表
#
# 如果还有第三方的附加库,还需要设置USER_LIB_PATH变量:
# USER_LIB_PATH := $(realpath ../../libraries)
# 如果要把Arduino-Makefile作为自模块在git中使用,Makefile中还需# 要添加如下几行代码:
# ARDMK_DIR := $(realpath ../../tools/Arduino-Makefile)
# include $(ARDMK_DIR)/Arduino.mk
#
# 一旦这些都设置完成,剩下的只需要执行:
# $ make upload
# 就ok啦.
#
# 所有目标文件都是在build- {BOARD_TAG}子目录中创建
# 所有源文件都应该在当前目录,可以包括:
# -最多一个.pde或.ino文件,满足arduino标准.
# -任何数量的.c,.cpp,.s和.h文件
# 包含的库在build- {BOARD_TAG} / libs子目录中构建.
# 除了进行make upload,还有几个其他命令可用.
# 使用`make help`查看完整列表
################################################################################################
树莓派上搭建arduino开发环境的更多相关文章
- 在WP8上搭建cocos2d-x开发环境
在WP8上搭建cocos2d-x开发环境 转自:https://github.com/koowolf/cocos-docs/blob/master/manual/framework/native/in ...
- 如何在Windows上搭建Android开发环境
Android开发越来越火,许多小伙伴们纷纷学习Android开发,学习Android开发首要任务是搭建Android开发环境,由于大家 主要实在Windows 上开发Android,下面就详细给大家 ...
- Arduino 002 --- 在Ubuntu(Linux) 中搭建Arduino开发环境
在Ubuntu/Linux 中搭建Arduino开发环境 我的Ubuntu系统:Ubuntu 14.04.10 TLS 32位 需要安装的Arduino的版本:Arduino 1.6.11(最新版本) ...
- 如何在 macOS 上搭建 PHP 开发环境
如何在 macOS 上搭建 PHP 开发环境 Linux, Nginx, MySQL, PHP $ php --version $ php -v # PHP 7.3.11 (cli) (built: ...
- Windows系统上搭建Clickhouse开发环境
Windows系统上搭建Clickhouse开发环境 总体思路 微软的开发IDE是很棒的,有两种:Visual Studio 和 VS Code,一个重量级,一个轻量级.近年来VS Code越来越受欢 ...
- 在 macOS 上搭建 Flutter 开发环境
下载 Flutter SDK flutter官网下载:https://flutter.io/sdk-archive/#macos 若上述链接无法访问,可通过GitHub下载 https://githu ...
- 树莓派上搭建arduino命令行开发环境
-------------还是博客园上面的格式看这舒服,不去新浪了------------- 为什么要在树莓派上开发arduino呢?总要把树莓派用起来嘛,不然老吃灰. 树莓派使用SSH时没有图形界面 ...
- Windows上搭建android开发环境
在搭建android开发环境时需要四部分内容,框架如下 其中Java SDK和Eclipse在java4android中有过介绍,重点介绍ADT和Android SDK的安装. 安装Android S ...
- 入门: 在Windows上搭建Flutter开发环境
使用镜像 由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中: export PUB_HOSTED_URL=htt ...
随机推荐
- onchange、oninput、onpropertyChange事件的异同
onchange事件适用于input\textarea\select元素上,支持各大浏览器,该事件只有在键盘或者鼠标操作改变对象属性,且失去焦点时触发,脚本触发无效: oninput事件适用于inpu ...
- 编译时.test文件报错无法解决的方法,关闭test编译
有几次遇到从网上下载到的iOS开源代码编译报错,报错位置为Test Target的源文件,我就挺奇怪我又没做测试为啥会编译Test Target的源文件,之前的暴力解决方法是把Test Target直 ...
- sublime text2的插件熟悉
今天加班,开会.于是整理下sublime text的插件. 1.安装了tag插件.负责html的格式化.从百度云下载了文件,放入了插件包的目录下. 2.启用了alignment 快捷键 ctr+alt ...
- C++ CRTP singleton
C++ CRTP 是个很有意思的东西,因为解释原理的文章很多,但是讲怎么用的就不是很多了. 今天就稍微写下CRTP(奇异递归模板模式)的一个有趣的用法:Singleton(单例模式) 单例有很多中写法 ...
- python dataframe 针对多列执行map操作
Suppose I have a df which has columns of 'ID', 'col_1', 'col_2'. And I define a function : f = lambd ...
- 测试部署环境用到的主要linux命令
1 部署前检查开发是否上传部署文档 2 在测试组中告知大家 3 将上一版本进行备份(cp -r neiguan-tomcat/ /home/personal/backup/neiguan-tomcat ...
- python实现二叉树
初学python,需要实现一个决策树,首先实践一下利用python实现一个二叉树数据结构.建树的时候做了处理,保证建立的二叉树是平衡二叉树. # -*- coding: utf-8 -*- from ...
- Html 和 Css 的杂乱总结
1. input 中可以设置 maxLength 属性,控制输入的文字数量,中英文字节数一样,但是没有验证兼容性 2.客户端中的页面禁止右键,复制等 <body scroll="no& ...
- phpcms 杂乱总结
1.根据catid 获取 栏目名称 $CATEGORYS = getcache('category_content_'.$siteid,'commons'); $name = {$CATEGORYS[ ...
- C# 泛型初探
初探的类: public class TClass { /// <summary> /// int参数 /// </summary> /// <param name=&q ...