树莓派上搭建arduino命令行开发环境

摘要:
-------------还是博客园上面的格式看这舒服,不去新浪了-------------为什么要在树莓派上开发arduino呢?树莓派支持的就是linux,所以在上面开发Arduino是没有问题的,并且开发所需要的环境都已经打包整理好了。毕竟99%的人都是使用SSH的方式链接上树莓派的,没有图形界面,此时使用arduino-mk就大为方便了。安装完成后,找到/usr/share/arduino/Arduino.mk文件,该文件包含几乎所有需要的信息。

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

为什么要在树莓派上开发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文件,该文件包含几乎所有需要的信息。(大致信息见文末)

配置方法如下:

创建任意一目录:

$ mkdirblink_test
$ cd blink_test

拷贝示例代码(闪灯)到当前目录:

$ cp /usr/share/doc/arduino-core/examples/01.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

执行结果如下:

树莓派上搭建arduino命令行开发环境第1张

树莓派上搭建arduino命令行开发环境第2张

看到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.cppArduinoParty.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简要翻译:

################################################################################################
# 环境变量设置:
# 有三种类型的文件路径需要设置:
# 1.ARDMK_DIR 指定*.mk文件存放的路径
# 2.ARDUINO_DIR指定arduino的安装路径,如boards.txt, libraries, &c等
# 3.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
#
# 一旦这些都设置完成,剩下的只需要执行:
# $ makeupload
# 就ok啦.
#
# 所有目标文件都是在build-{BOARD_TAG}子目录中创建
# 所有源文件都应该在当前目录,可以包括:
# -最多一个.pde或.ino文件,满足arduino标准.
# -任何数量的.c,.cpp,.s和.h文件
# 包含的库在build- {BOARD_TAG} /libs子目录中构建.
# 除了进行make upload,还有几个其他命令可用.
# 使用`makehelp`查看完整列表
################################################################################################

免责声明:文章转载自《树莓派上搭建arduino命令行开发环境》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【fedora】设置中文为默认语言cygwin putty安装配置及配置显示中文下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【树莓派+.NET MF打造视频监控智能车】控制篇(树莓派)

对已经具备一定Linux基础的人来说,树莓派学习起来应该非常简单自然。在他们眼中,树莓派就是一个简易版的,卡通版的Linux而已。但是对我这样一个早已习惯微软技术生态系统的人或者初学者来说,要实现一个简单程序的编写、编译到运行,还是不太容易的。 上图是我搭建的一个相对完整的树莓派开发环境,有显示(HDMI转VGA->7寸显示屏800*480),有键...

lua学习笔记10:lua简单的命令行

前面反复使用的命令行,好学喜欢命令行: 一 格公式 lua [options][script][args] 两 详细命令 -e 直接命令传递一个lua -l 加载文件 -i 进入交互模式 比例如。端子输入: lua -e "print(math.sin(12))" 版权声明:本文博主原创文章,博客,未经同意不得转载。...

Linux(centos)新建,删除,移动,重命名文件夹和文件的命令

1.新建文件夹 mkdir 文件名 新建一个名为test的文件夹在home下 view source1 mkdir /home/test 2.新建文本 在home下新建一个test.sh脚本  vi /home/test.sh 3.删除文件或文件夹 1、删除home目录下的test目录  rm /home/test 2、这种不带参数的删除方法经常会提示无法...

mac的一些基本设置(分享篇)

原文链接:http://www.h5con.cn/macdao/ocds-guide-to-setting-up-mac/blob/master/README.md 原文链接:https://juejin.im/entry/58ca60d461ff4b006018aa2f Awesome Mac:https://github.com/jaywcjlove/...

Flask-爱家租房项目ihome-01-项目框架的搭建

项目介绍 该项目是一个简易版的租房平台项目, 房东可以在平台上发布自己的房源, 房客可以搜索心仪的房源并进行一定时间的租赁. 主要功能模块包括用户模块(注册/登录/个人信息), 租房首页, 房屋列表页,房屋详情页, 房屋预订页, 支付宝支付等. 该项目属于不完全的前后端分离, 前端使用的是html+css+jquery, 后端使用的是flask框架, 后端...

《马哥出品高薪linux运维教程》wingkeung学习笔记-linux基础入门课程

计算机原理概念: 1、CPU和内存中的存储单元通信线路称为总线(BUS),总线是被指令和数据复用的,所以也称为前端总线。 2、计算机中计算频率的时间标准即晶体振荡器原理,精确计算时间长度,根据相同的时间统计变化的次数,即保持时钟同步。 3、每一个芯片在厂家生产时都有一个以微码(汇编语言)形式存在内置接口,完成一定意义上的智能操作。 4、CPU中控制器在未从...