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

11

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

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

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

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

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

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

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

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

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

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

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

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

jfpoilpret
источник
Это будет похоже на 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)
  • Управляет настройкой и компиляцией проекта, мигает сгенерированную прошивку на плату
  • У этого есть хороший последовательный монитор как плюс

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

hithwen
источник
Ответил 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/

njh
источник
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 вообще, и вы застрянете с китайской версией, если таковая вообще есть (так как она не сможет сделать это из-за отсутствия хорошей английской документации и надлежащего формата пакета) ,

gilhad
источник
0

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

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

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

SCLS
источник