网上有数百个可在Aruduino中使用的库,这些代码集使得我们无需从0-1地搭建我们所需功能,这使得学习和使用Arduino变得更加方便简单。除此之外,平时直接从网上download下的代码也很有可能因为相应包没下载而报错。本篇以eFLL(embedded fuzzy logic library)为例,带大家手把手地进行库的下载和使用,并针对相关库的一些注意事项进行了简单说明。

一、库文件的简单介绍

1. 如何下载库文件?(以eFLL为例)

2. 如何安装/导入库(eFLL)文件?

二、Arduino中管理库文件的三个位置

1. Arduino IDE安装时的文件夹

2. Arduino的核文件夹

3. 项目文件夹

4. 这三个位置的差异

一、库文件的简单介绍

一般情况下,库以.ZIP的文件封装,解压.ZIP文件后,里面有各种相关的示例,测试文件以及底层代码可供深入了解和学习。eFLL是Arduino平台提供的用于嵌入式系统(比如Arduino或NodeMCU)中实现模糊系统的标准库,并且跟所有的Arduino板适配。下图是eFLL的库文件,可以看到examples和tests文件夹和一些二其它文件,尤其是examples里的文件,对刚接触到某个新库的同学们是来说真的是非常非常有用的。

需要注意的是,这些库并非是一成不变的,而是逐步迭代的,所以存在一个库有多个版本存在的情况,比如这个eFLL目前就有五个版本,分别为1.3.1(最新),1.3.0,1.2.0,1.1.1和1.1.0。

1. 如何下载库文件?(以eFLL为例)

(1)eFLL的.zip文件(1.3.11.3.01.2.01.1.11.1.0),点击下载对应版本

(2)在特定项目在GitHub的官方页(https://github.com/zerokol/eFLL)中直接下载.ZIP文件。

(3)bd云盘方式:

链接:https://pan.baidu.com/s/1YQfpoF-0C6e5n1DpA6BSeg
提取码:shd9

2. 如何安装/导入库(eFLL)文件?

(1)使用库管理器(library mananager) (这种方法无需用到下载的.ZIP文件)

a 项目-加载库-管理库; b 在弹出来的“库管理器”中搜索“eFLL”,找到你需要的版本(没有限制就选择最新的)并点击“安装”即可。

(2)添加.ZIP文件

在Arduino IDE中单击项目-加载库-添加.ZIP库,选择下载好的库文件即可

(3)手动安装库(了解即可,用的比较多的还是前两种方法)

在Arduino IDE中打开文件-首选项,查看项目文件夹(sketchbook)位置,在这个文件夹中有个libraries文件夹,把.ZIP解压缩后的所有文件(为了安全起见,请把文件夹的名称改成eFLL),放到这里即可。

操作完成后重启Arduino IDE,点击项目(sketch)-加载库(include library),查看是否显示你刚刚添加的库。

二、Arduino中管理库文件的三个位置

在这里需要说明一下这个库放置的位置。在Arduino中,库可以有三种方式存放,也就是有位于3个不同位置存放有libraries文件夹:(1)Arduino IDE安装的文件夹(2)Arduino的核文件夹(3)项目文件夹。以上三种安装库的方式中,除了最后一种库导入方式使得库的位置具有选择性,前两种的库的位置可在项目文件夹中libraries中找到。

1. Arduino IDE安装的文件夹(也叫distribution folder,分发文件夹)

这个文件夹就是你在安装Arduino过程中的目标文件夹。下载完毕后,打开相应文件夹可看见libraries文件夹。

(插一个小疑惑:一开始我怎么都找不到Arduino IDE安装的文件夹,我就开始搜索关键词,搜索逻辑是既然arduino IDE可以在我的电脑上运行,那必定是存在一个.exe文件;既然我的IDE里的examples里的内置示例都可以查看,那电脑中也应该存在以对应.ino命名的文件,使用了“arduino.exe”,“examples”等很多关键词搜索,但都一无所获,也没法找到软件的属性。后来我发现我的IDE上有“Windows Store字样”,这才想起来这可能是我当时直接从微软商店里下载的。

我从官网上又下载了arduino的可执行文件并安装,发现我想要的东西就都有了,并且这两个IDE可以同时运行。

但我还是疑惑微软商店里下载的为什么就找不到安装位置。如果知道的朋友们可以解答一下,那真的太感激不过了~~)

2. Arduino的核文件夹(core folder):

这个核(core)说白了就是让你的板子和微处理器及相关项目和库适配,想用不同的板子你就得有对应的的核。从Arduino Software (IDE) version 1.6.2开始,所有Arduino AVR板都保存在“Arduino”安装文件夹中(Windows默认为C:\Program Files (x86)\Arduino\hardware\arduino\ AVR)。

然而,其它的板子需要安装一个额外对应的核,并存储在电脑的一个其它的文件夹。一般通过在Arduino IDE中的“开发板管理器”添加对应板子的核,这也是检查和更新已安装核心版本的最佳方式。下面这个目录列表是新的核心文件在计算机中的位置

On GNU/Linux: ~/.arduino15/packages/

On Windows: %APPDATA%\Arduino15\packages\

On macOS: ~/Library/Arduino15/packages/

在Windows上,如果你在Arduino主文件夹中创建一个名为“portable”的文件夹,所有的包、库和草图都会存储在这儿,这样就可以把所有东西都放在一个地方,方便移动或同步。

下图是我的电脑所安装的位置,可以看出我额外为这三个板子下载了相关文件。

打开ESP8266的文件来看看库在哪里~

3. 项目文件夹中的libraries文件夹

4. 这三个位置的差异

通常来说,不管你项目需要的库在哪个位置,都可以正常运行,但这三个位置还是有一些不同特性:

(1)项目文件夹 vs 分发文件夹; 项目文件夹 vs 核文件夹:在项目的编译期间,如果你需要的库在分发文件夹(Aruduino安装时文件夹)里,同时你项目文件夹中的“libraries”文件夹中放置了同样的库,无论版本高低都会使用项目文件夹中的库文件。同理适用于核文件夹和项目文件夹的库,项目文件夹的库也会覆盖。

(2)核文件夹 vs IDE分发文件夹中的库  当的的板选择一个特定的核心时,将使用核文件夹中出现的库,而不是IDE分发文件夹中出现的相同库。

(3)建议库只安装于项目文件夹(第3种方式)中,因为Arduino IDE在自动升级过程中,Arduino(或安装IDE的文件夹)中的所有文件被删除,并创建一个新的文件夹与新内容。如果你的库都在项目文件夹中,它与IDE文件夹不在一个位置,这样它们就不会在Arduino IDE更新过程中被删除啦

就是这些啦!有什么问题可以在评论区留言哦~~ 希望这些总结的知识可以给你们带来哪怕一些些的帮助啦,方便的话可以要求一个赞鼓励一下嘛,hhh

参考文章:

https://support.arduino.cc/hc/en-us/articles/360012076960-Where-are-the-installed-cores-located-

https://www.arduino.cc/en/guide/cores

https://www.arduino.cc/en/Guide/Libraries

如何安装/导入Arduino库文件及库文件的不同位置与区别(以eFLL中嵌入式模糊逻辑库为例)的更多相关文章

  1. cocos项目导入其它源文件时加入依赖库时,头文件提示找不到文件夹中的文件

    cocos项目导入其它源文件时加入依赖库时,头文件提示找不到文件夹中的文件解决方法: 选择项目属性->c/c++->常规,在附加包括项目中加上对应的文件夹 cocos test项目的库(所 ...

  2. 安卓---下拉刷新---上拉加载---解决导入library等自生成库文件失败的问题

    本文的下拉刷新以及上拉加载都是用PullToRefresh实现的,关于PullToRefresh的介绍以及源码,网上可以找到很多,本人在此不再赘述. PullToRefresh是一套实现非常好的下拉刷 ...

  3. ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密

    JSPatch ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入.和使用..js文件传输加解密 ios开发面临审核周期长,修复bug延迟等让人无奈的问题,所以 ...

  4. maven的安装、路径配置、修改库文件路径和eclipse中的配置、创建maven工程。

    注:本文来源于:杨四郎2018  <maven的安装.路径配置.修改库文件路径和eclipse中的配置.创建maven工程> 一.maven的安装 首先,先到官网去下载maven.这里是官 ...

  5. .h头文件 .lib库文件 .dll动态库文件之间的关系

    .h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够 ...

  6. Python学习笔记011_模块_标准库_第三方库的安装

    容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...

  7. Rime中州韵导入极点五笔词库(附:自制词库)

    前言 之前写了一篇文章,[输入法]Rime-中州韵 基本设置 附:官方定制指南,其中导入词库这一块引用其它博主的文章,最近发现那个工具链接已经过期了,参考了百度贴吧的说明,不要直接使用工具去导入会更好 ...

  8. 详解UE4静态库与动态库的导入与使用

    转自:http://blog.csdn.net/u012999985/article/details/71554628 一.基本内容概述   最近做项目时经常看到build.cs文件,就想研究一下UE ...

  9. .h头文件 .lib库文件 .dll动态链接库文件关系

    .h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够 ...

  10. gcc编译时头文件和库文件搜索路径

    特殊情况:用户自定义的头文件使用#include"mylib"时,gcc编译器会从当前目录查找头文件 一.头文件 gcc 在编译时寻找所需要的头文件 :    ※搜寻会从-I开始( ...

随机推荐

  1. bx, bp, si, di寄存器的使用规则

    首先,都可以单独使用. 另外,组合使用的情况下: 记住这张图片就行了=_= 意思就是,bx只能和si,di组合.bp只能和si,di组合.

  2. HTML控件篇 -- input

    1. 取消input提示框及自动填充: <input type="text" autocomplete="off" /> 处理chrome下自动填充 ...

  3. java中的内存一般分成几部分?

    java中的内存被分成以下四部分: ①.代码区  ②.栈区  ③.堆区   ④.静态区域 栈区:由编译器自动分配释放,存放函数的参数值.局部变量的值等:具体方法执行结束后,系统自动释放JVM内存资源 ...

  4. (剑指Offer)面试题29:数组中出现次数超过一半的数字

    题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  5. webstorm git团队开发技巧总结(一)

    ---恢复内容开始--- 1.git查看和修改用户名,邮箱 用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变.每次commit都会用用户名和邮箱记录. (1)查看用户名和地址 git ...

  6. FileReader读取本地文件

    FileReader是一种异步读取文件机制,结合input:file可以很方便的读取本地文件. 一.input:type[file] file类型的input会渲染为一个按钮和一段文字.点击按钮可打开 ...

  7. Argument 1 passed to Illuminate\Auth\SessionGuard::login() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\User given,

    使用laravel内置的注册认证系统,注册账号,提示如下错误.Google之后,发现github的一个答案,解决了.分享一下 Argument 1 passed to Illuminate\Auth\ ...

  8. AJPFX简评:MT5平台

    MetaTrader 5全面改进的图表和扩展的功能 MetaTrader软件开发商在MT4获得全球交易商全面好评之后,又再次研发推出了更为先进的MT5交易软件.   MT5的主要特征●改进的图表和即时 ...

  9. 【BZOJ1280】Emmy卖猪pigs 最大流

    [BZOJ1280]Emmy卖猪pigs Description Emmy在一个养猪场工作.这个养猪场有M个锁着的猪圈,但Emmy并没有钥匙.顾客会到养猪场来买猪,一个接着一个.每一位顾客都会有一些猪 ...

  10. 序列化的两个模块(json和pickle)

    到底什么是序列化(picking)呢? 我们把变量从内存中变成可存储或传输的过程称之为序列化 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. 反过来,把变量内容从序列化的对 ...