Где я могу найти центральное хранилище всех доступных библиотек Arduino?


11

В настоящее время; когда я запускаю новый проект Arduino с каким-то новым оборудованием, первое, что я делаю, - это ищу сторонние библиотеки, которые поддерживают Arduino для этого оборудования.

Первые места, которые я смотрю:

Обычно я не нахожу библиотеку поддержки или несколько разных библиотек (очень редко можно найти только одну) в разных местах с разными уровнями документации, разными уровнями тестирования ...

Как только я нашел нужную библиотеку (иногда мне нужно попробовать несколько), я загружаю ее в свою папку библиотек Arduino, использую ее и забываю.

Я считаю этот процесс громоздким:

  • ручной поиск с различными вариантами, не всегда хорошо документирован
  • загрузка вручную и установка в библиотеки Arduino
  • в процессе отсутствует управление версиями (все версии библиотеки имеют одинаковые имена и, следовательно, не могут сосуществовать в папке библиотеки Arduino).

Я хотел бы, чтобы был центральный репозиторий со всеми доступными библиотеками для Arduino, с:

  • описание (поддерживаемое оборудование, поддерживаемые платы)
  • исходный код
  • документация
  • версии

И инструмент (Arduino IDE или внешний) для доступа к этому хранилищу во время сборки проекта.

На самом деле это своего рода Maven для Arduino.

Я видел несколько дискуссий, когда-то происходивших на форуме Arduino, но, похоже, они ни к чему не привели:

Существуют ли другие варианты, которые делают его пригодным для использования (от сообщества или отдельных лиц, почему бы и нет)?


Это будет похоже на PyPi pypi.python.org/pypi и virtualenv в Python, если кому-то нужен аналог на другом языке.
— Cybergibbons

Еще один хороший источник - PJRC pjrc.com/teensy/td_libs.html
— Cybergibbons,

Что-то подсказывает мне, что библиотечный тег wiki будет хорошим местом для создания такой базы данных. ~ 35 000 символов должны предоставить достаточно места для составления очень полного списка.
— asheeshr

@AsheeshR почему бы и нет? Но сначала необходимо определить четкое описание того, что требуется (и что является необязательным) для каждой записи библиотеки, чтобы этот 3template3 мог соблюдаться для каждой добавленной записи.
— jfpoilpret

@jfpoilpret Это тема для обсуждения Arduino Meta .
— asheeshr

Ответы:


4

Вы только что описали проблемы, которые пытается решить компания, в которой я работаю. Недавно мы выпустили продукт под названием biicode . Кажется, именно то, что вы ищете.

biicode является центральным онлайн-хранилищем кода и клиентским инструментом, который имеет:

  • Простой в использовании для начинающих, настраивается для более опытных пользователей
  • Разрешение зависимостей, транзитивно, как это делает maven, но без конфигурационных файлов: считывает зависимости напрямую из исходного кода.
  • Центральный репозиторий, любой желающий может загрузить свои библиотеки. Их можно исследовать, перемещаться и обнаруживать в Интернете.
  • Контроль версий: он проверяет совместимость версий и позволяет безопасно обновлять зависимости
  • Вы можете использовать его с любым текстовым редактором (он имеет дополнительную поддержку Eclipse)
  • Управляет настройкой и компиляцией проекта, мигает сгенерированную прошивку на плату
  • У этого есть хороший последовательный монитор как плюс

Вы можете увидеть быстрое демо здесь и прочитать больше в документации .


Ответил 2014, его 2018 все еще в производстве?
— Parohy

Нет, теперь conan.io от jfrog и не знаю , если он поддерживает Arduino больше
— hithwen

4

Поскольку этот вопрос был задан впервые, в Arduino IDE теперь есть менеджер библиотек Arduino. Там вы можете искать и устанавливать библиотеки.

Здесь есть информация о том, как работает менеджер библиотеки: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ

Однако официального сайта, где перечислены библиотеки, нет, поэтому я недавно создал этот неофициальный сайт на основе тех же данных, что и в Arduino Library Manager:

http://www.arduinolibraries.info/


3

Arduino площадка LibraryList и стандартный список библиотек , как представляется, официальные страницы для этого.


Да, но они представляют собой просто небольшую документацию со ссылками на библиотеки и, по-видимому, следуют принципу «наилучших усилий», приводящему к чему-то, что выглядит как беспорядок, если мы хотим использовать его из какого-то менеджера пакетов.
— jfpoilpret

2

Если вы хотите создать такой реестр самостоятельно, вы можете взглянуть на npm , менеджер пакетов Node.js , с открытым исходным кодом и очень похожий по объему, который вы хотите описать. Npm это оба:

  1. центральный реестр с метаданными о каждой библиотеке:
    • имя, описание, ключевые слова, домашняя страница, автор, авторы
    • номер версии, в принципе соответствующий семантическому версионированию
    • URL исходного хранилища (svn, git, github, gitlab, bitbucket ...)
    • информация о совместимости (в данном случае речь идет о версиях Node)
    • лицензия
    • зависимости
  2. инструмент командной строки для:
    • поиск в реестре
    • загрузка и установка пакетов, рекурсивно следуя их зависимостям
    • публикация и обновление ваших собственных пакетов в реестре.

Посмотрите, например, страницу популярной библиотеки и файл JSON, содержащий ее метаданные.


1

Здесь ничего нет. К сожалению, вам придется вручную искать каждую интересующую вас библиотеку.

Если вы заинтересованы в создании такого центрального хранилища, хотя это было бы замечательно, это не тот форум, на котором это можно сделать.


Тогда что бы вы посоветовали, если бы мы создали такой репозиторий?
— jfpoilpret

Эээ .... начать? Что значит советовать? Это в основном веб-сайт. Может быть, добавить менеджер пакетов в текстовый редактор Arduino, если вы действительно были в этом заинтересованы? Главная проблема, как всегда, заключается в том, чтобы заставить людей реально использовать его.
— Коннор Вольф

1
Честно говоря, даже если вы добавите менеджер пакетов фантазии в текстовый редактор Arduino, я не знаю, какое усыновление вы получите, потому что редактор Arduino ужасен , и люди, как правило, перестают использовать его в довольно короткие сроки. , Таким образом , вы бы почти нужен отдельный менеджер пакетов, так что я почти так сказать , основной веб-сайт с индексом библиотек, короткой аннотацией и ссылками на , где они на самом деле организовано является лучшим выбором.
— Коннор Вольф

Это была моя идея, цель не в том, чтобы разместить библиотеки, а в том, чтобы хранить ссылки на них вместе с полезными метаданными. Что касается Arduino IDE, я согласен, я использую его не очень часто, но внешний инструмент должен легко интегрироваться с ним позже.
— jfpoilpret

@jfpoilpret - проблема с внешним инструментом, как и с менеджерами пакетов, разрешением зависимостей и управлением требованиями к версии. Людей из Arduino не слишком беспокоит поддержание обратной совместимости, и многим библиотекам требуется «arduino verson {blah}». Я действительно думаю, что просто список ссылок - лучшая ставка. Любые более сложные вещи могут прийти позже.
— Коннор Вольф

0

Arduino IDE и связанные библиотеки включены как устанавливаемое программное обеспечение в большинство репозиториев ОС. К сожалению, версии в этих репозиториях обычно устарели на несколько месяцев или даже лет. Казалось бы, настоящая проблема заключается в том, чтобы заставить менеджеров репозитория ОС включать новые выпуски по мере их появления.

Эта проблема усугубляется, когда ваша версия ОС не была обновлена ​​до последней версии, потому что это заставляет вас использовать устаревший репозиторий программного обеспечения.

Хотя это и не идеальный ответ, вам, вероятно, следует убедиться, что вы используете последнюю версию своей ОС, а затем рекомендовать менеджерам репозитория для этой ОС включить последнюю версию Arduino IDE.

В качестве альтернативы можно перейти на домашнюю страницу Arduino.org и следовать инструкциям, чтобы загрузить и установить последнюю версию IDE и связанных библиотек. Вероятно, это будет файл в формате .tar.gz, поэтому вам нужно знать, как разархивировать, распаковать и собрать необходимое программное обеспечение.


0

Я думаю, что ваше желание не сбудется. Я надеюсь на это, потому что наличие только одного места для всех библиотек Arduino, без каких-либо библиотек, которых там не будет, и все эти библиотеки будут вынуждены соответствовать всем коммерческим стандартам качества, тестирования и документации (+ качество кода, эффективность и читаемость). означает, что только профессионалы и аналогичные квалифицированные команды будут иметь право публиковать некоторую библиотеку Arduino, и все это будет управляться одним единым целым, что приведет к удалению функционально дублированных или похожих библиотек. И такое существо станет сонером или позже станет злом.

Мне нравится Arduino за то, что он бесплатный, и это также означает, что я свободен в написании библиотеки для поддержки некоторых функций (которые я хочу использовать) некоторого оборудования (которое у меня есть, я планирую купить или хочу сделать самостоятельно - даже очень высоко экспериментально и, возможно, нестабильно, но весело для меня).

Учитывая эффективность вашего Центрального центрального управления, я бы просто выбрал другую бесплатную платформу, а не получил бы иск за меньший, чем идеальный и коммерчески сертифицированный результат моего увлечения игрой с электроникой и принуждения к работе, а НЕ к моим целям в МОЕ свободное время.

И если ваш Big Central Athority не заставит меня принуждать их к бесплатной трудовой работе, то что вы будете делать с моей библиотекой, позволяющей одно специальное использование некоторого общего оборудования, и со мной, когда я делюсь ею с кем угодно, даже если это не так? полностью решить все функциональные возможности HW в профессиональном плане и задокументировано настолько, насколько мне будет удобно тратить свое свободное время на документирование. А что, если бы возникла еще одна библиотека для того же HW, которая включала бы другую часть функциональности или использовала бы другой API и другой подход ко всему проблемному?

А именно, я купил мульти-7-сегментный модуль, и у его производителя была «официальная библиотека». Я сделал другую библиотеку для того же модуля. Что теперь? Должна ли моя библиотека находиться в Центральном репозитории как «единственная библиотека для этого HW» или там должна быть «официальная библиотека от производителя»? Обратите внимание, что если бы они были оба, это сломало бы запрашиваемую «одну и только одну» библиотечную точку. Если вы откажетесь от производителя, то «единственному» будет не хватать многих функций, таких как встроенный буфер для чисел, простой объектный интерфейс, простой пример, как его использовать, и будет жесткая зависимость от одного конкретного таймера и универсального необъектный, просто функциональный API, который потребовал бы, чтобы пользователь как-то разбивал целые числа на однозначные числа - звучит не слишком хорошо. Если вы запретите мою библиотеку, то у пользователя будет вышеупомянутое, но его дисплей будет обновляться только 10 раз в секунду, мигая и оставляя призраки других цифр повсюду, при полном использовании процессора, и документация будет в основном на китайском языке. И пользователь будет пропускать частоту обновления 100x в секунду практически без использования процессора, хороших чистых цифр и символов (потенциально также определяемых пользователем). - Тоже не хорошо.

В текущем состоянии хаоса пользователь (может быть, вы или кто-либо еще) может использовать библиотеку, которая лучше подходит для его нужд (будь то простота и встроенная целочисленная поддержка или чистое быстрое обновление и низкая загрузка ЦП) или объединить их вместе, третье место с быстрым обновлением и простыми целочисленными манипуляциями и пользовательским набором символов, с красивым API объекта и богатой документацией. Требуется только один человек, у которого есть определенное время и самоотдача, которые помогут новичкам, некоторым знаниям английского языка и базовым знаниям об объектах, а также о том, как упакованы «официальные библиотеки Arduino», поэтому среда IDE может легко их импортировать. (И такой человек должен сделать это и передать его в библиотечный пакет Arduino).

Я бы этого не делал - для моих нужд функциональный API гораздо лучше и проще в использовании, занимает меньше байтов из памяти и меньше циклов ЦП, и у меня нет желания улучшать библиотеку способами, которые я бы не использовал. Также я не использую Arduino IDE, я использую простой Makefile для сборки и загрузки программ, поэтому я могу легко использовать хороший текстовый редактор (в моем случае vim) и не бороться с пародией IDE-Notepad.

Под управлением Big Central Authority для вашей модели я бы не заботился об использовании Arduino вообще, и вы застрянете с китайской версией, если таковая вообще есть (так как она не сможет сделать это из-за отсутствия хорошей английской документации и надлежащего формата пакета) ,


0

http://downloads.arduino.cc/libraries/library_index.json предоставляет список всех библиотек, доступных в Arduino Library Manager.

Я использовал этот файл для создания https://github.com/scls19fr/arduino_libraries_search Это скрипт Python Pandas для поиска библиотек Arduino, соответствующих некоторым ключевым словам, и для вывода в файл Excel

Вы также можете найти библиотеки Arduino, используя:

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.