arduinopro

Download Arduinopro

If you can't read please download the document

Upload: ricardo-ogliari

Post on 06-Mar-2016

215 views

Category:

Documents


0 download

DESCRIPTION

Apresentação realizada no 2º Connecting Knowledge, mostrando tópicos mais avançados sobre Arduino, como Comunicação Serial, Banco de Dados e Funções úteis.

TRANSCRIPT

Introduo a um novo produto

Arduino Alm do Setup e Loop

Ricardo da Silva Ogliari

Agenda

Introduo

Loop e Setup

Outras funes

A grande estrela: a porta serial

Demo 1: Vocs j esto vendo

Demo 2: Arduino e Java Swing

Demo 3: Arduino e GCM

Eu

Ricardo da Silva Ogliari

Instrutor Globalcode

Things Hacker Team

Twing Studio

StillRocker

Revistas:Mobile Magazine

Revista Esprito Livre

iMasters

Sites: globalcoders, itweb, mobilidadetudo e THT

Introduo

O arduino muito mais que loop e setup;

A porta serial a porta pro mundo;

Bibliotecas j conhecidas;

Outras funes

random: nmeros randmicos;

constraint: constraint (0, 1, 8) retorna 1;

map: escala valores map(10, 0, 1023, 0, 2046);

Trabalhando com bits:

int x = 0xbc 10001100 / bitRead(x, 0);

int x = 2 0010 bitWrite(x, 0, 1) vira 3

Tons de msica:

Tone(4, 500, 500) porta, frequncia (megahertz), durao

Interrupo

Arduino no tem Sistema Operacional;

nica tarefa;

Interrupes:

dentro do setup:

attachInterrupt(0, goFast, FALLING);

0 ou 1: a porta ser a 2 ou 3;

funo a ser chamada;

CHANGE, RISING ou FALLING: mudana, para cima ou para baixo;

AGORAAAAA!!!!!!

ARDUINO

PC

USB paraSerial

Microprocessador

UART

Buffer128KB

SKETCH

Serial no lado Arduino

Serial.println

Serial.begin(baudrate)

Serial.available

Serial.read

Funo serialEvent, chamada entre intervalos das chamadas ao loop

Serial no lado Java

RXTX - JavaComm

http://rxtx.qbang.org/wiki/index.php/Main_Page

import gnu.io.CommPortIdentifier;

import gnu.io.SerialPort;

import gnu.io.SerialPortEvent;

import gnu.io.SerialPortEventListener;

Serial no lado Java

CommPortIdentifier portId = null;Enumeration ports = CommPortIdentifier.getPortIdentifiers();

while (ports.hasMoreElements()) {CommPortIdentifier c = (CommPortIdentifier) ports.nextElement();if (c.getName().equals(COM37)) portId = c;}

serialPort = (SerialPort)portId.open(getClass().getName(),TIME_OUT);

serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);

input = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));output = serialPort.getOutputStream();

serialPort.addEventListener(this);serialPort.notifyOnDataAvailable(true);

Serial no lado Java

public synchronized void serialEvent(SerialPortEvent oEvent) {if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {try {String inputLine = input.readLine();} catch (Exception e) {}}}

public static synchronized void writeData(String data) {try {output.write(data.getBytes());} catch (Exception e) {}}

Banco de Dados no Arduino

Flash Memory: o HD do Arduino. Memria no voltil.

aonde vo os programas

ATMega8 8kb de Flash

ATMega168 16kb de Flash

ATMega328 32kb de Flash

Banco de Dados no Arduino

Memria RAM: No ATMega328 so 2K; Variveis;

A diretiva PROGMEM

#include

Possui a funo pgm_read_word;

Tipos de dados especiais: prog_char, prog_int32_t

Banco de Dados no Arduino

EEPROM: Apesar do nome no apenas leitura;

Adiciona ou l um byte por vez;

#include

EEPROM.read();

EEPROM.write(, byte);

DEMOS

DEMOSSSSSSSSSSSSSSSSSSSSSSS!!!!!!!

PERGUNTAS?

[email protected]

@MOBILIDADETUDO

THINGSHACKERTEAM.BLOGSPOT.COM

@THINGSHACKERTM