32
"Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

"Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Embed Size (px)

Citation preview

Page 1: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

"Arduino" workshop

1Domoticaforum RobertHekkers

LennartHerlaar

Page 2: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Inhoud

• Het Arduino platform

• Varianten en shields

• Sensoren en actoren

• Coding en sketches

• Toepassingen

• Meet the JeeNode

• Workshop!

Page 3: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Physical Computing

Physical (or embedded) computing, in the broadest sense, means building

interactive physical systems by the use of software and hardware that can

sense and respond to the analog world. While this definition is broad

enough to encompass things such as smart automotive traffic control

systems or factory automation processes, it is not commonly used to

describe them. In the broad sense, physical computing is a creative

framework for understanding human beings' relationship to the digital

world. In practical use, the term most often describes handmade art, design

or DIY hobby projects that use sensors and microcontrollers to translate

analog input to a software system, and/or control electro-mechanical

devices such as motors, servos, lighting or other hardware. [Wikipedia]

Page 4: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Het Arduino platform

• Hardware

• Eenvoudig maar krachtig I/O board op basis

van een Atmel microcontroller (uC)

• Software

• Java-gebaseerde platform-onafhankelijke

IDE voor het ontwikkelen in een C-variant

• Community

• Veel sites en fora op Internet

• Actieve gebruikersgroepen

Page 5: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Waarom Arduino?

• Krachtig en snel• Open source hardware en software• Goedkoop• Goed gedocumenteerd• Eenvoudig

• USB interface, bootloader, C-variant

€ 0,- € 200,- € 27,-

€ 130,-

€ 60,-

€ 5,-

Page 6: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Specificaties "basis" Arduino

• PCB van 6,9 x 5,3 cm• ATmega328 microcontroller, 8-bits, 16 MHz klok• 32 KB flash memory (program), 2 KB SRAM

(stack en heap), 1 KB EEPROM (non-volatile)• 14 digitale I/O poorten, waarvan 6 met PWM• 6 analoge inputs (eveneens digitale outputs)• 2 externe interrupts• USB interface, seriële TTL interface, SPI

interface, I2C interface• Voeding via USB of extern

Page 7: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Arduino Duemilanove

Voedingscircuit

USBconnector

USB-serieelchip (FTDI)

Digitale I/O

In-circuitprogramminginterface

Analoge inputs

Klokkristal

ResetknopStatusleds

Microcontroller

Voeding

Page 9: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Arduino varianten

Arduino Mega

Arduino Mini

SeeduinoFreeduino

Arduino Lilypad

Page 10: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Arduino varianten

BoArduino BoArduino

RBBBUSB BUB

JeeNode

JeeLink

Page 11: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Arduino varianten

Roboduino

Rainbowduino

Monochron

Ardupilot

LennArduino

Page 12: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Shields

Ethernet shield

Motor shield

XBee shield

GPS shield

Page 13: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Prototype breadboard

Page 14: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Sensoren

Page 15: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Actoren

Page 16: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

En verder...

Page 17: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Arduino IDE

• Integrated Develop-

ment Environment• Geschreven in Java• Gebaseerd op

Processing• Open source• Zeer eenvoudig• Write, verify, upload,

run

Verify Upload

Serial monitor

Board en COM poortVoorbeelden

Page 18: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Hello World! (Blink)

Declaratie variabelen

Initialisatie (eenmalig)

Hoofdloop (ad infinitum)

Page 19: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Arduino programmeertaal

• C-variant, gebaseerd op Wiring• Sketches• “Kleine” taal• Complexere zaken zijn afgeschermd

• Maar wel te gebruiken• Gebruikelijke control structures• Gebruikelijke functies• Gebruikelijke operatoren• Gebruikelijke datatypes• …

Page 20: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Arduino programmeertaal

• Digitale I/O• pinMode(pin, INPUT/OUTPUT)• digitalWrite(pin, HIGH/LOW)• digitalRead(pin)

• LOW <= 2 Volt, HIGH >= 3 Volt

• Analoge I/O• analogRead(pin)

• 0 .. 5 Volt, weergegeven als 0 .. 1023 (10 bit resolutie A/D converter)

• analogWrite(pin, 0 .. 255)• Pulsbreedtemodulatie (PWM), 500 Hz

Page 21: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

PWM

Page 22: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Arduino programmeertaal

• Onze Hello World applicatie heeft een probleem!

Page 23: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Hello World! revisited

Page 24: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Real Time Computing / uC prog.

• Structuur• Setup, LoopLoopLoopLoopLoop...

• Controle op events en afhandeling!• Gebruik geen delays maar intervallen of interrupts• Houd rekening met debounce tijden• Houd rekening met overflows

• Beperkte resources• Geheugen (RAM, EEPROM, flash), timers, poorten• Libraries kunnen een flinke aanslag plegen

• Programmeren voor een uC is niet eenvoudig!

Page 25: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Libraries

• Serial• LiquidCrystal• Servo• Ethernet• EEPROM• DateTime• Webduino• X10• Twitter• ...

Page 26: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Toepassingen

Page 27: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Meet the JeeNode

Page 28: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Meet the JeeNode

• 3.3V in plaats van 5V• Veel sensoren en IC's alleen op 3.3V

• Draadloze RF module standaard aanwezig• RFM12B, 868MHz, packet based, 66 bytes

• 4 poorten (ports) met identieke pin layout• PWR, DIO, GND, 3.3, AIO, IRQ• Aansluitpunten voor plugs en boards

• Overige poorten elders of voor de radio• Power, Serial, I2C, Extended (PSIX), ISP/SPI

• Low power design

Page 29: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Plugs en Boards / Cards

• Plugs gebruiken 1 port• Dedicated• Op basis van I2C; dan daisy-chaining mogelijk

• Boards / Cards gebruiken vaak meerdere ports of hebben een andere functie

• Voorbeelden• Relay Plug, Thermo Plug, LCD Plug, MOSFET Plug• Room Board, Graphics Board, AA Power Board

• Ondersteund door de Ports library• Verder is de RF12 library essentieel

Page 30: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

Workshop!

• Bouw een breadboard Arduino (Blink)

• Soldeer je USB BUB, LCD, Bridge Board, relais

• Soldeer je JeeNode

• Voer enkele breadboard experimenten uit

• Soldeer je Room Board

• Probeer RF12DEMO en de Room Board demo

• Homeseer integratie

• Tussendoor demo's van (SMD) solderen en Mantis CNC

Page 31: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

31

"Arduino" workshop

Domoticaforum RobertHekkers

LennartHerlaar

Vragen?

Page 32: "Arduino" workshop 1 Domoticaforum Robert Hekkers Lennart Herlaar

32

"Arduino" workshop

Domoticaforum RobertHekkers

LennartHerlaar

www.jeelabs.org

www.arduino.cc

www.cadsoft.dewww.reprap.org

www.freerouting.net

blog.makezine.com/archive/arduino

www.freeduino.org

www.picbasic.nl/index_etsen.htm

www.adafruit.com/index.php?main_page=tutorials

www.aeroquad.info www.stephenhobley.com/blog/laser-harp-2009

www.protospace.nl www.sparkfun.com/commerce/tutorials.php

hacknmod.com/hack/top-40-arduino-projects-of-the-web

www.eevblog.com (episode 45)

www.circuitsonline.net

www.shieldlist.org

www.awesomecopter.nl