-------------还是博客园上面的格式看这舒服,不去新浪了-------------

  为什么要在树莓派上开发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命令行开发环境的更多相关文章

  1. LibOpenCM3(一) Linux下命令行开发环境配置

    目录 LibOpenCM3(一) Linux下命令行开发环境配置 本文使用 Linux 环境, 硬件为 STM32F103 系列开发板 LibOpenCM3 介绍 LibOpenCM3 是GPL协议( ...

  2. 树莓派上搭建arduino开发环境

    -------------还是博客园上面的格式看这舒服,不去新浪了------------- 为什么要在树莓派上开发arduino呢?总要把树莓派用起来嘛,不然老吃灰. 树莓派使用SSH时没有图形界面 ...

  3. 转:WIN7上搭建Windows Phone 8 开发环境——VMware Workstation下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法

    转自:http://www.cnblogs.com/shaddock2013/p/3155024.html 最近在试着在Windows 7上搭建Windows Phone 8的开发调试环境,使用的是V ...

  4. WIN7上搭建Windows Phone 8 开发环境——VMware Workstation下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法

    最近在试着在Windows 7上搭建Windows Phone 8的开发调试环境,使用的是VMware Workstation + Win8 Pro的虚拟环境, 在漫长的WPexpress_full下 ...

  5. 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!

    今年微软Build 2016大会最让开发人员兴奋的消息之一,就是在Windows上可以原生运行Linux bash,对开发人员来说,这是一个喜闻乐见的消息. 1 安装 你必须安装开发者预览版本,才能使 ...

  6. 在Windows7上搭建Cocos2d-x 3.2alpha0开发环境

    在windows7上搭建COCOS2D-X开发环境并不难, 但是由于框架更新过快,很多用户都有困难.我希望你们认为这个教程有用. 建议:为了避免安全相关的问题,请以管理员权限执行所有的操作,当运行命令 ...

  7. 在Eclipse上搭建Cocos2d-x的Android开发环境

    很多其它相关内容请查看本人博客:http://www.bokeyi.com/ll/category/cocos2d-x/ 本文的搭建方法是最新最正确的方法,好多朋友反映搭建eclipse交叉编译环境非 ...

  8. 图文教程:在Mac上搭建Titanium的iOS开发环境

    http://mobile.51cto.com/web-317170_all.htm 跨平台开发工具Titanium的兴起之路:HTML 5是最大威胁 比较Titanium和PhoneGap两大iOS ...

  9. 用VirtualBox和vagrant在win7×64上搭建ruby on rails 开发环境

    下载准备 1.vagrant 官方  WINDOWS Universal (32 and 64-bit) http://www.vagrantup.com/downloads.html 2.Virtu ...

随机推荐

  1. Containers vs Serverless:你选择谁,何时选择?

    两者都是当今技术时代的热门话题,也都被视为是开发技术的竞争对手. 首先,还有相当多的好奇和担心.此外,两者都是可供工程师使用的.高效的.机器无关的抽象. 但是,在冠军之间,有一个不可逾越的鸿沟.你要么 ...

  2. JavaScript自动播放背景音乐

    问题描述 js控制audio自动播放音乐时报错: Uncaught (in promise) DOMException 我的报错之前的代码: <audio id="myaudio&qu ...

  3. JVM 调优 - jmap

    Java命令学习系列(三)——Jmap 2015-05-16 分类:Java 阅读(17065) 评论(9) 阿里大牛珍藏架构资料,点击链接免费获取 Jmap jmap是JDK自带的工具软件,主要用于 ...

  4. java8 Optional使用总结

    [前言] java8新特性 java8 函数接口 java8 lambda表达式 Java 8 时间日期使用 java8 推出的Optional的目的就是为了杜绝空指针异常,帮助开发者开发出更优雅的代 ...

  5. linux 指定tomcat的具体路径

    1.直接修改catalina.sh中对应的变量 CATALINA_HOME=/xx/xxCATALINA_BASE=/xx/xx (该方法需要找到所有的变量进行修改,不适合,推荐使用方式2) 2.在p ...

  6. Angular 常用命令行

    1. ng -v 查看angular-cli是否安装成功.angular-cli的版本号 2. ng new 项目名称 新建angular项目 3. ng g class 类名 动态生成类文件: 4. ...

  7. 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

    一.前言 在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能 ...

  8. dede tag标签静态化

    看回那2个文件夹即可,txt说明书我已经修改过. 下面说一下tag标签静态化之后在内容页.列表页中如何使用. 内容页中沿用之前的方法即可: {dede:tag sort='new' getall='0 ...

  9. [scrapy-redis] install and configure scrapy-redis on CentOS 7 (1)

    0. 安装依赖 yum install -y zlib zlib-devel openssl openssl-devel bzip2 bzip2-devel sqlite-devel gcc wget ...

  10. java的日期时间处理(待更新)

    1. /*      * 将时间转换为时间戳      */        public static String dateToStamp(String s) throws ParseExcepti ...