Ir ao conteúdo
  • Cadastre-se

Arduino, bibliotecas e orientação a objetos


Posts recomendados

  • Membro VIP

Introduziram-me programação usando alto nível, com Java. É provavelmente por isso que eu sempre quero ter atenção a arquiteturas, estilos de codificação, padrões de projeto e outros temas de engenharia de software. Essas coisas são mais facilmente encontradas quando se olha para obras em Java, Python, Ruby e afins. Mas nos embarcados, com C/C++, não seria diferente: eu logo quero os códigos spaghetti bem longe de mim!

 

Ontem eu achei o tutorial "Writing a Library for Arduino". Hoje pude lê-lo com atenção, na tela do notebook, observando tudo o que fora exemplificado.

 

Enumero a seguir os tópicos para os quais eu gostaria de um complemento, comentários:

 

1) Busco uma documentação oficial de sintaxe para o arquivo keywords.txt. O melhor que pude encontrar até agora foi "Arduino IDE keywords". Pode ser suficiente.

 

2) Não entendo porque o autor do tutorial resolveu usar a extensão .pde invés da extensão .ino para o código final do sketch-exemplo. Até onde me consta, aquela é uma extensão para a Processing IDE. Não sei qual é a relação dela com a Arduino IDE. Alguém tem uma história para contar sobre isso?

 

3) Isso que se está fazendo com C++ para a Arduino IDE, provavelmente é o início da orientação a objetos, a chamada programação "baseada" em objetos (sem herança). Digo assim porque não sou familiarizado com C ou C++. Conheço apenas o básico do básico. Admiro aquele estilo com abstração em objetos e o imito sempre que posso. É como se introduz OO. Mas alguém sabe me dizer se não seria mesmo mais conveniente inicializar o pino 13 dentro do setup().

 

4) Quem tiver mais materiais ensinando a escrever bibliotecas para Arduino, especialmente fazendo-se orientação a objetos, por favor aponte aí. Eu sei que um atalho é sempre ir em busca de exemplos no GitHub. Uma coisinha que achei interessante mas preciso estudar melhor é a Ticker.

 

5) Ainda me resta tirar a limpo detalhes do fluxo de trabalho para disponibilizar as novas bibliotecas em GitHub, por exemplo. De modo que elas sejam facilmente importadas a partir dali. Na verdade, acredito que seja mais uma questão de treinar, experimentar, coisa que ainda não fiz.

 

Update

 

Outro tutorial: How to write libraries for the Arduino?

 

Duas referências utilíssimas:

Link para o comentário
Compartilhar em outros sites

Para os embarcados estas suas dúvidas sobre POO estão muito além da compreensão, porque em geral é usado a programação estruturada e os conceitos da orientação a objetos estão sendo inclusos somente agora e pelo que já entendi, vai avançar mas de imediato ainda está engatinhando, no caso do Arduíno, tem traços claros da POO nas funções que são as classes(objetos), Herança(porque as características de um objeto podem passar de um para outro), poliformismo(porque é possível que uma classe assuma mais de uma forma de executar a mesma função), abstração eu ainda não encontrei traços(pode ser por inexperiência mesmo), e também tem o encapsulamento que no Arduíno, existem as propriedades private e public que servem para não permitir ou permitir respectivamente que as propriedades da classe sejam acessadas externamente.

 

Penso que para uma melhor compreensão você deverá buscar ajuda neste fórum na parte de programação O.O. e depois tentar aplicar nos embarcados, orientação a objetos só se aprende fazendo.

adicionado 0 minutos depois
5 horas atrás, alexandre.mbm disse:

Na verdade, acredito que seja mais uma questão de treinar, experimentar, coisa que ainda não fiz.

Tem que experimentar!!!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...