Você está na página 1de 60

i

ndice
Introduo ao Program-ME e Arduino ......................................... 1
U U

Componentes para Program-ME / Arduino .............................. 2


U U

Aplicaes prticas ................................................................... 3


U U

O que Arduino........................................................................ 4
U U

Caractersticas tcnicas do Arduino/Program-ME.................... 5


U U

Program-ME vs. Arduino ......................................................... 6


U U

Shields....................................................................................... 7
U U

Tipos de Arduino ...................................................................... 9


U U

Arduino em protoboard........................................................... 11
U U


U U

ii Arduino para executar ou para desenvolver? .......................... 12 Arduino em papel ................................................................... 13


U U

Portas digitais, analgicas e PWM ......................................... 14


U U

Configurando seu Program-ME .................................................. 18


U U

Cuidados Especiais ................................................................. 18


U U

Alimentando seu Program-ME / Arduino ............................... 20


U U

Mapa de portas dos componentes Program-ME ..................... 23


U U

Ligando / Desligando componentes do Program-ME ............. 26


U U

Seus primeiros programas ........................................................... 30


U U

Ciclo de desenvolvimento com Arduino / Program-ME ........ 30


U U

Instalando os softwares necessrios ........................................ 34


U U


U U

iii Conhecendo o editor Arduino ................................................. 37 Escrevendo cdigo do primeiro programa .............................. 41
U U

Leds com luminosidade varivel ............................................ 45


U U

Fazendo o Program-ME / Arduino enviar dados para o computador ............................................................................. 47


U U

Arduino & Processing............................................................. 49


U U

Apndice tcnico ........................................................................ 50


U U

Lista de componentes Program-ME ....................................... 50


U U

Especificaes tcnicas ........................................................... 56


U U

Introduo ao Program-ME e Arduino


ProgramMEummicrocontroladorprogramvel baseadoemuma plataformaopensource, chamadaArduino.Podeser utilizadoparacontrolar diversostiposde componenteseletrnicos permitindoacriao,prototipaoeatmesmoproduode hardwareseprojetoseletrnicosemgeral.

Componentes para Program ME / Arduino


DiversoscomponentespodemserligadosnoProgramME/ Arduino: Acelermetro,bssola,GPS; Comunicaosemfio:rdiofrequncia,infravermelho, Bluetooth,RFID; DisplaysLCD; Sensoresdeluz,temperatura,toque,umidade, presena; Motores:DC,motordepassoeservomotor; Circuitosintegradosemgeral; Ledsepainisdeleds; Detectordecor; Litordeimpressodigital;

Aplicaes prticas
Criaoderobseinvenes; MquinasdecorteCNC; Desenvolvimentodesistemasdelocalizaoe identificaoautomticacomRFID; Automaoresidencial:controledetomadas/rels, dimmer,sensoresdepresena; Artetecnolgicaeentretenimento Hackingdehardware:integraocomiPhone,telasde Nokia,GPSdaGarmin,controleremoto,SunSpot; Ensino/Educao:podeserutilizadoemcursosde graduaoetcnicosemgeralparaensinar programao,eletrnica,robticaecomputaofsica.

O que Arduino
Arduino foi criado na Itlia por Mximo Banzi com o objetivo de fomentar a computao fsica, cujo conceito aumentar as formas de interao fsica entre ns e os computadores. Por se tratar de um padro com especificaes livres de patentes e softwares opensource, temos vrios fabricantes independentes de Arduino ao redor do mundo, incluindo o Brasil que oferece as marcas: Severino, Tatuino, Modelixino e agora o ProgramME da Globalcode. Arduino simples, fcil de programar e barato. Motivos mais que suficientes para fazeruma comunidade crescente no mundo todo.

Caractersticas tcnicas do Arduino/Program ME


9 Baseado no ATMEga da empresa AVR, fabricante de microcontroladores em plena ascenso e concorrente doPIC 9 PodeusarATMega8(8K), ATMega168(16K)ouATMega 328(32K) 9 Clock16MHz 9 512bytesdeEEPROM 9 1serialUART 9 1interfaceI2C 9 20milhesdeinstruesporsegundo 9 14portasdigitais 9 6analgicas 9 5v com regulador para trabalhar com alimentao externadeat12v

Program ME vs. Arduino


O ProgramME 100% compatvel com Arduino verso 2009, porm o ProgramME inclui componentes onboard para voc ingressar facilmente no mundo da eletrnica, computao fsica, programaoerobtica. OProgramMEjincluiosseguintescomponentesonboard:
9ledssendo3PWM; Entradapara2servo motores; Boto/chavettil; Speaker; 4transistoresTip122 ATMega328 Sensordeluz; Entrada2potencimetros;

Shields
Outra interessante caracterstica do Program ME / Arduino a possibilidade dele receber inmeros shields em camadas. Shields so placas com componentes adicionais que podem ser encaixadas em cima do Arduino / ProgramME alm de eventualmente permitir que outro shield seja empilhado formandodiferentescamadasdecomponentes.

Estaarquiteturafacilitaoacoplamento,reusoemanutenode shieldsespecficosquepodemsercompartilhadospordiferentes projetos.

Tipos de Arduino
Podemos chamar o Arduino da imagem a seguir como o Arduino convencional que tipicamente utiliza ATMega 168 ou ATMega328:

10

Existem tambm diferentes tipos de Arduino alm do convencionalparaatenderaprojetosmaisespecficos:


ArduinoMega ArduinoNano

+portasemaiorcapacidade LilypadArduino

Parapequenodevices ProgramME

+portasemaiorcapacidade

Dispositivodidtico

11

Arduino em protoboard
Como o projeto eletrnico do Arduino muito simples, fcil construir um utilizando protoboard, papel ou corroendo uma placadefacesimples.VejaoArduinoemprotoboard:
9 2 Capacitores eletrolticos de 100microFaradspor25V 9 2Leds 9 1 cristal de 16MHz (para o clock) 9 1protoboard 9 1resistorde1k 9 1resistorde330R 9 2capacitorescermicos(22) 9 1ATMega168ou328

12

Arduino para executar ou para desenvolver?


Podemos fazer com baixo custo um Arduino em protoboard com um mnino de componentes. Mas neste caso teremos um Arduino suficiente apenas para execuo de programas. Como podemos observar no temos nenhum tipo de circuito que permitaatransfernciadenovosprogramasparaochipATMega 168. Por este motivo que o projeto original conta com um circuito que permite conectarmos o Arduino via USB no PC, este circuito o FT232RL que representa um tipo de ponte de comunicao serialRS232viaUSB. ValelembrarqueocustodestecircuitoUSB(FT232RL)pode representaromaiorcustodoprojeto!

13

Arduino em papel
possveltambmfazerArduinosempapel,ouseja,imprimimos emumpapeloesquemadocircuito,colocamososcomponentes porcimaeembaixodopapelesoldamosafiao:

14

Portas digitais, analgicas e PWM


O Arduino disponibiliza diversas portas digitais e analgicas para ligarmos diferentes componentes eletrnicos (ex. leds, sensores, motores) e programar via software seu comportamento ou ler dadosdesensores.

15

16

Nasportasdigitaispodemoslerougravar0/1ouHIGH/LOW. Um led em uma porta digital em estado HIGH um led aceso (Vinicius, isso depende da forma de ligar o led e no sempre verdade) e consequentemente se passarmos para 0 ou LOW, apagaremosoLED. As portas analgicas de entrada podemos converter um sinal analgico dentro da faixa de trabalho do Arduino para nmeros entre0e1023,quantomaioraamplitudedaonda,maiorovalor que leremos. Potencimetros e sensores de luz so exemplos de componentes que tipicamente so ligados nas portas analgicas deentrada.

17

O Arduino tambm disponibiliza portas digitais PWM (Pulse With Modularization) que simulam um controle de potncia em portas digitais. Podemos usar PWM para controlar a velocidade derotaodeummotorouaintensidadedebrilhodeumLED. Desta forma sabemos que cada componente ser ligado em um porta digital convencional, PWM ou uma porta analgica. O Arduino permite que uma porta analgica funcione como digital, masnoocontrrio.

18

Configurando seu Program-ME


Cuidados Especiais
OProgramMEnoumdispositivofrgil,masimportante ficarmosatentosemalgunsdetalhesquandotrabalhamoscom correnteeltrica. 1. Oprimeirocuidadoseriaquantoaformade alimentao:viaUSBoufonteexterna,assuntologo aseguirdedicamosumtpicointeiro. 2. Osegundoprincipalcuidadoquandoaspartesdo ProgramME(eArduinosemgeral)queconduzem corrente,sendoapartemaisperigosaoconector

USBprateadoqueaterradoenodeveencostar emcomponentesdeumshieldinstalado.

19

3. Eoterceirocuidadoquandousar110ou220em reles,porexemplo,eestiverligandoissonoseu ProgramME.Tenhacertezadoqueestarfazendo,o ProgramMEcontacomumdiodoparaproteodo transistor,masseumrelestiverligadodeforma erradapodeserfatalparaaplacatoda. DediqueiestecaptuloaoprimeiroProgramMEfabricadoque explodiuemminhabancadaquandoesbarreiumfiocom110V noconectorprateadoUSB!!!

20

Alimentando seu Program-ME / Arduino


O ProgramME / Arduino pode ser alimentado com energia da porta USB ou pode receber uma fonte externa de alimentao. extremamente recomendado que utilize um fonte externa quando usar componentes que consomem corrente totalizando 500mA,comoocasodemotores,relesediversosoutros. MUITO IMPORTANTE QUE TENHA ESTE CUIDADO POIS VOC PODER QUEIMAR SUA PORTA USB OU AT MESMO SEU PROGRAMME!!! Vocdeveconfiguraratravsdeumjumper(JEXT/JUSB)quala forma pretendida de alimentao conforme apresentamos na imagemaseguir:


Nestecaso temoso ProgramME configuradopara receber alimentao externa.Ostrap estaligandoos pinos1e2.

21

22

Aquitemoso ProgramME sendo alimentado porUSBcom ostrap ligandoos pinos2e3.

SeoProgramMEficarsemostrapnoligar!!

23

Mapa de portas dos componentes Program-ME Porta Componente Cdigo


Digital0 Digital1 Digital2 Digital3 Digital4 Digital5 Digital6 Digital7 Digital8 Digital9 Digital10 Digital11 Digital12 Digital13 Boto/Chave1 Led2verde Led3verde Led4amarelo Led5amarelo Led6amarelo Led7vermelho Transistor Led8vermelho Transistor Servo1 Servo2 Speaker LEd9vermelho Chv1 L2 L3 L4 L5 L6 L7 Q3 L8 Q4 Servo1 Servo2 SP1 L9

Digital14 Analgica0 Analgica1 Analgica2 Analgica3 Analgica4 Analgica5 Led1verde omesmoqueDigital14 Potencimetro1 Potencimetro2 Transistor Transistor SensordeLuzLDR

24 L1 Led 1 verde L1 JP6 JP7 Q2 Q5 R16

25

O ProgramME / Arduino pode acessar as portas analgicas e tratlas como digitais usando os numeros dos pinos em sequencia, ou seja, a porta analgica zero ser tratada como digitalquandoforreferenciadacomopino14eassimpordiante. Analgica0 Analgica1 Analgica2 Analgica3 Analgica4 Analgica5 Pino14ouDigital14 Pino15ouDigital15 Pino16ouDigital16 Pino17ouDigital18 Pino18ouDigital18 Pino19ouDigital19

26

Ligando / Desligando componentes do ProgramME


O ProgramME pode ser configurado para usar ou no cada um dos seus componentes onboard atravs de um sistema de straps / jumpers nomeados como JP8 e JP11. Quando todos os jumpers so retirados o ProgramME passa a funcionar exatamento como um Arduino com todas suas portas livres, podendoinclusiverecebershields.

27
BarradeStrapsJP8 TransistorQ2 TransistorQ3

L Speaker e d 9

L e d 8

L e d 7

L e d 6

L e d 5

L e d 4

L e d 3

L e d 2

L e d 1

28

Estejumpermuito importantepoisnele indicamossevamos alimentar oArduinopor USBouporfonteexterna!


Tran sistor Q4 Tran Senso Boto / sistor r Luz Chave Q5 /LDR 1 BarradeStrapsJP11

29

Ao retirar o strap preto (poder ser, eventualmente, de outra cor) voc estar desligando o componente onboard do ProgramME. Retirando todos os straps o ProgramME passar a funcionar como Arduino liberando todas as portas digitais e analgicas. Voc tambm poder usar um shield que utilize algumas portas (retirando os straps delas) e as outras manter ligadasnoProgramME.

30

Seus primeiros programas


Ciclo de desenvolvimento com Arduino / ProgramME
1. Ligaodecomponentesoffboard ApesardoProgramMEjincluiralgunscomponentesonboard, comoleds,speakeretransistores,muitasvezesqueremosligar componentesdiferenciados,comoporexemploumultrasom paramedirdistncia,muitotilpararobsdesviaremde obstculos.

TemosnafotoaseguirumultrasomdaParallax(ping)ligado noProgramMEatravsdeumaprotoboard(placabrancacom furos).Podemosobservartrsfios: 1. Laranja:sinal digitalparao Arduino.

31

2. Marrom:terra /gnd 3. Vermelho:5v CadacomponentequeligamosnoArduinodemandaum esquemaespecficodefiao,paraissotemosqueteremmos odatasheetdocomponentequepretendemosusar.

32

Casovocestejautilizandoumcomponenteonboarddo ProgramME,comoseusleds,speaker,transistor,vocnovai precisarligarnenhumfioenemprecisardaprotoboard. AdicionalmenteoProgramMEpodereceberdiretamenteservo motor,motorDC,umstepmotorunipolar,potencimetrossem anecessidadedeprotoboards. 1. Programao: escrevemos o cdigofonte do programa no ambientededesenvolvimentodoArduino. 2. Conexo:conectamosnossoArduinonoPCviaUSB. 3. Transferncia: Fazemos a transferncia do programa para o Arduino.

33

4. Execuo: Aguardamos o trmino da transferncia e incio automticodaexecuodoprograma. 5. Recepo: Programas no Arduino podem ou no devolver dados para o PC, sendo que caso o programa no dependa desta comunicao, o Arduino pode ser desligado do cabo USB e alimentado por uma fonte externa como baterias ou transformadores/fontes. FiaoProgramaoConexoTransfernciaExecuo Recepo

34

Instalando os softwares necessrios


Parainiciarodesenvolvimentodeprogramasparacontroledo seuProgramME/Arduino,vocdeverfazerodownloade instalarosseguintessoftwares: 9 JavaDevelopmentKit1.6java.sun.com:oeditordo ArduinofoifeitoemJava,portantonecessitadamquina virtualJavainstaladaparafuncionar;
HU UH

9 Arduino(0017ouversoposterior) http://www.arduino.cc/:editorondeescrevemos, compilamoseefetuamosatransfernciadoprograma paraochip;


HU UH

35

Instale no seu sistema operacional os softwares acima e ao termino navegue no diretrio de instalao do Arduino onde vocdeverencontrarumexecutvelchamadoarduino.exeou arduino.sh conforme seu sistema operacional. Inicialize o editordoArduinoexecutandooarquivo. Agora o momento certo de voc colocar todos os straps nos jumpers conforme mostramos anteriormente. Vamos utilizar os leds e o sensor de luz neste exemplo e para isso voc precisar ter certeza que os straps esto colocados nos jumpers destes componentesparaativlos.

36

Quando terminar de ligar voc j pode colocar o cabo USB no ProgramME e em seguida ligar em uma porta USB do seu computador. A primeira conexo tipicamente demora mais em funo das configuraes iniciais. Seu sistema operacional dever reconhecer as portas seriais como COMX:, exemplo COM10:COM11:ouatCOM30:podeacontecer!

37

Conhecendo o editor Arduino


Usamos a ferramenta Arduino para editar, compilar e transferir programasparanossoschip.Elapermiteodesenvolvimentocom C / C++ utilizando um GCC customizado para AVR / ATMel, famliademicrocontroladoresdoArduinoATMEGa168/328. A ferramenta simples e funcional e nela temos uma rea para edio de cdigo, uma rea (fundo preto) de resposta das operaes com

38

nosso Arduino e tambm menus e botes de atalho para as operaesmaiscomuns:

Serialmonitor:usadoparalerinformao doArduinoparaoPC Upload:transfereoprog.paraoArduino Save:salvarseuprojeto Open:abrirumprojeto New:iniciarumnovoprojeto

Stop:pararacompilao Compile:compilarocdigo

39

DevemosescolhernomenuTools>Boardomodelocorretode microcontroladorqueestamosutilizando,nocasodoProgram MEv1.0oAtmega328conformeapresentamosnaimagem abaixo:

40

Eporfimdevemosescolheraportaserialquerepresentanosso Arduino:

Pronto! Podemosagoraescreverocdigodoprogramaetransferirpara nossodevice.

41

Escrevendo cdigo do primeiro programa


Vamosapresentaraquialgunsprogramassimpleseprticoscom oProgramME.importantelembrarqueosstrapspretos devemestarcolocadosnosjumpersparaligaroscomponentes doProgramME. PodemosdividirocdigodeprogramaodoArduinoemtrs principaispartes: 1. readeDeclaraes:ondedefinimosvariveise constantesglobaisqueutilizaremosnoprograma; 2. Funodesetup:umafunoqueexecutada apenasumavezeusamosparaainicializaode portasevariveis;

42 3. Funodeloop:afunoprincipaldoArduino quecontmoprogramaqueficarsendoexecutado infinitamenteemumloop;

Vejamosnocdigoabaixoparapiscarumled.
PiscaPisca

//reaGlobal //DefinindoumaconstantechamadaLED_1comvalor14 #defineLED_114 //readeinicializao voidsetup(){ //UtilizaremosaportadoLEDparasadadedados,ouseja, //vamosgravarnaporta pinMode(LED_1,OUTPUT);

} voidloop(){ //Gravamos1naporta14,acendendooLED1 digitalWrite(LED_1,HIGH); //Comandoparaespera/delayde1segundoem milissegundos delay(1000); //Gravamos0naporta14,apagandooLED1 digitalWrite(LED_1,LOW); delay(1000); }

43

Agoracliqueemcompilarevejasedigitouasintaxe corretamente.CasooArduinonoapontenenhumerronoseu cdigoclicknobotodeUploadetransfiraoprogramaparao Arduino. DICA:Nonecessriocompilarantesdefazerouploadpois todasoperaesdeuploadcompilamimplicitamenteseu cdigo!

44

45

Leds com luminosidade varivel


Vamosagoraaprimorarnossoprogramaparaquantomenosluz, maisledsacender: Simples1 #defineLDR5 intled[]={14,1,2,3,4,5,8,6,13}; intluminosidade; voidsetup(){ for(intx=0;x<9;x++){ pinMode(led[x],OUTPUT); } }

voidloop(){ luminosidade=analogRead(LDR); intledsParaLigar=map(luminosidade,0,750,0,9); for(intx=0;x<ledsParaLigar;x++){ digitalWrite(led[x],HIGH); delay(100); } for(intx=0;x<ledsParaLigar;x++){ digitalWrite(led[x],LOW); delay(100); } }

46

47

Fazendo o Program-ME / Arduino enviar dados para o computador


OProgramME/Arduinopodeenviardadosparaseu computadordesdequeestejacomocaboUSBligado.Conforme falamosanteriormente,apesardousodeportasUSBoque temosumaponteparainterfaceserial,sendoassimum programaArduinopodeabrirumacomunicaoserialcomo computadorparaenviardadosdiversos.Issomuitoimportante principalmenteparapodermosdepurareverificarpossveiserros nonossoprogramaouesquemaeletrnico.

#defineLDR5 intluminosidade; voidsetup(){ //Comandoparainiciaracomunicaoserialcomo computador Serial.begin(9600); } voidloop(){ luminosidade=analogRead(LDR); //Comandoparaenviarumdadoparaocomputador Serial.println(luminosidade); delay(500); }

48

49

Arduino & Processing


Processing: no vamos usar agora, mas aproveite e faa o download e instalao do irmo do Arduino que pode plotar grficosconformedadoscapturadospeloArduino.

50

Apndice tcnico
Lista de componentes Program-ME
Resistores R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 10K 330R 330R 330R 330R 330R 330R 1K 1K 1K 1K

R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 1K 330R 330R 330R LDR 10K 10K 10K 10K 220R 220R 10K 10K

51

Capacitores C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 100nF 22pf 22pf 100nF 100nF 100uFx25Vperfilbaixo 100uFx25Vperfilbaixo 100nF 100nF 100nF 100nF 100nF

52

Diodos D1 D2 D3 D4 D5 IC1 IC2 Q2 Q3 Q4 Q5 CPU 1N4007 1N4007 1N4007 1N4007 1N4007 FT232RL 7805 TIP122 TIP122 TIP122 TIP122 ATMEga328P

53

Semicondutores

Diversos ATMEGA168 Q1 J2 J3 J9 J10 Chave1 Reset RX TX PWR P1 P2 P3 P4 P5

54 Soquete28Pinos Cristal16MHzperfilbaixo ConectorKR2Pinos ConectorKR2Pinos ConectorKR2Pinos ConectorKR2Pinos microswitch microswitch LedVerde3mm LedVerde3mm LedVermelho3mm LedVerde3mm LedVerde3mm LedVerde3mm LedAmarelo3mm LedAmarelo3mm

P6 P7 P8 P13 F1 LedAmarelo3mm LedVermelho3mm LedVermelho3mm LedVermelho3mm Fusivel500mA

55

56

Especificaes tcnicas
Equivalncia entre os pinos do ATMega168 e do Arduino / Program-ME.

57

Você também pode gostar