在哪里可以找到所有可用Arduino库的中央存储库?


11

目前; 当我使用一些新硬件开始新的Arduino项目时,我要做的第一件事是寻找能够为该硬件带来Arduino支持的第三方库。

我看的第一个地方是:

通常,我找不到支持库,也找不到位于不同位置,文档级别不同,测试级别不同的几个不同的库(很少找到一个)。

找到所需的库后(有时我需要尝试几个库),将其下载到Arduino库文件夹中,使用它后我就忘了。

我发现此过程很麻烦:

  • 手动搜索有多种可能的选择,但记录并不总是很好
  • 手动下载并安装到Arduino库
  • 进程中没有版本控制(库的所有版本都具有相同的名称,因此无法在Arduino库文件夹中共存)。

我希望有一个包含arduino所有可用库的中央存储库,其中包括:

  • 说明(支持的硬件,支持的板)
  • 源代码
  • 文件资料
  • 版本

还有一个在项目构建时访问此存储库的工具(Arduino IDE或外部)。

A类Maven的实际上是Arduino的。

我曾经在Arduino论坛上看到过几次讨论,但似乎没有成功:

还有其他选择可以使某些东西可用(来自社区还是个人,为什么不可以)?


如果有人需要另一种语言的类似物,则与Python中的PyPi pypi.python.org/pypi和virtualenv 相似。
Cyber​​gibbons

另一个很好的来源是PJRC pjrc.com/teensy/td_libs.html
Cyber​​gibbons,2014年

有人告诉我,标签Wiki是创建此类数据库的好地方。约35,000个字符应提供足够的空间来开发非常全面的列表。
asheeshr 2014年

@AsheeshR为什么不呢?但是首先,要定义每个库条目的要求(以及可选的)的清晰描述,以便每个添加的条目都可以遵循此3template3。
jfpoilpret 2014年

@jfpoilpret这是Arduino Meta讨论的主题。
asheeshr 2014年

Answers:


4

您刚刚描述了我正在为之工作的公司正在尝试解决的问题。我们最近发布了一种名为biicode的产品。看来正是您要找的东西。

biicode既是代码的在线中央存储库,又是具有以下功能的客户端工具:

  • 初学者易于使用,可为更高级的用户配置
  • 依赖关系解析(与maven一样)可传递,但没有配置文件:直接从源代码读取依赖关系。
  • 中央存储库,任何人都可以上传其库。可以在网络中对其进行浏览,导航和发现
  • 版本控制:它检查版本兼容性,并允许对依赖项进行安全更新
  • 您可以将其与任何文本编辑器一起使用(它具有可选的Eclipse支持)
  • 它管理项目的设置和编译,将生成的固件刷新到板上
  • 它有一个不错的串行监视器作为一个加号

您可以在此处查看快速演示并在文档中阅读更多内容


回答2014年,其2018年仍在生产中?
parohy

不,现在是jfrog的conan.io,并且不知道它是否再支持arduino
hithwen



2

如果您想自己创建这样的注册表,则可能需要看看Node.js的包管理器npm,它是开源的,并且在范围上与您要描述的非常相似。Npm都是:

  1. 中央注册表,其中包含有关每个库的元数据:
    • 名称,描述,关键字,主页,作者,贡献者
    • 版本号,原则上符合语义版本控制
    • 源存储库的URL(svn,git,github,gitlab,bitbucket ...)
    • 兼容性信息(在这种情况下,它是关于Node版本的)
    • 执照
    • 依存关系
  2. 一个用于以下目的的命令行工具:
    • 搜索注册表
    • 按照其依赖关系递归下载和安装软件包
    • 在注册表上发布和更新自己的软件包。

例如,参见流行库的页面,以及保存其元数据的JSON文件


1

空无一人。不幸的是,您将必须手动搜索感兴趣的每个库。

如果您有兴趣创建这样的中央存储库,虽然它很棒,但是这不是在其中进行操作的正确论坛。


那么,如果我们要创建这样的存储库,您会提出什么建议?
jfpoilpret 2014年

嗯...开始吧?你是什​​么意思建议?它基本上是一个网站。如果您确实喜欢arduino文本编辑器,也许可以添加一个软件包管理器?与往常一样,主要的问题是使人们实际使用它。
康纳·沃尔夫

1
坦白说,即使您在arduino文本编辑器中添加了fancypants软件包管理器,我也不知道您将采用哪种采用方式,因为arduino编辑器太糟糕了,人们倾向于在相当短的时间内停止使用它。这样,您几乎需要一个单独的程序包管理器,所以我几乎只想说一个基本的网站是最好的选择,该网站带有库索引,简短的内容以及指向它们实际托管位置的链接。
康纳·沃尔夫

这也是我的想法,目的不是托管库,而是保留对它们的引用以及有用的元数据。关于Arduino IDE,我同意,我不经常使用它,但是以后应该很容易将其与外部工具集成。
jfpoilpret 2014年

@jfpoilpret-外部工具的问题是,与程序包管理器一样,依赖关系解析和版本需求管理。arduino人们似乎并不因维护向后兼容性而感到困扰,并且许多库都需要“ arduino verson {blah}”。我真的认为最好是参考列表。任何更复杂的内容都可以在以后出现。
康纳·沃尔夫

0

在大多数OS存储库中,都将Arduino IDE和相关库作为可安装软件提供。不幸的是,这些存储库中的版本通常已经过了几个月甚至几年。这似乎是真正的问题在于,使OS存储库管理器在新版本可用时将其合并。

当您的操作系统版本尚未更新到最新版本时,此问题会更加严重,因为这会迫使您使用过时的软件存储库。

虽然这不是一个完美的答案,但您可能应该确保使用的是最新版本的OS,然后鼓励该OS的存储库管理器集成最新版本的Arduino IDE。

一种替代方法是转到Arduino.org主页,并按照说明下载并安装最新的IDE和关联的库。这可能是.tar.gz文件的形式,因此您将需要知道如何解压缩,解压缩和构建必要的软件。


0

我认为,您的愿望不会实现。我希望如此,因为所有Arduino库中只有一个地方,不允许有任何库,所有这些库都将被迫接受质量,测试和文档(+代码质量,有效性和可读性)的所有商业标准。意思是,只有专业人士和具有类似资格的团队才能被允许发布一些Arduino库,并且全部由一个实体来管理,这将强制删除功能上重复的或类似的库。这样的实体或多或少会变得邪恶。

我喜欢Arduino,因为它是免费的,这也意味着,我可以自由地编写库来支持某些硬件(我想要使用的)的某些功能(我想使用),这些功能我已经计划购买或想要自己动手,甚至还很出色实验性的,也许不稳定,但对我来说很有趣)。

在您的大中央机构有效的情况下,我会选择另一个免费的平台,而不是因为我玩电子产品的爱好并被迫为自己的工作而不是我的目标而不是完美且获得商业认证的结果而被起诉。

而且,如果您的Big Central Athority不会强迫我为他们强迫进行免费的工作,那么您将如何对我的图书馆进行一些特殊用途的通用硬件配置,并与我共享给任何想要的人,即使它没有完全解决专业上的所有HW功能,并且仅记录大量文档,以至于我愿意花自己的空闲时间来处理文档。而且如果针对同一硬件会出现另一个库,该库将启用功能的另一部分,或使用另一种API和另一种方法来解决整个问题,该怎么办?

也就是说,我购买了一些多7段模块,并且从制造商那里获得了“官方库”。我为同一模块制作了另一个库。现在怎么办?我的图书馆应该作为“该硬件的唯一一个图书馆”在中央存储库中吗?还是应该有“制造商的官方图书馆”?请注意,如果同时存在这两个库,则会破坏您请求的“一个且只有一个”库点。如果不允许制造商使用,那么“唯一的制造商”将缺少许多功能,例如数字的集成缓冲区,简单的对象接口,简单的示例,如何使用它,并且将很难依赖一个特定的计时器和通用计时器非对象,只是功能性API,它要求用户以某种方式将整数分解为个位数-听起来不太好。如果您不允许使用我的库,那么用户将拥有上述内容,但是他的显示每秒仅刷新10次,同时闪烁并留下其他数字的重影,而充分利用处理器,并且文档主要是中文的。用户几乎没有使用处理器,漂亮的数字和字符(可能也是用户定义的)而错过了每秒100倍的刷新率。-也不好

在当前混乱的状态下,用户(也许您或其他任何人)都可以使用该库,该库更适合其需求(无论是简单性和本机整数支持,还是干净的快速刷新和低CPU使用率),或者将两者结合在一起,快速刷新,简单的整数操作以及用户定义的字符集,漂亮的对象API和丰富的文档,使其排名第三。它只需要一个人的时间和奉献精神,使初学者和一些英语技能以及对象的基本知识以及“官方Arduino库”的打包方式变得很容易,因此IDE可以轻松导入它们。(这样的人应该这样做,并将其贡献给Arduino库打包程序)。

我不会这样做-因为我的需求是功能API更好,更简单地使用,从内存中占用更少的字节,更少的CPU周期,而且我不希望以我不会使用的方式来改进库。另外,我不使用Arduino IDE,而是使用简单的Makefile来构建和上传程序,因此我可以轻松使用出色的文本编辑器(在我的情况下为vim),而不必与IDE-Notepad-parody战斗。

在Big Central Authority为您的模型提供支持的情况下,我根本不会在意使用Arduino,而且您会完全受制于中文版本(因为缺少良好的英语文档和正确的软件包格式,因此它也不会出现在中文版中) 。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.