Де я можу знайти центральне сховище всіх доступних бібліотек Arduino?


11

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

Перші місця, на які я дивлюсь:

Як правило, я не знаходжу ні бібліотеки підтримки, ні декількох різних бібліотек (досить рідко можна знайти лише одну) в різних місцях з різним рівнем документації, різним рівнем тестування ...

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

Я вважаю цей процес громіздким:

  • ручний пошук з різними можливими варіантами, не завжди добре задокументований
  • завантаження та встановлення вручну в бібліотеки Arduino
  • відсутність контролю версій у процесі (всі версії бібліотеки мають те саме ім'я, і ​​тому не можуть співіснувати у папці бібліотеки Arduino).

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

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

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

Справді, якась мавен для Ардуїно насправді.

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

Чи є інші варіанти, які робляться для чогось корисного (від громади чи окремих людей, чому б і ні)?


Це буде схоже на PyPi pypi.python.org/pypi та virtualenv в Python, якщо комусь потрібен аналог іншою мовою.
Кібергібони

Ще одне хороше джерело - PJRC pjrc.com/teensy/td_libs.html
Cybergibbons

Щось говорить про те, що wiki тегів бібліотеки було б гарним місцем для створення такої бази даних. ~ 35 000 символів повинні забезпечити достатньо місця для розробки дуже вичерпного списку.
asheeshr

@AsheeshR чому б і ні? Але спочатку слід визначити чіткий опис того, що потрібно (а що є необов’язковим) для кожного запису бібліотеки, щоб цей 3template3 міг дотримуватися для кожного доданого запису.
jfpoilpret

@jfpoilpret Це тема для дискусії з Arduino Meta .
asheeshr

Відповіді:


4

Ви тільки що описали проблеми, які намагається вирішити компанія, над якою я працюю. Нещодавно ми випустили на ринок продукт під назвою бікод . Здається, саме те, що ви шукаєте.

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

  • Легкий у використанні для початківців, налаштовується для більш досвідчених користувачів
  • Розв’язання залежностей, перехідно, як Maven, але без конфігураційних файлів: читає залежності безпосередньо з вихідного коду.
  • Центральний сховище, кожен може завантажити свої бібліотеки. Їх можна досліджувати, орієнтувати та виявляти в Інтернеті
  • Контроль версій: він перевіряє сумісність версій і дозволяє безпечно оновлювати залежності
  • Ви можете використовувати його з будь-яким текстовим редактором (у ньому є додаткова підтримка затемнення)
  • Він управляє налаштуваннями та компіляціями проектів, спалахує сформоване програмне забезпечення на платі
  • Він має приємний серійний монітор як плюс

Ви можете побачити швидкий демо тут і далі в документації .


Відповів 2014 рік, його 2018 рік ще у виробництві?
парохій

Ні, зараз conan.io від jfrog і не знаю, чи підтримує він більше
ардуїно

4

Оскільки вперше було задано це запитання, тепер у Arduino IDE вбудований менеджер бібліотеки Arduino. Там ви можете шукати та встановлювати бібліотеки.

Тут представлена ​​інформація про те, як працює менеджер бібліотеки: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ

Однак не існує офіційного веб-сайту з переліком бібліотек, тому я нещодавно створив цей неофіційний сайт на основі тих же даних у менеджера бібліотеки Arduino:

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 verson {blah}". Я дійсно вважаю, що саме список посилань - найкраща ставка. Будь-які складніші речі можуть з’явитися пізніше.
Коннор Вольф

0

Arduino IDE та пов'язані з ним бібліотеки включені як програмне забезпечення, що встановлюється, у більшості сховищ ОС. На жаль, версії в цих сховищах зазвичай застаріли на кілька місяців або навіть років. Здається, справжня проблема полягає в тому, щоб менеджери репозиторіїв ОС включили нові випуски, коли вони стануть доступними.

Ця проблема ускладнюється, коли версія Вашої ОС не була оновлена ​​до останнього випуску, оскільки це змушує вас використовувати застаріле сховище програмного забезпечення.

Хоча це не є ідеальною відповіддю, ви, мабуть, повинні переконатися, що ви використовуєте останню версію вашої ОС, а потім заохочуйте менеджерів сховищ для цієї ОС включати останню версію Arduino IDE.

Альтернативою було б зайти на головну сторінку Arduino.org і дотримуватися інструкцій щодо завантаження та встановлення останньої IDE та пов’язаних з нею бібліотек. Це, ймовірно, буде у вигляді файлу .tar.gz, тож вам потрібно знати, як розпакувати, розібрати та створити необхідне програмне забезпечення.


0

Я думаю, що ваше бажання не здійсниться. Я сподіваюсь на це, адже маючи лише одне місце для всіх бібліотек Ардуїно, без бібліотек, яких би там не було дозволено, і всі ці бібліотеки були б змушені відповідати всім комерційним стандартам якості, тестування та документації (+ якість коду, ефективність та читаність) означає, що лише професіоналам та кваліфікованим командам дозволяється публікувати деяку бібліотеку Arduino, і все це буде керуватися одним єдиним об'єктом, який би примушував видаляти функціонально копії або подібні бібліотеки. І така сутність зігрівалась чи пізніше стала злом.

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

Коли ваша велика центральна влада буде ефективною, я б просто обрала іншу безкоштовну платформу, а потім подала в суд за менший, ніж ідеальний і комерційно засвідчений результат мого хобі, граючи з електронікою і змушена працювати над своїми, НЕ моїми цілями на МОЙ вільний час.

І якщо ваша Велика центральна прихильність не змусить мене примусово виконувати безкоштовну працю для них, то що б ви зробили з моєю бібліотекою, яка дозволила б одне спеціальне використання якогось загального обладнання, і про те, щоб я поділився ним з будь-ким, хто цього хоче, навіть якщо він цього не робить вирішити всю функціональність HW повністю з професійних питань і задокументовано лише стільки, скільки мені було б зручно проводити власний вільний час з документацією. А що робити, якщо в тій же HW з'явиться ще одна бібліотека, яка б дала змогу іншу частину функціональності або використовувала б інший API та інший підхід до цілої проблематики?

А саме я купив декілька мультисегментних модулів, і там була "офіційна бібліотека" від його виробника. Я зробив ще одну бібліотеку для того ж модуля. Що тепер? Чи повинна моя бібліотека знаходитися в центральному сховищі як "єдина бібліотека для цього HW", чи має бути там "офіційна від виробника"? Зауважте, що якби їх було, то це порушило б запитувану «одну і єдину» точку бібліотеки. Якщо заборонити виробника, то "єдиному" бракує безлічі функцій, як інтегрований буфер для чисел, простий об'єктний інтерфейс, простий приклад, як ним користуватися, і була б жорстка залежність від одного конкретного таймера та загального не об’єктний, просто функціональний API, який вимагає від користувача розбиття цілих чисел на одноцифрові цифри - це не дуже добре. Якщо ви забороните мою бібліотеку, користувач матиме вищезазначене, але його дисплей оновлюватиметься лише в 10 разів за секунду, моргаючи та залишаючи привидів інших цифр у всьому місці, при цьому повністю використовувати процесор та документацію буде переважно китайською мовою. І користувач пропустив би частоту оновлення 100x в секунду, майже не використовуючи процесор, приємні чисті цифри І символи (потенційно також визначено користувачем). - Також не добре.

У нинішньому стані користувач хаосу (можливо, ви чи хтось інший) може користуватися бібліотекою, яка краще підходить для його потреб (простотою та підтримкою цілої чисельності, чи чистою швидкою оновленням та низьким використанням процесора), або комбінувати обидва разом, третє місце з швидким оновленням та простою цілою маніпуляцією І визначеною користувачем діаграмою, з приємним API об’єктом та багатою документацією. Для цього потрібна лише одна людина, яка має певний час та відданість, щоб полегшити початківців та деякі знання англійської мови та базові знання предметів та як "упаковані офіційні бібліотеки Arduino", щоб IDE легко їх імпортувати. (І така людина повинна це зробити і внести свій внесок у пакувач бібліотеки Arduino).

Я б цього не робив - для моїх потреб функціональний API набагато кращий і простіший у використанні, беруть менше байтів пам'яті і менше циклів процесора, і я не маю бажання вдосконалювати бібліотеку способами, якими я б не користувався. Крім того, я не використовую Ardeino IDE, я використовую простий Makefile для створення та завантаження програм, тому я можу легко використовувати хороший текстовий редактор (vim у моєму випадку) і не потрібно боротися з пародією IDE-Notepad.

Під великим центральним управлінням, що застосовує вашу модель, я б не переймався використанням 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.