Giter Club home page Giter Club logo

brasilino's Issues

#define definir define removido

=/ A linha da biblioteca que eu mais gostava foi removida, só vim perceber que não funciona hoje, devido ao fato do define ser uma diretiva de pre processo, portanto ele não troca palavras por ele mesmo.

Caso alguém tenha alguma ideia de como implementar isso, favor fazer um pull request.

Alguns Exemplos foram descontinuados nas versões mais recentes

Verifiquei que dois exemplos não conseguem ser compilados para todas as plataformas suportadas nesse repositório, que é o caso do controleGradual.ino (Solucionado em #69) e do ASCII.ino (solucionado com nova arquitetura em #70).

Segue os erros:

controleGradual.ino failed

/home/runner/work/Brasilino/Brasilino/examples/Basicos/controleGradual/controleGradual.ino:32:39: error: macro "escreverAnalogico" requires 2 arguments, but only 1 given
         escreverAnalogico(luminosidade); // Faz a luminosidade do led assumir o valor da variável
                                       ^
/home/runner/work/Brasilino/Brasilino/examples/Basicos/controleGradual/controleGradual.ino:39:39: error: macro "escreverAnalogico" requires 2 arguments, but only 1 given
         escreverAnalogico(luminosidade); // Faz a luminosidade do led assumir o valor da variável
                                       ^
Error during build: exit status 1

Além disso há exemplos que estão descontinuados para Arduino Gemma e micronucleus, ambos com processadores semelhante ao do Franzininho, que estão representados nos testes arduino-gemma e micronucleus-franzininho.

analogicoSerial.ino failed on arduino-gemma

/home/runner/work/Brasilino/Brasilino/examples/Basicos/analogicoSerial/analogicoSerial.ino: In function 'void setup()':
/home/runner/work/Brasilino/Brasilino/examples/Basicos/analogicoSerial/analogicoSerial.ino:23:5: error: 'iniciarSerial' was not declared in this scope
     iniciarSerial();
     ^~~~~~~~~~~~~
/home/runner/work/Brasilino/Brasilino/examples/Basicos/analogicoSerial/analogicoSerial.ino:23:5: note: suggested alternative: 'HardwareSerial'
     iniciarSerial();
     ^~~~~~~~~~~~~
     HardwareSerial
/home/runner/work/Brasilino/Brasilino/examples/Basicos/analogicoSerial/analogicoSerial.ino: In function 'void loop()':
/home/runner/work/Brasilino/Brasilino/examples/Basicos/analogicoSerial/analogicoSerial.ino:31:5: error: 'escreverSerialn' was not declared in this scope
     escreverSerialn(valorDoSensor);
     ^~~~~~~~~~~~~~~
/home/runner/work/Brasilino/Brasilino/examples/Basicos/analogicoSerial/analogicoSerial.ino:31:5: note: suggested alternative: 'escreverDigital'
     escreverSerialn(valorDoSensor);
     ^~~~~~~~~~~~~~~
     escreverDigital
Error during build: exit status 1

Originally posted by @SteffanoP in #67 (comment)

Adicionar library.properties

O arquivo library.properties é usado para descrever detalhes sobre a biblioteca.
Ele é necessário para que a biblioteca esteja segundo a estrutura padrão de arquivos para a IDE do Arduino

Atualização para controles de motor

Saudações a todos. Ultimamente, venho pensando em uma maneira melhor de controlar motores ultilizando esta lib. E por isso, gostaria de propor a senguintes alterações;

// Código de exemplo

#include "Brasilino.h"

Motor meu_motor(2, 3, 4);

funcao configurar() {
  meu_motor.configurarVelocidade(50); 
  meu_motor.girar(PARA_FRENTE);
}

funcao repetir() {

}

1- Que a velocidade que é passada como parâmetro da função configurarVelocidade não seja entre 0 e 255 e sim entre 0 e 100. Acredito que isso possa contribuir para o aprendizado de quem está começando.

2 - Substituir as funções girar e configurarVelocidade por:
acionar(velocidade)
ou somente
girar(velocidade)

O parâmetro velocidade estaria entre -100 e 100. O menos remete-se justamente ao sentido. Por exemplo, se eu passo 50 como parâmetro o motor giraria em um sentido com 50% da velocidade e se, por acaso, eu passar -50 como parâmetro o motor continua girando com 50% da velocidade, só que no sentido oposto.

O que vocês acham dessas modificações?

O wiki existe?

Eu vi nas issues fechadas que tinha um link pro wiki, mas está quebrado.

O wiki existe ou não existe?

Tradução do termo "Unsigned"

A tradução do termo "unsigned" foi atribuída ao termo "modulo" em PT, fiquei confuso ao ler, e após discutir com alguns colegas a respeito, penso que essa tradução pode causar conflito, pois já existe uma função que dá o valor absoluto de uma variável (abs()), e pela tradução "modulo" o usuário iniciante pode confundir e pensar que são equivalentes.

Sugiro que tal tradução seja revista, "positivo" talvez seja uma saída, ou até mesmo definir "tipo_positivo" para cada tipo de dado que suporta "unsigned".

Revisão do readme.md

Esta edição faz parte do processo de revisão da Laboratoria Code Squads novembro 2020 da iniciativa Code for Development de @EL-BID

Problema de revisão de documentação - readme.md:

Tendo contrastado as informações apresentadas no repositório oficial com os campos solicitados no modelo de readme.md encontraram os seguintes pontos para melhorar:

  • Adicione o logotipo para identificar o projeto.
  • Adicione uma imagem ou gif do projeto para identificar sua principal funcionalidade.
  • Incluir badges com o estado de desenvolvimento, licença, versão, cobertura, social ou outros. Esta ferramenta pode ser útil: https://shields.io/ (tutorial recomendado: https://www.youtube.com/watch?v=SIh5MQoQLPs)
  • Forneça uma tabela com links para cada seção para funcionar como um índice.
  • Especifique os pré-requisitos necessários para executar o projeto (ambiente, bibliotecas, dependências, entre outros), e forneça comandos de instalação para eles.
  • Especifique se as variáveis de ambiente são necessárias e em qual parte da arquitetura elas são colocadas.
  • Adicione uma lista de etapas que permitam a instalação e utilização do projeto localmente.
  • Adicione o comando de execução para testes de unidade.
  • Mencione as tecnologias utilizadas e adicione links referentes à documentação de cada uma.
  • Se necessário, adicione trechos de código com exemplos de uso.
  • Adicionar seção de autores.
  • Adicione uma seção com o processo detalhado para contribuir com o projeto.
  • Adicione uma seção especificando a licença de código aberto que está sendo usada redirecionando para o arquivo LICENSE.md.

Tradução "else if"

Pensar e definir uma boa interpretação para o aninhamento de if, else if e else.

Adicionar link de download.

Adicionar o link de download do arquivo .ZIP no tutorial de instalação assim que o release da versão 1.0.0 estiver disponível.

Renomear nomes das funções "lerDigital" e "lerAnalogico"

Depois de usar a biblioteca algumas vezes e usar a função "lerAnalogico" eu me perguntei: "Ler o quê analógico?". Daí proponho as mudanças do nome dessa função para "lerPinoAnalogico", pois acredito que, dessa maneira, a função vai ser melhor entendida por quem for usar. O mesmo vale para a função "lerDigital", que ficaria "lerPinoDigital". Ou então "leituraAnalogica" e "leituraDigital".

Refatorando o README.md #27

O arquivo README está muito longo, o que causa cansaço na leitura dos futuros usuários. Para melhorar, seria interessante separar os tópicos e linkar para arquivos .md diferentes.

Revisar/melhorar documentação dos comandos

Foi percebido que alguns comandos não estão abrangidos pela documentação, bem como talvez a melhor maneira não seja ter a tabela inteira de comandos no READ.me, creio que esta seja a hora de iniciarmos a WIKI

Implementar um equivalente ao foreach

Uma forma fácil de iterar sobre arrays é usando um foreach, que nada mais é do que um for otimizado. Várias linguagens de programação implementam esse laço de repetição:
PHP:

foreach ( $array as $item )
    echo $item;

Python:

for item in array:
    print item

C#:

foreach (int item in array) {
    System.Console.WriteLine(item);
}

Não há um equivalente direto (nativo) a ele em C/C++, então poderia ser implementado como sugerido aqui.

Definir e usar cabeçalho em todos os arquivos de código

O cabeçalho deve seguir um padrão como esse:

/*
 * Ultrasonic.h
 * 
 * Library for HC-SR04 Ultrasonic Ranging Module in a minimalist way
 *
 * created 3 Apr 2014
 * by Erick Simões (github: @ErickSimoes | twitter: @AloErickSimoes)
 * modified 23 Jan 2017
 * by Erick Simões (github: @ErickSimoes | twitter: @AloErickSimoes)
 * 
 * Released into the MIT License.
 */

E deve ser aplicado em todos os arquivos de código (.h e .cpp)

Usar Arduino-cli como Actions para compilar para múltiplas plataformas

Requisição de Recursos

A ideia é implantar a Action oficial da Arduino CLI para compilar códigos de exemplos para múltiplas plataformas, visto que, fica mais fácil no processo de triagem de testes das plataformas, como das dificuldades em #26

Vantagens

Possibilita realizar uma triagem mais detalhada nas compilações de códigos para diversas plataformas Arduino (ex.: arduinoavr, arduinoOTA, esp32, esp8266 e etc.).

Documentação de como fazer

https://blog.arduino.cc/2019/11/14/arduino-on-github-actions/
https://github.com/arduino/setup-arduino-cli

definição de void

#define nulo void

Nulo não seria NULL/NIL? Void tá mais pra vazio.

#define funcao void

Nesse caso o mais adequado é "procedimento"

Minha sugestão:

#define vazio void
#define procedimento void
#define nulo NULL

Criar um arquivo de testes

Criar um .ino que execute todos os comandos do Brasilino.
Ele deve funcionar como um teste unitário.
Deve ser executado sempre que uma modificação for feita, para garantir que tudo continua funcionando.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.