Tôi có thể tìm một kho lưu trữ trung tâm của tất cả các thư viện Arduino có sẵn ở đâu?


11

Hiện tại; Khi tôi bắt đầu một dự án Arduino mới với một số phần cứng mới, điều đầu tiên tôi làm là tìm kiếm các thư viện của bên thứ 3 có hỗ trợ Arduino cho phần cứng này.

Những nơi đầu tiên tôi nhìn là:

Nói chung, tôi thấy không có thư viện hỗ trợ hoặc một số thư viện khác nhau (khá hiếm khi chỉ tìm thấy một) ở các địa điểm khác nhau với các cấp độ tài liệu khác nhau, các cấp độ thử nghiệm khác nhau ...

Khi tôi đã tìm thấy thư viện tôi cần (đôi khi tôi cần thử vài lần), tôi tải nó xuống thư mục thư viện Arduino của tôi, tôi sử dụng nó và tôi quên nó.

Tôi thấy quá trình này rườm rà:

  • tìm kiếm thủ công với các tùy chọn khác nhau có thể, không phải lúc nào cũng được ghi chép tốt
  • tải về và cài đặt thủ công vào thư viện Arduino
  • không có kiểm soát phiên bản nào trong quy trình (tất cả các phiên bản của thư viện có cùng tên và do đó không thể cùng tồn tại trong thư mục thư viện Arduino).

Tôi ước có một kho lưu trữ trung tâm với tất cả các thư viện có sẵn cho arduino, với:

  • mô tả (phần cứng được hỗ trợ, bảng được hỗ trợ)
  • mã nguồn
  • tài liệu
  • phiên bản

Và một công cụ (Arduino IDE hoặc bên ngoài) để truy cập kho lưu trữ này tại thời điểm xây dựng dự án.

Một loại maven cho Arduino trong thực tế.

Tôi đã thấy một số cuộc thảo luận đã từng diễn ra trên diễn đàn Arduino, nhưng có vẻ như họ không dẫn đến đâu:

Có những lựa chọn khác, được đưa vào một cái gì đó có thể sử dụng được (từ cộng đồng hoặc cá nhân, tại sao không)?


Điều này sẽ tương tự như PyPi pypi.python.org/pypi và virtualenv trong Python, nếu bất cứ ai cần một sự tương tự trong ngôn ngữ khác.
Cyberg Ribbon

Một nguồn tốt khác là PJRC pjrc.com/teensy/td_libs.html
Cyberg Ribbon 23/214

Một cái gì đó cho tôi biết wiki thẻ thư viện sẽ là một nơi tốt để tạo ra một cơ sở dữ liệu như vậy. ~ 35.000 ký tự sẽ cung cấp không gian rộng rãi để phát triển một danh sách rất toàn diện.
asheeshr

@AsheeshR tại sao không? Nhưng trước tiên, một mô tả rõ ràng về những gì cần thiết (và những gì là tùy chọn) cho mỗi mục nhập thư viện sẽ được xác định, để có thể theo dõi 3template3 này cho mỗi mục nhập được thêm vào.
jfpoilpret

@jfpoilpret Đó là một chủ đề cho một cuộc thảo luận về Arduino Meta .
asheeshr

Câu trả lời:


4

Bạn vừa mô tả các vấn đề mà công ty tôi đang làm việc đang cố gắng giải quyết. Gần đây chúng tôi đã giới thiệu một sản phẩm gọi là biicode . Có vẻ như chính xác những gì bạn đang tìm kiếm.

biicode vừa là kho lưu trữ trung tâm trực tuyến cho mã vừa là công cụ máy khách có tính năng:

  • Dễ dàng sử dụng cho người mới bắt đầu, cấu hình cho người dùng cao cấp hơn
  • Độ phân giải phụ thuộc, liên tục, như maven, nhưng không có tệp cấu hình: đọc phụ thuộc trực tiếp từ mã nguồn.
  • Kho lưu trữ trung tâm, bất cứ ai cũng có thể tải lên thư viện của họ. Chúng có thể được khám phá, điều hướng và khám phá trên web
  • Kiểm soát phiên bản: nó kiểm tra tính tương thích của phiên bản và cho phép cập nhật an toàn các phụ thuộc
  • Bạn có thể sử dụng nó với bất kỳ trình soạn thảo văn bản nào (nó có hỗ trợ nhật thực tùy chọn)
  • Nó quản lý thiết lập dự án và biên dịch, flash firmware được tạo ra cho bảng
  • Nó có một màn hình nối tiếp đẹp như một điểm cộng

Bạn có thể xem bản demo nhanh ở đây và đọc thêm trong tài liệu .


Đã trả lời 2014, năm 2018 của nó vẫn còn trong sản xuất?
parohy

Không, bây giờ là conan.io từ jfrog và không biết nó có hỗ trợ arduino nữa không
hithwen

4

Vì câu hỏi này lần đầu tiên được hỏi, giờ đây đã có Trình quản lý thư viện Arduino, được tích hợp trong Arduino IDE. Ở đó bạn có thể tìm kiếm và cài đặt thư viện.

Có thông tin về cách trình quản lý thư viện hoạt động tại đây: https://github.com/arduino/Arduino/wiki/L Library-Manager -FAQ

Tuy nhiên, không có một trang web chính thức nào liệt kê các thư viện, vì vậy gần đây tôi đã tạo ra trang web không chính thức này, dựa trên cùng một dữ liệu trong Trình quản lý thư viện Arduino:

http: //www.arduinolologists.info/


3

Các Arduino Sân chơi LibraryListdanh sách thư viện chuẩn dường như là trang chính thức cho điều đó.


Đúng nhưng chúng chỉ là sự pha trộn của tài liệu ngắn với các liên kết đến thư viện và dường như tuân theo bảo trì "nỗ lực tốt nhất", dẫn đến một thứ gì đó trông như một mớ hỗn độn nếu chúng ta muốn sử dụng nó từ một loại trình quản lý gói.
jfpoilpret

2

Nếu bạn muốn tự tạo một sổ đăng ký như vậy, bạn có thể muốn xem npm , trình quản lý gói của Node.js , là nguồn mở và có phạm vi rất giống với phạm vi mà bạn muốn mô tả. Npm là cả hai:

  1. một sổ đăng ký trung tâm với siêu dữ liệu về mỗi thư viện:
    • Tên, mô tả, từ khóa, trang chủ, tác giả, cộng tác viên
    • số phiên bản, về nguyên tắc tuân thủ phiên bản ngữ nghĩa
    • URL của kho lưu trữ nguồn (svn, git, github, gitlab, bitbucket ...)
    • thông tin tương thích (trong trường hợp này là về các phiên bản của Node)
    • giấy phép
    • phụ thuộc
  2. một công cụ dòng lệnh cho:
    • tìm kiếm sổ đăng ký
    • tải xuống và cài đặt các gói, đệ quy theo phụ thuộc của chúng
    • xuất bản và cập nhật các gói của riêng bạn trên sổ đăng ký.

Xem ví dụ trang của một thư viện phổ biếntệp JSON chứa siêu dữ liệu của nó.


1

Chẳng có ai. Thật không may, bạn sẽ phải tìm kiếm thủ công cho từng thư viện mà bạn quan tâm.

Nếu bạn quan tâm đến việc tạo ra một kho lưu trữ trung tâm như vậy, trong khi nó sẽ tuyệt vời, thì đây không phải là diễn đàn chính xác để làm điều đó.


Sau đó, bạn sẽ khuyên gì nếu chúng ta tạo ra một kho lưu trữ như vậy?
jfpoilpret

Uh .... bắt đầu? Bạn có ý gì khuyên? Về cơ bản nó là một trang web. Có thể thêm một điều quản lý gói vào trình soạn thảo văn bản arduino nếu bạn thực sự thích nó? Vấn đề chính, như mọi khi, sẽ khiến mọi người thực sự sử dụng nó.
Sói Connor

1
Thẳng thắn mà nói, ngay cả khi bạn thêm người quản lý fancypants gói để soạn thảo văn bản Arduino, tôi không biết loại thông qua bạn sẽ nhận được, bởi vì trình biên tập Arduino là khủng khiếp , và người dân có xu hướng ngừng sử dụng nó trong trật tự khá ngắn . Như vậy, bạn gần như cần một trình quản lý gói riêng biệt, vì vậy tôi gần như chỉ nói một trang web cơ bản có chỉ mục thư viện, một đoạn ngắn và liên kết đến nơi chúng thực sự được lưu trữ là đặt cược tốt nhất.
Sói Connor

Đó cũng là ý tưởng của tôi, mục đích sẽ không phải là lưu trữ các thư viện mà là giữ các tài liệu tham khảo cho chúng, cùng với siêu dữ liệu hữu ích. Về Arduino IDE, tôi đồng ý, tôi không sử dụng nó rất thường xuyên, nhưng một công cụ bên ngoài sẽ dễ dàng tích hợp với nó sau này.
jfpoilpret

@jfpoilpret - Vấn đề với một công cụ bên ngoài là, như với các trình quản lý gói, độ phân giải phụ thuộc và quản lý yêu cầu phiên bản. Người arduino dường như không quá bận tâm bằng cách duy trì khả năng tương thích ngược và rất nhiều thư viện yêu cầu "arduino verson {blah}". Tôi thực sự nghĩ rằng chỉ cần một danh sách các tài liệu tham khảo là đặt cược tốt nhất. Bất kỳ công cụ phức tạp hơn có thể đến sau.
Sói Connor

0

Arduino IDE và các thư viện liên quan được bao gồm dưới dạng phần mềm có thể cài đặt trong hầu hết các kho lưu trữ hệ điều hành. Thật không may, các phiên bản trong các kho lưu trữ này thường là vài tháng hoặc thậm chí nhiều năm lỗi thời. Điều này có vẻ như vấn đề thực sự nằm ở việc khiến các nhà quản lý kho lưu trữ hệ điều hành kết hợp các bản phát hành mới khi chúng có sẵn.

Vấn đề này được giải quyết khi phiên bản HĐH của bạn chưa được cập nhật lên bản phát hành mới nhất, bởi vì điều này buộc bạn phải sử dụng kho phần mềm đã lỗi thời.

Mặc dù không phải là một câu trả lời hoàn hảo, nhưng có lẽ bạn nên đảm bảo rằng bạn đang sử dụng bản phát hành mới nhất của HĐH và sau đó khuyến khích các nhà quản lý kho lưu trữ cho HĐH đó kết hợp phiên bản Arduino IDE mới nhất.

Một cách khác là vào trang chủ Arduino.org và làm theo hướng dẫn để tải xuống và cài đặt IDE mới nhất và các thư viện liên quan. Điều này có thể sẽ ở dạng tệp .tar.gz, do đó bạn sẽ cần biết cách giải nén, giải nén và xây dựng phần mềm cần thiết.


0

Tôi nghĩ rằng điều ước của bạn sẽ không thành hiện thực. Tôi hy vọng điều đó, bởi vì chỉ có một nơi duy nhất cho tất cả những người yêu thích Arduino, không có thư viện nào được phép ở đó và tất cả các thư viện đó sẽ bị buộc phải chịu mọi tiêu chuẩn thương mại về chất lượng, kiểm tra và tài liệu (+ chất lượng mã, hiệu quả và khả năng đọc) có nghĩa là, chỉ những chuyên gia và nhóm đủ điều kiện mô phỏng mới được phép xuất bản một số thư viện Arduino và tất cả sẽ được điều chỉnh bởi một thực thể duy nhất, sẽ thực thi loại bỏ các thư viện chức năng trùng lặp hoặc tương tự. Và thực thể như vậy sẽ soner hoặc sau đó trở thành ác.

Tôi thích Arduino miễn phí và điều đó cũng có nghĩa là tôi có thể tự do viết thư viện để hỗ trợ một số tính năng (mà tôi muốn sử dụng) một số phần cứng (mà tôi có, dự định mua hoặc muốn tự làm - thậm chí rất cao thử nghiệm và có thể không ổn định, nhưng thú vị đối với tôi).

Với Big Central Agency của bạn có hiệu quả, tôi sẽ chỉ chọn một nền tảng miễn phí khác, sau đó bị kiện vì kết quả kém hoàn hảo và được chứng nhận thương mại của sở thích chơi điện tử và buộc phải làm việc cho họ, KHÔNG phải mục tiêu của tôi vào thời gian rảnh của tôi.

Và nếu Big Athority của bạn sẽ không buộc tôi phải lao động tự do cho họ, thì bạn sẽ làm gì với thư viện của tôi cho phép sử dụng một số phần cứng thông thường và tôi chia sẻ nó cho bất cứ ai muốn, ngay cả khi nó không giải quyết tất cả các chức năng CTNH đầy đủ trong vấn đề chuyên môn và chỉ được ghi chép lại nhiều đến mức tôi có thể thoải mái dành thời gian rảnh của mình với tài liệu. Và điều gì xảy ra nếu có một thư viện khác cho cùng một CTNH, điều này sẽ cho phép một phần chức năng khác hoặc sẽ sử dụng một API khác và một cách tiếp cận khác cho toàn bộ vấn đề?

Cụ thể tôi đã mua một số mô-đun 7 phân đoạn và có "thư viện chính thức" cho nó từ nhà sản xuất của nó. Tôi đã làm một thư viện khác cho cùng một mô-đun. Gì bây giờ? Thư viện của tôi phải ở trong Kho lưu trữ trung tâm với tư cách là "thư viện duy nhất cho CTNH này" hay nên có "thư viện chính thức từ nhà sản xuất"? Lưu ý rằng nếu có cả hai thứ đó, thì nó sẽ phá vỡ điểm thư viện "một và chỉ một" mà bạn yêu cầu. Nếu bạn không cho phép nhà sản xuất, thì "duy nhất" sẽ thiếu rất nhiều tính năng, như bộ đệm tích hợp cho số, giao diện đối tượng đơn giản, ví dụ đơn giản, cách sử dụng và sẽ phụ thuộc cứng vào một bộ đếm thời gian cụ thể và chung chung phi đối tượng, chỉ là API chức năng, sẽ yêu cầu người dùng ngắt các số nguyên thành một chữ số bằng cách nào đó - nghe có vẻ không tốt lắm. Nếu bạn không cho phép thư viện của tôi, thì người dùng sẽ có những thứ ở trên, nhưng màn hình của anh ta sẽ chỉ làm mới 10 lần mỗi giây khi nhấp nháy và để lại bóng ma của các chữ số khác, trong khi sử dụng đầy đủ bộ xử lý và tài liệu sẽ chủ yếu bằng tiếng Trung Quốc. Và người dùng sẽ bỏ lỡ tốc độ làm mới 100x mỗi giây mà gần như không sử dụng bộ xử lý, các chữ số VÀ ký tự sạch đẹp (cũng được xác định bởi người dùng). - Cũng không tốt.

Trong tình trạng hỗn loạn hiện tại (có thể bạn hoặc bất kỳ ai khác) có thể sử dụng thư viện, phù hợp hơn với nhu cầu của anh ấy (có thể là đơn giản và hỗ trợ số nguyên gốc, hoặc có thể làm sạch nhanh và sử dụng CPU thấp) hoặc kết hợp cả hai, làm thứ ba với làm mới nhanh và thao tác số nguyên đơn giản và bảng mã do người dùng xác định, với API đối tượng đẹp và tài liệu phong phú. Nó chỉ cần một người có thời gian và sự cống hiến giúp người mới bắt đầu dễ dàng và một số kỹ năng tiếng Anh và kiến ​​thức cơ bản về các đối tượng và làm thế nào "thư viện Arduino chính thức" được đóng gói, vì vậy IDE có thể dễ dàng nhập chúng. (Và người như vậy nên làm điều đó và đóng góp nó cho trình đóng gói thư viện Arduino).

Tôi sẽ không làm điều đó - vì nhu cầu của tôi là API chức năng tốt hơn và đơn giản hơn để sử dụng, lấy ít byte hơn từ bộ nhớ và ít chu kỳ CPU hơn và tôi không muốn cải thiện thư viện theo những cách tôi sẽ không sử dụng. Ngoài ra, tôi không sử dụng Arduino IDE, tôi sử dụng Makefile đơn giản để xây dựng và tải lên các chương trình, vì vậy tôi có thể dễ dàng sử dụng trình soạn thảo văn bản tốt (vim trong trường hợp của tôi) và không phải chiến đấu với IDE-Notepad-parody.

Theo Big Central Agency, bao gồm mô hình của bạn, tôi sẽ không quan tâm đến việc sử dụng Arduino và bạn sẽ bị mắc kẹt với phiên bản tiếng Trung, nếu có (vì nó sẽ không làm cho nó thiếu tài liệu tiếng Anh tốt và định dạng gói phù hợp quá) .


0

http://doads.arduino.cc/l library / l Library_index.json cung cấp danh sách tất cả các thư viện có sẵn trong Trình quản lý thư viện Arduino.

Tôi đã sử dụng tệp này để tạo https://github.com/scls19fr/arduino_lologists_search Đó là tập lệnh Python Pandas để tìm kiếm các thư viện Arduino phù hợp với một số từ khóa và xuất ra tệp Excel

Bạn cũng có thể tìm thấy các thư viện Arduino bằng cách sử dụng:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.