Giter Club home page Giter Club logo

brasilino's Introduction

Brasilino

License: GPL3 Arduino Lint Arduino Compile

Uma biblioteca que permite programar em linguagem Arduino utilizando comandos facilitados em PT-BR.

Índice

Sobre

De acordo com um estudo realizado pela Education First, o EF EPI (EF English Proficiency Index) 6° edição, publicado em Novembro de 2016, o Brasil aparece como 40° colocado em nível de proficiência em língua inglesa, de um estudo realizado com 72 países, com pontuação de 50,66, o que é considerada como "Baixa" pelo estudo. Tal deficiência em língua inglesa acentua-se ainda mais nas classes sociais menos privilegiadas.

Com o baixo índice de proficiência em língua inglesa apresentado pelo Brasil, muitos brasileiros sentem dificuldade em programar, devido ao fato da língua nativa em que os comandos são inscritos ser o inglês, muitas vezes, não conseguindo associar a palavra "if" ao "se", criando-se assim uma barreira, que muitas vezes afasta o brasileiro do ambiente de desenvolvimento tecnológico.

Nós do Brasilino acreditamos que quebrando esta barreira inicial, criamos o incentivo para que estes brasileros possam ter o primeiro contato com a plataforma Arduino, desenvolvendo assim suas próprias soluções, e a partir deste primeiro contato, os mesmos possam quebrar o paradigma de que programar é difícil, e quando apenas o idioma for a última barreira, através de uma migração gradual, da programação em Brasilino para a programaçao em Arduino, a barreira do idioma possa por fim ser removida.

Veja como é fácil usar nesse exemplo de piscar uma LED:

#include <Brasilino.h>

funcao configurar() {
    saida(13);
}

funcao repetir() {
    ligar(13);
    esperar(1);
    desligar(13);
    esperar(1);
}

A brasilino é uma biblioteca aberta e conta com a participação de toda a comunidade, através das necessidades encontradas pelos usuários, poderemos cada vez mais criar comandos mais intuitivos e simplificados de utilizar, promovendo-se assim que a biblioteca facilite cada vez mais a inserção de novos brasileiros.

Se este é o seu primeiro contato com Open Source, aprenda a como contribuir com projetos Open Source.

Documentação

1. Como utilizar:

  • Instalação através do gerenciador de biblioteca
  • Instalação manual (Alternativa)
  • Exemplos

2. Tabela de instruções:

  • Estrutura Geral
  • Estruturas de Controle
  • Tipos de Dados Comuns
  • Tipos de Dados Lógicos
  • Funções

A Equipe Brasilino

Otacilio Maia Thiago Augusto Erick Simoes Rômulo César
Otacílio Thiago Erick Rômulo
Idelização e Implementação Validação e Implementação Consultor de formatação e Implementação Orientador Acadêmico

Veja a lista completa de colaboradores.

Artigos Relacionados

"Programação Arduino em Português do Brasil" por Otacilio Maia no Blog FilipeFlop

A biblioteca foi apresentada na Mostra Nacional de Robótica em 2016, o que gerou um artigo publicado na mostra virtual.

"Aprenda a programar o arduino em português" por Saulo Alexandre na Autocore Robótica

"Como uma biblioteca permite a inclusão de brasileiros dentro do universo Arduino" por Otacilio Maia no Medium

O Brasilino encontra-se aberto para ser utilizado em todo tipo de pesquisa e desenvolvimento científico-acadêmico.

Conte-nos sobre a sua experiência com o Brasilino

Já utilizou a biblioteca Brasilino, seja em cursos, workshops ou em projetos pessoais?

Deixe o seu feedback nesse form.

Apoio

A biblioteca Brasilino é apoiada pelo Makerama, uma comunidade Maker que apoia o desenvolvimento de ideias criativas no estado de Pernambuco. Mais informações disponíveis em: http://makerama.com.br

Makerama

Licença

Brasilino está licenciado sob a licença GPL-3.0, e tem seus exemplos baseados no trabalho do projeto Arduino. Veja a licença para mais informações.

Sinta-se livre para enviar um email para: [email protected]

brasilino's People

Contributors

eltonfernando avatar ericksimoes avatar italohdc avatar leehmaciel avatar otacilion avatar rafaelsilvabr avatar renlopes avatar rodrigodornelles avatar silvaan avatar steffanop avatar thiagoaugustosm avatar vcwild avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

brasilino's Issues

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".

#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.

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

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.

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?

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.

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

Tradução "else if"

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

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)

O wiki existe?

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

O wiki existe ou não existe?

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

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".

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.

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)

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.