Baixe o app para aproveitar ainda mais
Prévia do material em texto
Projeto de Sensores e Atuadores Turma: ECAT51 Prof.: Ricardo Brandão ASSEMBLER BOT Equipe: IGOR SOARES MAGALHÃES PEDRO EMANUEL NAVARRO ROBSON SEICHI GONDO KOHATA 2 Manaus, 29 de Junho 2018 Sumário 1 Introdução ............................................................................................................ 3 2 Ambiente de desenvolvimento ............................................................................ 4 2.1 Desenvolvimento do firmware ...................................................................... 4 2.2 Desenvolvimento mecânico ............................................................................ 5 3 Descrição do projeto ............................................................................................ 6 3.1 Operação do sistema ...................................................................................... 7 3.2 Projeto mecânico ............................................................................................ 8 3 1 Introdução Com a tecnologia estando cada vez mais presente em nosso cotidiano, programar tornou-se uma habilidade tão fundamental quanto aprender matemática, a ler e escrever. Porém, pessoas em geral (crianças e pessoas de fora da área de programação) têm pouca oportunidade de aprender a fazê-lo, pois são raras as formas de ensino voltadas a programação que ensinam de forma prática e intuitiva. Cabe observar que programar não se trata de uma habilidade voltada apenas para quem quer trabalhar com programação, mas sim, estimular o pensamento lógico, a criatividade, o raciocínio matemático, a capacidade de resolução de problemas e até mesmo não ter um entendimento completamente leigo quando se deparar com um algoritmo. Mesmo pessoas que não são da área deveriam ter um entendimento básico de programação para lidar melhor com os desafios das mais diversas áreas e também em suas próprias rotinas. Tendo em vista isto, foi elaborado um projeto cuja proposta é incentivar o ensino da programação de maneira prática, divertida e intuitiva para pessoas que estão dando seu pontapé inicial na área de programação (incluindo crianças), no qual, através da montagem de uma simples torre de peças coloridas, as crianças possam observar um robô executar movimentos de acordo com a identificação de cores das peças da torre que elas montaram por meio de um leitor. 4 2 Ambiente de desenvolvimento Para o desenvolvimento físico das peças que compõem o projeto, o programa Autodesk Inventor 2018 foi utilizado para o desenvolvimento do design 3D das peças, e o software CloneGen3D foi utilizado juntamente com o CloneMaker para realizar a interface com a impressora 3D disponível no IFAM-CMDI. Já para o processamento de dados do projeto, foi utilizado o microprocessador Arduino juntamente com sua IDE para desenvolvimento do firmware. 2.1 Desenvolvimento do firmware A IDE Arduino versão 1.6.9 foi utilizada para o desenvolvimento do firmware do projeto, a mesma pode ser baixada no site https://www.arduino.cc/en/main/software. A linguagem em que o código foi feito é C++. Além das bibliotecas já inclusas em qualquer projeto feito na IDE, foram utilizadas as seguinte bibliotecas: Adafruit_TCS34725softi2c.h: biblioteca que permite utilizar dois sensores de cor. Criada pelo usuário Fire7 no site www.github.com e disponível no link: https://github.com/Fire7/Adafruit_TCS34725_SoftI2C. EEPROM.h: disponibilizada pela própria IDE. É utilizada para administrar a memória EEPROM. Stepper.h: facilita o controle do motor de passo. Também está disponível na própria IDE. SoftwareWire.h: necessária para o funcionamento da biblioteca Adafruit_TCS34725softi2c, criada pelo usuário Testato no site www.github.com e disponível em: https://github.com/Testato/SoftwareWire. SoftwareSerial.h: disponibilizada pela própria IDE. Possibilita a criação de portas seriais por software. Utilizada na comunicação do modulo bluetooth. O microcontrolador responsável por fazer o processamento dos dados e carregar o firmware do projeto foi o Arduino Uno R3. 5 2.2 Desenvolvimento mecânico O software Autodesk Inventor 2018, foi utilizado no desenvolvimento do desenho 3D das peças do projeto. Este pode ser obtido no site https://www.autodesk.com.br/products/inventor/free-trial. Além disso, foram utilizados dois softwares para realização da interface do computador com a impressora 3D, todos estes foram fornecidos pelo IFAM-CMDI. Estes são: CloneMaker e CloneGen3D. 6 3 Descrição do projeto O projeto tem como objetivo incentivar o ensino da programação para pessoas leigas na área de programação que estão interessadas no aprendizado da mesma (em específico crianças) de maneira prática e divertida, utilizando peças coloridas para a montagem de uma torre com a sequência de cores da forma que o usuário desejar, que servirá como o programa em si, para executar os movimentos do robô. O seu funcionamento é realizado por meio de um cursor que tem um Motor de Passo, vai funcionar como um compilador físico de cada linha, sendo a mesma a cadeia de cores compostas na torre de LEGO, onde terão dois sensores de cor, um do lado esquerdo e outro do lado direito para detectar a cor atual de cada parte, como mostrado na Figura 1: Figura 1 – foto à esquerda mostrando a parte externa do leitor de cores da torre e à direita a parte interna do leitor com alguns componentes Outra parte essencial do projeto é o robô em forma de carrinho, mostrado na Figura 2, que executará os comandos conforme lhe será informado, utilizando componentes como um Motor com Caixa de redução, que consiste um motor DC independente acoplados a uma caixa de redução. Um detalhe importante, é o fato do cursor apenas realizar ações quando as mesmas forem exigidas pela programação de LEGO, que é executado no embarcado arduino UNO, no qual é onde será encontrada toda a lógica para saber o que cada comando irá fazer, como se fosse um intérprete, porém capaz de fazer compilações, parecido com um processador. 7 3.1 Operação do sistema A utilização do produto consiste em passos sequenciais que devem ser seguidos pelo usuário para seu correto funcionamento: 1. O usuário deve retirar o código (blocos de lego) e remontá-lo como deseja a programação -> os comandos referentes a cada bloco de lego são: a. (2)Bloco branco = Início do programa b. (2)Bloco verde = Robô se desloca para frente c. (2)Bloco amarelo = Robô gira 90º no sentido horário d. (2)Bloco azul = Robô gira 90º no sentido anti-horário e. (2)Bloco roxo = Lê a distância até o objeto a frente do robô e salva no registrador atual f. (1)Bloco laranja = Adiciona uma flag/bookmark(ponto de retorno) g. (1)Bloco cinza = Comando SE, testa o valor do registrador atual e vai para o flag se verdadeiro h. (1)Bloco marrom = Desloca o ponteiro de leitura do algoritmo para o flag i. (1)Bloco rosa = Desloca o ponteiro do registrador atual para o registrador selecionado j. (2)Bloco preto = Fim do código Os números representam quantos espaços cada bloco deve ocupar numa única linha. Os que só ocupam (1) devem ser acompanhadosde um segundo bloco chamado argumento 8 2. O usuário deve inserir novamente o código, sendo que o header fique bem encostado na base do módulo leitor. O módulo leitor irá bipar após a inserção do código e contar 5 segundos e então começará a leitura de código 3. O robô irá executar os comandos conforme o código informado até o seu fim. No tratamento de erros, se o usuário tentar fazer algo não padronizado pelo módulo leitor (inserir uma cor que não é identificada como uma função de código, pedir para acessar um flag não existente, etc.) o mesmo irá bipar durante a leitura e, então vai mover a linha de código (lego) de volta ao ponto inicial. 3.2 Projeto mecânico Para o desenvolvimento mecânico do projeto foram necessários alguns componentes eletrônicos tanto para o funcionamento do leitor, quanto pra o robô, listados na Tabela 1 abaixo: Tabela 1 – Lista de componentes utilizados no projeto Componente Função Quantidade Sensor de Cor RGB TCS34725 com Filtro IR Detectar as cores das peças que passarão pelo leitor 2 Sensor de Distância Ultrassônico HC-SR04 Detectar objetos que possam vir à na frente do robô 1 Protoboard Permitir a conexão elétrica entre os componentes com o arduino 1 Driver Motor Ponte H L298n Controlar cargas indutivas como o motor de passo 1 9 Arduino Uno Atribuir comandos para os componentes executarem 2 Acelerômetro e Giroscópio 3 Eixos 6 DOF MPU-6050 Medir aceleração e velocidade linear e angular 1 Motor DC com de redução Rotacionar o robô 2 Motor de Passo Avançar a torre de peça em peça no leitor 1 Módulo Bluetooth HC-05 Comunicação wireless entre o robô e o arduino. 2 Também foram utilizados parafusos, porcas e arruelas para montagem e fixação dos componentes, listados na Tabela 2 abaixo: Peças Foto Onde foram utilizados 4 Arruelas Lisas 3/16” 4 Parafusos Phs Pan 5x10 4 Porcas Sextavadas M5 Utilizados para fixar a roda boba do robô 4 Arruelas Lisas M3 4 Parafusos Phs Pan 3x10 10 4 Porcas Sextavadas M3 Utilizados para fixar o driver do motor no leitor 2 Arruelas Lisas M3 2 Parafusos Phs Pan 2,5x10 2 Porcas Sextavadas M2.5 Utilizados para fixar o acelerômetro 4 Arruelas Lisas M3 4 Parafusos Phs Pan 3x25 4 Porcas Sextavadas M3 Utilizados para fixar os motores das duas rodas traseiras do robô
Compartilhar