W tej chwili; kiedy zaczynam nowy projekt Arduino z nowym sprzętem, pierwszą rzeczą, którą robię, jest poszukiwanie bibliotek innych firm, które zapewniają obsługę Arduino dla tego sprzętu.
Pierwsze miejsca, które szukam to:
Zasadniczo nie znajduję żadnej biblioteki pomocniczej lub kilku różnych bibliotek (dość rzadko znajduję tylko jedną) w różnych lokalizacjach o różnych poziomach dokumentacji, różnych poziomach testowania ...
Gdy już znajdę potrzebną bibliotekę (czasem muszę spróbować kilku), pobieram ją do folderu bibliotek Arduino, używam jej i zapominam.
Uważam ten proces za kłopotliwy:
- wyszukiwanie ręczne z różnymi możliwymi opcjami, nie zawsze dobrze udokumentowane
- ręczne pobieranie i instalacja w bibliotekach Arduino
- brak kontroli wersji w tym procesie (wszystkie wersje biblioteki mają tę samą nazwę i dlatego nie mogą współistnieć w folderze biblioteki Arduino).
Chciałbym, żeby istniało centralne repozytorium ze wszystkimi dostępnymi bibliotekami dla arduino, z:
- opis (obsługiwany sprzęt, obsługiwane płyty)
- kod źródłowy
- dokumentacja
- wersje
Oraz narzędzie (Arduino IDE lub zewnętrzne), aby uzyskać dostęp do tego repozytorium podczas kompilacji projektu.
To rodzaj raju dla Arduino.
Widziałem kiedyś kilka dyskusji na forum Arduino, ale wygląda na to, że doprowadziły do nikąd:
Czy istnieją inne opcje, które sprawiają, że jest to użyteczne (od społeczności lub osób, dlaczego nie)?
Odpowiedzi:
Właśnie opisałeś problemy, które firma, nad którą pracuję, próbuje rozwiązać. Niedawno wprowadziliśmy na rynek produkt o nazwie biicode . Wydaje się dokładnie tym, czego szukasz.
biicode to zarówno centralne repozytorium online kodu, jak i narzędzie klienckie, które oferuje:
Można zobaczyć krótki demo tutaj i czytaj dalej w dokumentacji .
źródło
Od czasu, gdy pytanie zostało zadane po raz pierwszy, istnieje teraz Arduino Library Manager, wbudowany w Arduino IDE. Tam możesz wyszukiwać i instalować biblioteki.
Informacje na temat działania menedżera bibliotek znajdują się tutaj: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ
Nie ma jednak oficjalnej strony internetowej z listą bibliotek, więc niedawno stworzyłem tę nieoficjalną stronę, opartą na tych samych danych w Menedżerze Bibliotek Arduino:
http://www.arduinolibraries.info/
źródło
Arduino Playground LibraryList a średnia lista biblioteka wydaje się być oficjalne strony za to.
źródło
Jeśli chcesz sam stworzyć taki rejestr, możesz rzucić okiem na npm , menedżera pakietów Node.js , który jest open source i ma bardzo podobny zakres, który chcesz opisać. Npm to oba:
Zobacz na przykład stronę popularnej biblioteki i plik JSON zawierający jego metadane.
źródło
Nie ma żadnego. Niestety będziesz musiał ręcznie wyszukać każdą bibliotekę, którą jesteś zainteresowany.
Jeśli jesteś zainteresowany utworzeniem takiego centralnego repozytorium, choć byłoby to niesamowite, nie jest to odpowiednie forum, na którym można to zrobić.
źródło
Arduino IDE i powiązane biblioteki są dołączone jako oprogramowanie do zainstalowania w większości repozytoriów systemów operacyjnych. Niestety wersje w tych repozytoriach są zwykle nieaktualne o kilka miesięcy lub nawet lat. Wydaje się, że prawdziwym problemem jest przekonanie menedżerów repozytoriów systemów operacyjnych do włączenia nowych wydań w miarę ich udostępniania.
Ten problem jest spotęgowany, gdy wersja systemu operacyjnego nie została zaktualizowana do najnowszej wersji, ponieważ zmusza to do korzystania z przestarzałego repozytorium oprogramowania.
Chociaż nie jest to idealna odpowiedź, prawdopodobnie powinieneś upewnić się, że korzystasz z najnowszej wersji swojego systemu operacyjnego, a następnie zachęcić menedżerów repozytoriów dla tego systemu do włączenia najnowszej wersji Arduino IDE.
Alternatywą byłoby przejście do strony głównej Arduino.org i postępowanie zgodnie z instrukcjami, aby pobrać i zainstalować najnowsze IDE i powiązane biblioteki. Prawdopodobnie będzie to plik .tar.gz, więc musisz wiedzieć, jak rozpakować, rozpakować i zbudować niezbędne oprogramowanie.
źródło
Myślę, że twoje życzenie się nie spełni. Mam na to nadzieję, ponieważ posiadanie tylko jednego miejsca dla wszystkich bibliotek Arduino, bez bibliotek nie byłoby dozwolone, a wszystkie te biblioteki byłyby zmuszone do przestrzegania wszystkich komercyjnych standardów jakości, testowania i dokumentacji (+ jakość kodu, skuteczność i czytelność) oznacza, że tylko profesjonaliści i podobne wykwalifikowane zespoły będą mogły publikować niektóre biblioteki Arduino, a wszystko to będzie zarządzane przez jeden podmiot, który wymusi usunięcie funkcjonalnie zduplikowanych lub podobnych bibliotek. I taki byt sonerował, a później stał się zły.
Lubię Arduino za to, że jestem wolny, a to oznacza również, że mogę pisać bibliotekę obsługującą niektóre funkcje (z których chcę korzystać) niektórych urządzeń (które mam, planuję kupić lub chcę zrobić sam - nawet bardzo eksperymentalne i może niestabilne, ale dla mnie zabawne).
Gdyby wasz Big Central Authority był skuteczny, wybrałbym inną darmową platformę, zamiast tego zostałem pozwany za mniej niż doskonały i certyfikowany komercyjnie wynik mojego hobby z elektroniką i zmuszony do pracy dla ich, a NIE moich celów w MOIM wolnym czasie.
A jeśli twój Big Central Athority nie zmusiłby mnie do przymusowej pracy dla nich, to co zrobiłbyś z moją biblioteką umożliwiającą jedno specjalne użycie jakiegoś wspólnego sprzętu i o tym, że udostępniam go każdemu, kto tego chce, nawet jeśli nie w pełni rozwiązuję całą funkcjonalność HW w profesjonalnej materii i udokumentuję tylko tyle, że będę mógł swobodnie spędzać wolny czas z dokumentacją. A co, jeśli powstałaby inna biblioteka dla tego samego sprzętu, która umożliwiłaby inną część funkcjonalności lub użyłaby innego API i innego podejścia do całej problematyki?
Mianowicie kupiłem moduł 7-segmentowy multi i była od niego „oficjalna biblioteka” od producenta. Zrobiłem inną bibliotekę dla tego samego modułu. Co teraz? Czy moja biblioteka powinna znajdować się w centralnym repozytorium jako „jedyna biblioteka dla tego sprzętu”, czy powinna być „oficjalna od producenta”? Zauważ, że gdyby były oba, zniszczyłbyś żądany „jeden i tylko jeden” punkt biblioteki. Jeśli odrzucisz producenta, to „jedynemu” brakowałoby wielu funkcji, takich jak zintegrowany bufor liczb, prosty interfejs obiektowy, prosty przykład, jak go używać, i istniałaby silna zależność od jednego określonego zegara i ogólnego nie-obiektowy, po prostu funkcjonalny interfejs API, który wymagałby od użytkownika podzielenia liczb całkowitych na pojedyncze cyfry - nie brzmi to zbyt dobrze. Jeśli nie wyłączysz mojej biblioteki, użytkownik będzie miał powyższe, ale jego wyświetlacz odświeży tylko 10x na sekundę z miganiem i pozostawianiem duchów innych cyfr w dowolnym miejscu, przy pełnym wykorzystaniu procesora, a dokumentacja będzie głównie w języku chińskim. A użytkownik przegapiłby częstotliwość odświeżania 100x na sekundę prawie bez użycia procesora, ładne czyste cyfry ORAZ znaki (potencjalnie również zdefiniowane przez użytkownika). - Też nie dobrze.
W obecnym stanie chaosu użytkownik (może ty lub ktokolwiek inny) może korzystać z biblioteki, która jest lepiej dostosowana do jego potrzeb (czy to prostota i natywna obsługa liczb całkowitych, czy to czyste szybkie odświeżanie i niskie zużycie procesora) lub połączyć oba te elementy razem, trzecie miejsce dzięki szybkiemu odświeżaniu ORAZ prostej manipulacji liczbami całkowitymi ORAZ zdefiniowanemu przez użytkownika zestawowi znaków, z ładnym API obiektu i bogatą dokumentacją. Potrzebuje tylko jednej osoby, która ma trochę czasu i poświęcenia, aby ułatwić początkującym, a niektóre umiejętności angielskiego i podstawową znajomość przedmiotów oraz sposób pakowania „oficjalnych bibliotek Arduino”, aby IDE mogło je łatwo zaimportować. (I taka osoba powinna to zrobić i wnieść do programu do tworzenia bibliotek Arduino).
Nie zrobiłbym tego - dla moich potrzeb funkcjonalny interfejs API jest o wiele lepszy i prostszy w użyciu, pobiera mniej bajtów z pamięci i mniej cykli procesora i nie mam potrzeby ulepszania biblioteki w sposób, którego nie używałbym. Nie używam również Arduino IDE, używam prostego Makefile do budowania i przesyłania programów, dzięki czemu mogę łatwo używać dobrego edytora tekstu (w moim przypadku vim) i nie muszę walczyć z parodią IDE-Notepad.
Pod Wielkim Urzędem Centralnym wzmacniającym twój model w ogóle nie dbam o używanie Arduino, a ty w ogóle utkniesz z chińską wersją (ponieważ nie byłoby jej tam z powodu braku dobrej angielskiej dokumentacji i odpowiedniego formatu pakietu) .
źródło
http://downloads.arduino.cc/libraries/library_index.json zawiera listę wszystkich bibliotek dostępnych w Arduino Library Manager.
Użyłem tego pliku, aby utworzyć https://github.com/scls19fr/arduino_libraries_search Jest to skrypt Python Pandas do wyszukiwania bibliotek Arduino pasujących do niektórych słów kluczowych i do wyświetlania w pliku Excel
Możesz również znaleźć biblioteki Arduino, używając:
źródło