Mudanças entre as edições de "STE29008-2019-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 95: Linha 95:
 
*Verificar "β parameter equation":
 
*Verificar "β parameter equation":
 
** https://en.wikipedia.org/wiki/Thermistor
 
** https://en.wikipedia.org/wiki/Thermistor
 +
 +
= 19/08/2019 – Correção Projeto 1=
 +
* Implementado em conjunto a versão long e float.
 +
 +
 +
= 21/08/2019 – Usando C++=
 +
 +
==Mudança de nível de abstração==
 +
*Arduino Mega --> ATmega2560 (Ex.: I/O Ports)
 +
*[http://docente.ifsc.edu.br/roberto.matos/ste_public/doc/sch_mega2560-original.pdf Esquemático Arduino Mega]
 +
*[http://docente.ifsc.edu.br/roberto.matos/ste_public/doc/sch_mega2560-clone_CH340G.pdf Esquemático Arduino Mega - CLONE]
 +
 +
<!--
 +
*[https://www.arduino.cc/en/uploads/Main/arduino-mega2560-schematic.pdf Esquemático Arduino Mega]
 +
*[https://robotdyn.com/pub/media/0G-00005641==MEGA-PRO-CH340GATmega2560/DOCS/Schematic==0G-00005641==MEGA-PRO-CH340GATmega2560.pdf Esquemático Arduino Mega - CLONE]
 +
-->
 +
 +
[[Arquivo: portas_arduino_MEGA.png|800px]]
 +
 +
 +
Fonte: https://www.arduino.cc/en/Hacking/PinMapping2560
 +
 +
<!-- [[Arquivo: portas_arduino_uno.png|300px]]
 +
[[Arquivo:ATmega328p_pinout.png|600px]] -->
 +
 +
== ATmega2560:  I/O Ports==
 +
*[http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf Datasheet ATmega2560]
 +
*[http://docente.ifsc.edu.br/roberto.matos/ste_public/doc/datasheet_ATmega2560.pdf Datasheet ATmega2560 (local)]
 +
 +
*[http://www.avr-tutorials.com/digital/about-avr-8-bit-microcontrollers-digital-io-ports Resumo Portas]
 +
 +
 +
*Tabela verdade de configuração das portas:
 +
[[Arquivo:Port_Pin_Configurations.png|600px]]
 +
 +
 +
*Endereços registradores de I/O:
 +
[[Arquivo:io_registers_address_2560.png|800px]]
 +
 +
==GCC, avr-libc==
 +
 +
===Fluxo Ferramentas:===
 +
 +
[[Arquivo:Avr-gcc.png|800px]]
 +
 +
 +
===AVR-LIBC:===
 +
*[https://www.nongnu.org/avr-libc/ avr-libc]
 +
*[https://www.nongnu.org/avr-libc/user-manual/group__demo__project.html A simple Project]
 +
 +
 +
===Desenvolvimento:===
 +
* É obrigatório a instalação das ferramentas (Toolchain e o AVR-Libc).
 +
* O aluno pode escolher usar o Eclipse ou montar seu próprio Makefile.
 +
 +
 +
*Ferramentas Necessárias:
 +
**[http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_GCC_Toolchain Instalação do Toolchain e AVR-Libc]
 +
 +
 +
* Instalação do Eclipse:
 +
**[http://tele.sj.ifsc.edu.br/~arliones.hoeller/eclipse-neon2-x86_64.tar.bz2 Eclipse IDE Neon.2 para Linux 64-bits]  (última atualização em 24/02/2017) - Mantido pelo [[Arliones_Hoeller | Prof. Arliones]].
 +
** OU
 +
** [https://www.eclipse.org/cdt/ Instalação do Eclipse para C/C++] e [http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download Plugin dentro do Eclipse]
 +
** E
 +
**[[Eclipse_AVR-LIBC | Iniciando um projeto no Eclipse usando o AVR Plugin]]
 +
 +
 +
*Makefile:
 +
**[http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/ Guia]
 +
**[http://docente.ifsc.edu.br/roberto.matos/ste_public/src/Makefile Exemplo Simples]
 +
**[https://gist.github.com/rynr/72734da4b8c7b962aa65 Exemplo Complexo]
 +
 +
==Prática==
 +
*Implemente um programa usando GCC e avr-libc para ligar um led quando um botão for pressionado ([[ESTE:_General_Purpose_Input_and_Output_(GPIO)|exemplo]])
 +
*[https://www.geeksforgeeks.org/bitwise-hacks-for-competitive-programming/ Operação de Bits em C/C++]
 +
*[http://www.cplusplus.com/doc/boolean/ Operações Booleanas em C/C++]
 +
*[https://www.avrfreaks.net/forum/tut-c-bit-manipulation-aka-programming-101?name=PNphpBB2&file=viewtopic&t=37871 Programming 101 - By Eric Weddington]

Edição das 17h03min de 20 de agosto de 2019

Sistemas Embarcados: Diário de Aula 2019-2

29/07/2019 – Apresentação

31/07/2019 – Introdução

05/08/2019 – GPIO


  • Definição das Duplas:
    • Daniel e Anderson
    • Ameliza e Natalia
    • Guilherme e Marcone
    • Allex e Douglas
    • Fabiano e Filipe Kuhnen
    • Felipe Cardoso e Luiza
    • Gustavo e Gabriel

07/08/2019 – Experimento UART

12/08/2019 – Projeto 1: Sensor de Temperatura - Arduino

Atividade

O objetivo deste experimento é apresentar um exemplo básico de programação de sistema embarcado com microcontrolador. Para isto, será desenvolvido um sensor de temperatura com comunicação serial utilizando a plataforma Arduino.

  • Material necessário:
    • Arduino Uno;
    • Termistor NTC 10KOhm;
    • Resistor 10KOhm;
    • Matriz de contato;
    • Computador com IDE do Arduino instalada.
  • Para completar o desafio, utilize o site arduino.cc como referência, e construa um sketch (programa na IDE do Arduino) que, a cada 1 segundo, pisque um LED (veja o LED já na placa do Arduino no pino 13), e leia um valor do sensor de temperatura e escreva, em graus celcius, na tela. Um pseudo-código da sua aplicação seria:
loop() {
    ligaLED();
    AdquireTemperatura(); // lê do ADC e converte para Celcius
    desligaLED();
    ImprimeResultado(); // pela serial
    dorme1segundo();
}
  • Para completar esta atividade, você precisará:
    • Montar um circuito com divisor de tensão utilizando o NTC e o resistor para aquisição do sinal através de uma porta analógica do Arduino
    • Especificar um modelo (equação) para obter o valor da resistência do NTC a partir do valor de tensão lido no canal analógico do Arduino;
    • Utilizar o modelo de Steinhart-Hart para obter a temperatura a partir da resistência;
    • Calibrar o seu sistema para temperaturas entre 0 e 50 graus celcius (utilize esta calculadora e a tabela de resistência-temperatura do seu NTC abaixo);
    • No programa arduino, implemente duas versões do software: uma utilizando apenas "float" e outra utilizando apenas "int 32-bits" (compare as versões).
  • Entregue um relatório curto (1 página), comparando os resultados obtidos em termos de:
    • Uso de memória de programa (flash - código-fonte);
    • Uso de memória de dados (RAM);
    • Tempo necessário para o cálculo (conecte o pino do LED a um osciloscópio - o tempo que o LED fica acesso é o tempo que leva para fazer o cálculo).
  • Observações:
    • O trabalho deve ser executado em dupla.
    • Entrega até 18/08 via Sigaa


NTC-10Kohm-tabela.jpg

14/08/2019 – Projeto 1: Sensor de Temperatura - Arduino (cont.)

19/08/2019 – Correção Projeto 1

  • Implementado em conjunto a versão long e float.


21/08/2019 – Usando C++

Mudança de nível de abstração


Portas arduino MEGA.png


Fonte: https://www.arduino.cc/en/Hacking/PinMapping2560


ATmega2560: I/O Ports


  • Tabela verdade de configuração das portas:

Port Pin Configurations.png


  • Endereços registradores de I/O:

Io registers address 2560.png

GCC, avr-libc

Fluxo Ferramentas:

Avr-gcc.png


AVR-LIBC:


Desenvolvimento:

  • É obrigatório a instalação das ferramentas (Toolchain e o AVR-Libc).
  • O aluno pode escolher usar o Eclipse ou montar seu próprio Makefile.




Prática