Escolar Documentos
Profissional Documentos
Cultura Documentos
Leandro Ramos
Leonardo Toledo
Robson Machado
http://www.eaduino.com.br 2
Agenda
10:00 – boas-vindas
10:30 – introdução a plataforma Arduino
11:30 – biblioteca Tvout e o jogo tic-tac-toe (jogo da velha)
12:30 – intervalo
13:30 – divisão dos grupos e atividades práticas
17:00 - encerramento
http://www.eaduino.com.br 3
Arduino
• Arduino é uma
plataforma de
hardware e software
open source
• Linguagem de
programação
compatível com C/C++
• Ambiente de
desenvolvimento
integrado
http://www.eaduino.com.br 5
Arduino
• Baixo custo
comparado a outras
plataformas de
desenvolvimento
http://www.eaduino.com.br 6
Microcontrolador
• Um microcontrolador é um
computador em uma única
pastilha.
• É programado para tarefas
específicas, diferentemente de
um microprocessador de
propósito geral.
http://www.eaduino.com.br 7
Arduino UNO
http://www.eaduino.com.br 8
Shields
• Placas que ampliam e extendem as funcionalidades da
placa base.
• http://www.shieldlist.org/
http://www.eaduino.com.br 9
Ambiente de Desenvolvimento
• O ambiente de desenvolvimento Arduino contém um
editor de texto com os recursos necessários para
escrever um programa, compilá-lo e transferí-lo para a
placa Arduino.
Ciclo de Desenvolvimento
http://www.eaduino.com.br 11
“Hello World”
/*
Blink
Turns on an LED on for one second, then off for
one second, repeatedly.
This example code is in the public domain.
*/
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
}
http://www.eaduino.com.br 12
TVout
• Biblioteca responsável por gerar sinais a partir de um
microcontrolador Atmel AVR.
• Conexão extremamente simples: um cabo coaxial e dois
resistores.
• Utiliza apenas dois pinos digitais e terra.
• Página do projeto: http://code.google.com/p/arduino-tvout/
http://www.eaduino.com.br 13
void setup() {
TV.begin(PAL,120,96);
TV.select_font(font6x8);
TV.println("Hello World");
TV.println("Arduino Day 2014");
TV.delay(10000);
TV.clear_screen();
TV.println("Fatec SCS - EADuino");
}
void loop() {
}
http://www.eaduino.com.br 14
Hardware
• Nove chaves tácteis, utilizando apenas um pino
analógico.
• Divisor de tensão
http://www.eaduino.com.br 16
void Verify() {
boolean winner;
winner = VerifyPlayer( 'X' );
if( winner ) Serial.println("Player 1 wins!");
else {
winner = VerifyPlayer( 'O' );
if( winner ) Serial.println("Player 2 wins!");
}
if( winner ) {
for( byte x = 0; x <= 8; x++ ) board[x] = ' ';
player1 = true;
Welcome();
}
}
http://www.eaduino.com.br 24
Atividades Práticas
• Coding Dojo
Como treinar
• Randori Kata: Treino Livre
• Duplas resolvendo o problema usando TDD e baby steps
• piloto opera o teclado
• copiloto ajuda na solução
• Enquanto o teste não passa, a plateia não pode se manifestar
(exceto a pedido dos pilotos)
• Quando o teste passa, pessoas da plateia podem sugerir o
próximo passo
TDD?
• Test Driven Development (design)
TDD e Arduino
• Testes não serão automatizados
• Cartões verdes e vermelhos (o quadro branco é nossa
documentação dos testes manuais)
• Testes antes da implementação
http://www.eaduino.com.br 30
Dojo de hoje
• Ideias?
• montar o tabuleiro na tela
• posicionar o X ou O na coordenada correta (lacuna no tabuleiro)
• verificar quando há empate (no sketch atual, somente verifica
vencedores).
http://www.eaduino.com.br 31
Mãos à obra
• Candidatos?