Victory Fernandes Engenheiro Eletricista - UNIFACS Pós-Graduado em Docência do Ensino Superior - UNIFACS Mestrando em Medicina - Neurociências – UFBa www.tkssoftware.com/victory [email protected] @victoryjorge www.tkssoftware.com/victory Victory Fernandes Experiência Docente com Microcontroladores Professor da UNIFACS – 2006 a 2010 Disciplina ministrada com 8051 Disciplina ministrada com PIC Professor da AREA1 – 2012 - Atual Disciplina ministrada com ARDUINO Victory Fernandes Experiência de Projetos com Microcontroladores Envolvido no projeto e competição de robôs Autônomos desde 2006 Sumô de Robôs – 3Kgx20x20cm e 500gx10x10cm Futebol de Robôs – Small Sized League www.roboticaaplicada.com.br www.tkssoftware.com/victory Victory Fernandes Experiência de Projetos com Microcontroladores Projeto MDG - Multideglutógrafo Triagem de pacientes com Doença de Parkinson para detecção de indicadores de aspiração silenciosa Victory Fernandes Experiência de Projetos com Microcontroladores Projeto ParkiGlove Armazenamento e análise do padrão dos tremores da Doença de Parkinson Victory Fernandes Experiência de Projetos com Microcontroladores Projeto PATC Análise em tempo real do padrão dos tremores da Doença de Parkinson e atuação via eletroestimulação para supressão ativa do tremor. Apresentação da Disciplina Sistemas Embarcados Ementa O aluno identificará os conceitos básicos de um sistema embarcado onde a análise e estudo requerem do projetista um conhecimento não apenas de programação clássica, mas também noções de controle de processos, sistemas de tempo real, tecnologias de aquisição de dados (conversores analógico-digitais e sensores de um modo geral) e de atuadores (conversores digital-analógicos, PWM, etc.), além de um cuidado especial no que se refere à eficiência (estruturação, tamanho e velocidade) do código produzido! Objetivos Específicos Ao final da disciplina, o aluno deve ser capaz de: Identificar as diferenças e aplicabilidades de sistemas embarcados Analisar projetos de sistemas embarcados sugerindo melhorias utilizando os conceitos aprendidos. Realizar simulações e testes em sistemas embarcados dentro das especificações requiridas e focando em objetivos pré-determinados. Apresentação da Disciplina Micro Controladores Ementa Identificar as principais características e funcionalidades das arquiteturas de um microcontrolador típico avaliando suas limitações e aplicabilidade em projetos. O aluno desenvolverá a habilidade de criar e simular os códigos. O aluno terá a oportunidade de utilizar kit de microcontrolador. Todo esse processo será baseado em aulas expositivas, aulas práticas em laboratório, simulações e projetos de circuitos. Objetivos Específicos Ao final da disciplina, o aluno deve ser capaz de: Interpretar o funcionamento de um microprocessador baseado nos fundamentos aprendidos com a finalidade de indicar aplicações de microcontrolador. Analisar projetos de microcontrolados sugerindo melhorias utilizando os conceitos aprendidos. Projetar e realizar simulações e testes de projetos microcontrolados os conceitos/comandos/instruções aprendidos. AVALIAÇÃO P1 – Prova Escrita individual Projeto proposto no enunciado da avaliação Algoritmo (Fluxograma) + Programa em C + Eletrônica P2 – Trabalho em equipe Projetos propostos no enunciado da avaliação Possível substituir por projetos de interesse do aluno Conceitos Básicos de ARDUINO Professor Victory Fernandes www.arduino.cc ARDUINO é uma plataforma open-source de software e hardware para prototipagem flexível, fácil de usar e multiplataforma! Software O microcontrolador pode ser programado utilizando a linguagem de programação C para Arduino Linguagem baseada em Wiring (www.wiring.org.co) O desenvolvimento dos aplicativos é feito no ambiente de programação próprio do arduino Desenvolvido em Processing (www.processing.org) Programação em C é requisito básico desta disciplina! 1. Reservem livros 2. Revisem C 3. Tirem dúvidas Arduino UNO Arduino UNO Arduino UNO Entradas e saídas digitais (I/O) 14 (6 com saída PWM) Entradas analógicas 6 Clock de operação 16MHz Processador Atmega328 – Atmel Microcontrolador de 8bits RISC com 131 instruções 2 timers de 8 bits 4 timers de 16 bits Portas de comunicação Gravação via USB; 1 porta RS-232 disponivel Alimentação recomendada 7-12V (pode ser alimentado pela USB) Corrente DC máxima por pino de I/O 40mA Memória Flash 32kB (armazenar código) Memória SRAM 2kB (rodar programa) Memória EEPROM 1 kB (gravar dados) Frequência Unidade no SI: Hertz[Hz] = 1ciclo/seg Múltipl o Nome Símbolo Múltiplo Nome Símbolo 100 -hertz Hz 101 deca-hertz daHz 10–1 deci-hertz dHz 102 hecto-hertz hHz 10–2 centi-hertz cHz 103 quilo-hertz kHz 10–3 mili-hertz mHz 106 mega-hertz MHz 10–6 micro-hertz µHz 109 giga-hertz GHz 10–9 nano-hertz nHz 1012 tera-hertz THz 10–12 pico-hertz pHz 1015 peta-hertz PHz 10–15 femto-hertz fHz 1018 exa-hertz EHz 10–18 atto-hertz aHz 1021 zetta-hertz ZHz 10–21 zepto-hertz zHz 1024 yotta-hertz YHz 10–24 yocto-hertz yHz Clock de 16MHz Em eletrônica e especialmente em circuitos digitais síncronos, o clock é um sinal usado para coordenar as ações de dois ou mais circuitos eletrônicos. Um sinal de clock oscila entre os estados alto e baixo, normalmente usando um duty cycle de 50%, e gerando uma onda quadrada. Unidade de frequência no SI: Hertz[Hz] = 1ciclo/seg www.atmel.com datasheet Não existe divisão interna de clock, arquitetura Harvard conceito de “fast-access Register File” permite executar 1 instrução por ciclo de clock Significa dizer que podemos executar até 16x106 instruções por segundo! 131 instruções Assembler... a maioria de um único ciclo! Arduino MEGA Arduino MEGA Arduino UNO Entradas e saídas digitais (I/O) 54 (15 com saída PWM) Entradas analógicas 16 Clock de operação 16MHz Processador Atmega2560 – Atmel Microcontrolador de 8bits RISC com 131 instruções 2 timers de 8 bits 1 timer de 16 bits Portas de comunicação Gravação via USB; 4 portas RS-232 disponiveis Alimentação recomendada 7-12V (pode ser alimentado pela USB) Corrente DC máxima por pino de I/O 40mA Memória Flash 256kB (armazenar código) Memória SRAM 8kB (rodar programa) Memória EEPROM 4kB (gravar dados) Memória Flash Memória do tipo EEPROM, re-gravável que, ao contrário de uma memória RAM convencional, preserva o seu conteúdo sem a necessidade de fonte de alimentação. Armazena o código do programa que gravamos no Arduino, assim ao retirar a alimentação da placa o código continua gravado e não é perdido! Memória SRAM Static Random Access Memory, memória estática de acesso aleatório, mantém dados armazenados enquanto alimentação é mantida mas ao contrário da DRAM, não requer refresh. Utilizada para executar o programa que gravamos no Arduino, assim ao retirar a alimentação da placa qualquer status de variáveis de execução do código é perdido! Memória EEPROM Electrically-Erasable Programmable ReadOnly Memory, memória não volátil, que ao contrário de uma EPROM, uma EEPROM pode ser programada e apagada eletricamente várias vezes. Utilizada para que seu programa grave dados que deseje recuperar posteriormente caso a alimentção seja perdida a exemplo de status de variáveis de execução do código! Onde comprar? No Brasil... No Brasil... No Exterior... No Exterior... Arduino Shields Arduino Shields O conceito de shields permite empilhar placas com diferentes funcionalidades. Dá flexibilidade ao Arduino para se adequar a diferentes projetos de forma rápida, basta comprar o shield desejado e empilhar. Não encontrou um shield?! Você pode construir o seu e pessoas do mundo todo poderão comprar e será sempre compatível! shieldlist.org GSM-GPRS GPS Display de 7 segmentos Display colorido Display 16x2 Controle de Motor Ponte H – 1A Controle de Motor Ponte H – 2A GameDuino Saida VGA Audio Stereo joystick Ethernet Wi-Fi microSD SDCard logger CanBus ZigBee Saídas a Relé ZigBee Arduino MINI Arduino MINI Arduino UNO Entradas e saídas digitais (I/O) 14 (6 com saída PWM) Entradas analógicas 8 Clock de operação 16MHz Processador Atmega168 – Atmel Microcontrolador de 8bits RISC com 131 instruções 2 timers de 8 bits 1 timer de 16 bits Portas de comunicação Gravação via RS-232 Alimentação recomendada 7-9V (pode ser alimentado pela USB) Corrente DC máxima por pino de I/O 40mA Memória Flash 32kB Memória SRAM 2kB Memória EEPROM 1 kB Arduino NANO Arduino NANO Arduino UNO Entradas e saídas digitais (I/O) 14 (6 com saída PWM) Entradas analógicas 8 Clock de operação 16MHz Processador Atmega328 – Atmel Microcontrolador de 8bits RISC com 131 instruções 2 timers de 8 bits 1 timer de 16 bits Portas de comunicação USB e RS-232 Alimentação recomendada 7-12V (pode ser alimentado pela USB) Corrente DC máxima por pino de I/O 40mA Memória Flash 16kB Memória SRAM 1kB Memória EEPROM 512 B Dimensão Miniaturização Simplificada! Arduino LilyPad Arduino Lilypad Arduino UNO Entradas e saídas digitais (I/O) 14 (6 com saída PWM) Entradas analógicas 6 Clock de operação 16MHz Processador Atmega328 – Atmel Microcontrolador de 8bits RISC com 131 instruções 2 timers de 8 bits 1 timer de 16 bits Portas de comunicação USB e RS-232 Alimentação recomendada 7-12V (pode ser alimentado pela USB) Corrente DC máxima por pino de I/O 40mA Memória Flash 32kB Memória SRAM 2kB Memória EEPROM 1 kB Wearable Devices Funcional Estética Diversão Software Software Software Tutoriais Tutoriais Tutoriais Tutoriais Tutoriais Tutoriais Tutoriais Software Software Tutoriais Tutoriais professor Victory Fernandes www.tkssoftware.com/victory