Onde posso encontrar um repositório central de todas as bibliotecas disponíveis do Arduino?

11

Atualmente; Quando inicio um novo projeto do Arduino com algum hardware novo, a primeira coisa que faço é procurar bibliotecas de terceiros que ofereçam suporte ao Arduino para esse hardware.

Os primeiros lugares que olho são:

Geralmente, não encontro nenhuma biblioteca de suporte ou várias bibliotecas diferentes (é muito raro encontrar apenas uma) em locais diferentes, com diferentes níveis de documentação, diferentes níveis de teste ...

Depois de encontrar a biblioteca de que preciso (às vezes, preciso experimentar várias), faço o download para a minha pasta de bibliotecas do Arduino, uso-a e esqueço-a.

Acho esse processo complicado:

  • pesquisa manual com diferentes opções possíveis, nem sempre bem documentadas
  • download manual e instalação nas bibliotecas do Arduino
  • nenhum controle de versão no processo (todas as versões de uma biblioteca têm o mesmo nome e, portanto, não podem coexistir na pasta da biblioteca do Arduino).

Eu gostaria que houvesse um repositório central com todas as bibliotecas disponíveis para o arduino, com:

  • descrição (hardware suportado, placas suportadas)
  • Código fonte
  • documentação
  • versões

E uma ferramenta (Arduino IDE ou externa) para acessar este repositório no momento da criação do projeto.

Uma espécie de maven para o Arduino, de fato.

Vi várias discussões uma vez no fórum do Arduino, mas parece que elas não levaram a lugar algum:

Existem outras opções que podem ser usadas (da comunidade ou de indivíduos, por que não)?

jfpoilpret
fonte
Isso seria semelhante ao PyPi pypi.python.org/pypi e virtualenv no Python, se alguém precisar de um análogo em outro idioma.
Cybergibbons
Outra boa fonte é o PJRC pjrc.com/teensy/td_libs.html
Cybergibbons
Algo me diz que o wiki da tag da biblioteca seria um bom lugar para criar esse banco de dados. ~ 35.000 caracteres devem fornecer amplo espaço para desenvolver uma lista muito abrangente.
Asheeshr
@AsheeshR por que não? Mas primeiro, uma descrição clara do que é necessário (e o que é opcional) para cada entrada da biblioteca deve ser definida, para que este 3 modelo 3 possa ser seguido para cada entrada adicionada.
Jfpoilpret
@jfpoilpret Esse é um tópico para uma discussão sobre o Arduino Meta .
asheeshr

Respostas:

4

Você acabou de descrever os problemas que a empresa para a qual estou trabalhando está tentando resolver. Recentemente, lançamos um produto chamado biicode . Parece exatamente o que você está procurando.

biicode é um repositório central on-line de código e uma ferramenta cliente que apresenta:

  • Fácil de usar para iniciantes, configurável para usuários mais avançados
  • Resolução de dependências, transitivamente, como o maven, mas sem arquivos de configuração: lê dependências diretamente do código-fonte.
  • Repositório central, qualquer pessoa pode fazer upload de suas bibliotecas. Eles podem ser explorados, navegados e descobertos na web
  • Controle de versão: verifica a compatibilidade de versões e permite atualizações seguras de dependências
  • Você pode usá-lo com qualquer editor de texto (possui suporte opcional ao eclipse)
  • Ele gerencia a configuração e compilações do projeto, pisca o firmware gerado para a placa
  • Ele tem um bom monitor serial como uma vantagem

Você pode ver uma demonstração rápida aqui e ler mais na documentação .

hithwen
fonte
Respondeu 2014, seu 2018 ainda está em produção?
parohy
Não, é agora conan.io de jfrog e não sei se ele suporta arduino mais
hithwen
4

Desde que essa pergunta foi feita pela primeira vez, agora existe o Gerenciador de Bibliotecas do Arduino, incorporado ao IDE do Arduino. Lá você pode procurar e instalar bibliotecas.

Há informações sobre como o gerenciador de bibliotecas funciona aqui: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ

No entanto, como não há um site oficial listando as bibliotecas, criei recentemente este site não oficial, com base nos mesmos dados do Arduino Library Manager:

http://www.arduinolibraries.info/

njh
fonte
3

A lista de bibliotecas do Arduino Playground e a lista de bibliotecas padrão parecem ser as páginas oficiais para isso.

O cara com o chapéu
fonte
Sim, mas eles são apenas uma mistura de documentos curtos com links para bibliotecas e parecem seguir uma manutenção de "melhor esforço", levando a algo que parece uma bagunça, se quisermos usá-lo em algum tipo de gerenciador de pacotes.
Jfpoilpret
2

Se você deseja criar esse registro, verifique o npm , o gerenciador de pacotes do Node.js , que é de código aberto e tem escopo muito semelhante ao que você deseja descrever. Npm é ambos:

  1. um registro central com metadados sobre cada biblioteca:
    • nome, descrição, palavras-chave, página inicial, autor, colaboradores
    • número da versão, em conformidade com o controle de versão semântico
    • URL do repositório de origem (svn, git, github, gitlab, bitbucket ...)
    • informações de compatibilidade (neste caso, são sobre as versões do Node)
    • licença
    • dependências
  2. uma ferramenta de linha de comando para:
    • pesquisando o registro
    • baixar e instalar pacotes, seguindo recursivamente suas dependências
    • publicar e atualizar seus próprios pacotes no registro.

Veja, por exemplo, a página de uma biblioteca popular e o arquivo JSON que contém seus metadados.

Edgar Bonet
fonte
1

Não há nenhum. Infelizmente, você terá que procurar manualmente cada biblioteca em que estiver interessado.

Se você estiver interessado em criar um repositório central, embora seja incrível, este não é o fórum correto para fazê-lo.

Connor Wolf
fonte
Então, o que você recomendaria se criassemos esse repositório?
Jfpoilpret
Uh ... começar? Como assim aconselhar? É basicamente um site. Talvez adicione um gerenciador de pacotes ao editor de texto do arduino, se você realmente gosta dele? A questão principal, como sempre, será conseguir que as pessoas realmente o usem .
Connor Wolf
1
Francamente, mesmo se você adicionar um gerenciador de pacotes fancypants ao editor de texto do arduino, não sei que tipo de adoção você receberá, porque o editor do arduino é horrível e as pessoas tendem a parar de usá-lo em pouco tempo . Como tal, você quase precisaria de um gerenciador de pacotes separado, então eu diria apenas que um site básico com um índice de bibliotecas, uma breve sinopse e links para onde eles estão realmente hospedados é a melhor aposta.
Connor Wolf
Essa também foi minha ideia, o objetivo não seria hospedar bibliotecas, mas sim manter referências a elas, juntamente com metadados úteis. Em relação ao IDE do Arduino, concordo, não o uso com muita frequência, mas uma ferramenta externa deve ser fácil de integrar mais tarde.
Jfpoilpret
@jfpoilpret - O problema de uma ferramenta externa é, como nos gerenciadores de pacotes, a resolução de dependências e o gerenciamento de requisitos de versão. O pessoal do arduino não parece muito preocupado em manter a compatibilidade com versões anteriores, e muitas bibliotecas exigem "arduino verson {blah}". Eu realmente acho que apenas uma lista de referências é a melhor aposta. Qualquer coisa mais complexa pode vir mais tarde.
Connor Wolf
0

O IDE do Arduino e as bibliotecas associadas estão incluídos como software instalável na maioria dos repositórios de SO. Infelizmente, as versões desses repositórios geralmente estão desatualizadas há vários meses ou mesmo anos. Parece que o verdadeiro problema está em fazer com que os gerenciadores de repositório do SO incorporem novos lançamentos assim que estiverem disponíveis.

Esse problema é agravado quando a versão do sistema operacional não foi atualizada para a versão mais recente, porque isso força você a usar um repositório de software desatualizado.

Embora não seja uma resposta perfeita, você provavelmente deve garantir que está usando a versão mais recente do seu sistema operacional e, em seguida, incentivar os gerenciadores de repositório desse sistema operacional a incorporar a versão mais recente do IDE do Arduino.

Uma alternativa seria acessar a página inicial do Arduino.org e seguir as instruções para baixar e instalar o IDE mais recente e as bibliotecas associadas. Provavelmente, ele estará na forma de um arquivo .tar.gz; portanto, você precisará saber como descompactar, descompactar e criar o software necessário.

arvid
fonte
0

Eu acho que seu desejo não se tornará realidade. Espero que sim, porque ter apenas um lugar para todas as bibliotecas do Arduino, sem bibliotecas permitidas, não existir e todas essas bibliotecas seriam forçadas a cumprir todos os padrões comerciais de qualidade, teste e documentação (+ qualidade do código, efetividade e legibilidade) significa que apenas profissionais e equipes qualificadas semelhantes teriam permissão para publicar alguma biblioteca do Arduino e tudo seria governado por uma única entidade, o que reforçaria a remoção de bibliotecas funcionalmente duplicadas ou similares. E essa entidade sonharia ou mais tarde se tornaria má.

Eu gosto do Arduino por ser gratuito e isso também significa que estou livre para escrever uma biblioteca para suporte a alguns recursos (que eu quero usar) de algum hardware (que eu tenho, planejo comprar ou quero me tornar - mesmo que altamente experimental e talvez instável, mas divertido para mim).

Com sua Big Central Authority sendo eficaz, eu escolheria outra plataforma gratuita, em vez de ser processada por um resultado menos do que perfeito e certificado comercialmente do meu hobby de brincar com eletrônicos e forçado a trabalhar pelos seus, NÃO meus objetivos no MEU tempo livre.

E se sua Grande Central Athority não me forçar a trabalhar livremente com trabalho forçado para eles, o que você faria com minha biblioteca, permitindo um uso especial de algum hardware comum, e sobre eu compartilhá-lo com alguém que o queira, mesmo que não o faça resolver todas as funcionalidades do HW totalmente em matéria profissional e documentar apenas o quanto eu me sentiria confortável em passar meu tempo livre com documentação. E se surgisse outra biblioteca para o mesmo HW, que permitiria outra parte da funcionalidade ou usaria outra API e outra abordagem para toda a problemática?

Ou seja, eu comprei um módulo multi-segmento de 7 segmentos e havia uma "biblioteca oficial" do fabricante. Eu fiz outra biblioteca para o mesmo módulo. E agora? A minha biblioteca deve estar no Repositório Central como "a única biblioteca para este HW" ou a "biblioteca oficial do fabricante"? Observe que, se houvesse os dois, isso quebraria o ponto de biblioteca "um e apenas um" solicitado. Se você desaprovar o fabricante, então "o único" estaria faltando muitos recursos, como buffer integrado para números, interface simples de objeto, exemplo simples de como usá-lo e haveria forte dependência de um timer específico e genérico API não-objeto, apenas funcional, que exigiria que o usuário quebre números inteiros em dígitos únicos de alguma forma - não parece muito bom. Se você não permitir minha biblioteca, o usuário terá o que foi dito acima, mas sua exibição será atualizada apenas 10x por segundo, piscando e deixando fantasmas de outros dígitos por todo o lado, enquanto utiliza totalmente o processador e a documentação deve ser principalmente em chinês. E o usuário perderia a taxa de atualização 100x por segundo com quase nenhum uso do processador, bons dígitos limpos E caracteres (também definido pelo usuário). - Também não é bom.

No estado atual do caos, o usuário (talvez você ou qualquer outra pessoa) pode usar a biblioteca, que é mais adequada às suas necessidades (seja simplicidade e suporte a números inteiros nativos ou atualização limpa e rápida e baixo uso da CPU) ou combinar os dois, tornando-se o terceiro com atualização rápida E manipulação simples de números inteiros E conjunto de caracteres definido pelo usuário, COM API agradável de objetos e documentação rica. Ele precisa apenas de uma pessoa com algum tempo e dedicação para facilitar para iniciantes e algumas habilidades em inglês e conhecimentos básicos de objetos e como as "bibliotecas oficiais do Arduino" estão compactadas, para que o IDE possa importá-las facilmente. (E essa pessoa deve fazer e contribuir com o empacotador da biblioteca do Arduino).

Eu não faria isso - pois minhas necessidades são API funcionais muito melhores e mais simples de usar, consomem menos bytes de memória e menos ciclos de CPU e não tenho vontade de melhorar a biblioteca de maneiras que não usaria. Também não uso o Arduino IDE, uso o Makefile simples para criar e fazer upload dos programas, para que eu possa usar facilmente um bom editor de texto (vim no meu caso) e não precise lutar com a paródia do IDE-Notepad.

Sob a Big Central Authority aplicando seu modelo, eu não me importaria em usar o Arduino e você ficará com a versão chinesa, se houver (como não o faria por falta de boa documentação em inglês e formato de pacote adequado) .

gilhad
fonte
0

http://downloads.arduino.cc/libraries/library_index.json fornece uma lista de todas as bibliotecas disponíveis no Arduino Library Manager.

Usei esse arquivo para criar https://github.com/scls19fr/arduino_libraries_search É um script do Python Pandas para pesquisar bibliotecas do Arduino que correspondam a algumas palavras-chave e gerar o arquivo Excel

Você também pode encontrar bibliotecas do Arduino usando:

scls
fonte