You are on page 1of 45

Abriendo el garaje del vecino

con Arduino
David/Taikson
Ingeniero Software Embebido

El tio de los drones con routers

Twitter @TaiksonTexas

Mail david.melendez.cano@gmail.com

2/93
Kifo/Cirin/Infiltrandome

Auditor de seguridad

Twitter

Mail

2/93
Disclaimer

Cuidadito con abrir un garaje ajeno.

2/93
Qu es Arduino?

Arduino es una
plataforma
OpenSource para
la creacin de
prototipos basada
en hardware
flexible y fcil de
usar.

2/93
Qu es Arduino?

Al ser OpenHardware, tanto su diseo, como


su distribucin es libre, pudiendo utilizarse
para el desarrollo de cualquier tipo de
proyecto sin necesidad de adquirir ninguna
licencia.

2/93
Otras plataformas Hardware

2/93
Otras plataformas Hardware

2/93
Tipos de Arduino

Duemilanove

Uno

Mega

Nano

Lilypad
Mini
2/93
Leonardo
Arduino UNO Pines Digitales
Botn Reset

Puerto
USB ICSP

ATMega

Alimentaci Potencia Entradas 2/93


n
Analgicas
7v-12v
Arduino Shields

Los Shields son mdulos fabricados por


terceros que se pueden colocar encima de la
placa Arduino y amplan su funcionalidad.
Conexiones inalmbricas
Control de sensores y motores
Lectura y escritura en memorias
Pantallas LCD

2/93
Arduino Shields

2/93
Programar Arduino

Arduino tiene un
entorno de
desarrollo creado en
Java, por lo que es
multiplataforma.
El lenguaje que
utiliza est basado
en C.
2/93
A currar cabrones

WIFI: TALLER_ARDUINO
Clave WIFI: tallerarduino

Repositorio: ftp://192.168.1.1
Usuario: navajas
Clave: navajas

2/93
Programar Arduino
Men general

Accesos rpidos

Editor de texto

Consola

2/93
Programar Arduino
void setup()
- Esta parte se repite una sola vez.
- Podemos guardar datos de configuracin.
void loop()
- Es el programa principal.
- No se puede salir de este ciclo.
- Se repite una infinidad de veces hasta se
indique lo contrario.
2/93
Programar Arduino
Delimitadores: ;, {}
Comentarios: //, /* */
Cabeceras: #define, #include
Operadores aritmticos: +, -, *, /, %
Asignacin: =
Operadores de comparacin: ==, !=, <, >, <=, >=
Operadores Booleanos: &&, ||, !
Operadores de acceso a punteros: *, &
Operadores de bits: &, |, ^, ~, <<, >>
Operadores compuestos:
Incremento/decremento de variables: ++, --
Asignacin y operacin: +=, -=, *=, /=, &=, |=

2/93
Programar Arduino
Estructuras de control
Condicionales: if, if...else, switch case
Bucles: for, while, do... while
Bifurcaciones y saltos:
break, continue, return, goto
Constantes
HIGH / LOW: niveles alto y bajo en pines.
INPUT / OUTPUT: entrada o salida
true / false
Tipos de datos
void, boolean, char, unsigned char, byte, int, unsigned int, word, long,
unsigned long, float, double, string, array
2/93
Programar Arduino
Conversin entre tipos
char(), byte(), int(), word(), long(), float()

Cualificadores y mbito de las variables


static, volatile, const

Utilidades
sizeof()

2/93
Programar Arduino
E/S Digital
pinMode(pin, modo)
digitalWrite(pin, valor)
int digitalRead(pin)
E/S Analgica
analogReference(tipo)
int analogRead(pin)
analogWrite(pin, valor)
E/S Avanzada
shiftOut(dataPin, clockPin, bitOrder, valor)
unsigned long pulseIn(pin, valor)

2/93
Programar Arduino
Tiempo
unsigned long millis()
unsigned long micros()
delay(ms)
delayMicroseconds(microsegundos)
Matemticas
min(x, y), max(x, y), abs(x), constrain(x, a, b), map(valor, fromLow,
fromHigh, toLow, toHigh), pow(base, exponente), sqrt(x)
Trigonometra
sin(rad), cos(rad), tan(rad)

2/93
Programar Arduino
Nmeros aleatorios
randomSeed(semilla), long random(mx), long random(mn, mx)
Bits y Bytes
lowByte(), highByte(), bitRead(), bitWrite(), bitSet(), bitClear(), bit()
Interrupciones externas
attachInterrupt(interrupcin, funcin, modo)
detachInterrupt(interrupcin)
Interrupciones
interrupts(), noInterrupts()

2/93
Programar Arduino
Comunicacin por puerto serie
Las funciones de manejo del puerto serie deben ir precedidas de
"Serial." aunque no necesitan ninguna declaracin en la cabecera del
programa.

Por esto se consideran funciones base del lenguaje.

begin(), available(), read(), flush(), print(), println(), write()

2/93
A currar cabrones

2/93
Y ahora que sabis programar

2/93
Radiofrecuencia

2/93
JUGUETITOS

2/93
JUGUETITOS

2/93
JUGUETITOS

2/93
JUGUETITOS

2/93
JUGUETITOS

2/93
JUGUETITOS

2/93
Arduino+rf

2/93
Mi garaje

2/93
Muy bonito pero mi garaje no lo
abres

2/93
RollJam

Defcon 2015 RollJam by SamyKamkar

2/93
RollJam

2/93
Preguntas

2/93
Muchas gracias

2/93
BONUS TRACK

2/93
Bonus Track

Arduino Modulo 2,4 GHz

2/93
Bonus Track

Microsoft Wireless Keyboard

2/93
Bonus Track

Microsoft Wireless Keyboard

2/93
Bonus Track

Hazlo Wifi con routers!

2/93
GoodBye

2/93

You might also like