SlideShare une entreprise Scribd logo
1  sur  47
ARDUINO NAPLNO
Adam Hořčica
Vojtěch Suk
Kdo jsme
Arduino * Wiring AVR * C
Adam Hořčica Vojtěch Suk
Co nás čeká?
HWSW
SW NAPLNO
Arduino IDE
• Aktuálně 1.6.1 (březen 2015)
– Novinky v 1.6.0
• Rychlejší kompilace, autodetekce COM portu, čísla
řádků, CLI, podpora pro více HW platforem, …
– Detekce „neautorizovaných desek“
• Ano je to „IDE“, ale…
– Editor
Externí editor
Organizace Sketch
• Organizace na disku
• [dir] sketch
–sketch.ino
–settings.ino
–utils.ini
Stejné jméno
#line 1 "sketch.ino„
#include "Arduino.h"
void setup();
void loop();
void led_setup();
void led_on();
void led_off();
#line 1
void setup() {
led_setup();
}
void loop() {
led_on();
delay(1000);
led_off();
delay(1000);
}
#line 1 "settings.ino"
const int LED = 13;
#line 1 "utils.ino"
void led_setup() {
pinMode(LED, OUTPUT);
}
void led_on() {
digitalWrite(LED, HIGH);
}
void led_off() {
digitalWrite(LED, LOW);
}
Organizace Sketch – co dál
• Preprocessing není spolehlivý
– Pouze deklarace funkce
• Skatch nemusí obsahovat jen *.ino
– Používejte klasické *.cpp/*.h soubory
Arduino IDE CLI
arduino [FILE.ino…]
arduino [--verify|--upload] [--board package:arch:board[:parameters]]
[--port portname] [--pref name=value] [-v|--verbose] [FILE.ino]
Např.:
arduino --upload /path/to/sketch/sketch.ino
Alternativně:
make
https://github.com/arduino/Arduino/blob/master/build/shared/manpage.adoc
Jiné IDE
• Eclipse
– Pro arduino (http://www.baeyens.it/eclipse/index.html)
• AVR Studio
– Atmel procesory
– Postavené nad VS
• Visual Pro Micro
– Pro VS a AVR Studio
CodeBender
https://codebender.cc/
PROGRAMOVÁNÍ
Wiring
Mnoho textu „škodí“
• Při spuštění se data programu (proměnné) kopírují
do RAM
• Včetně “všeho textu”
Mnoho textu „škodí“
• Rešení: funkce F(…)
Serial.println(F(“Lorem ipsum”));
Delay
void loop()
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
int ledState = LOW;
unsigned long last = 0;
void loop()
{
unsigned long now = millis();
if(now - last >= 1000) {
last = now;
if (ledState == LOW) ledState = HIGH;
else ledState = LOW;
digitalWrite(13, ledState);
}
… něco užitečného …
}
Kooperativní multitasking
LED
• Je čas rozsvítit?
• Ano/Ne
Tlač.
• Zmáčknuto tlačítko?
• Ano/Ne
Serial
• Data z PC?
• Ano/ne
Stavový automat
• Rozdělit chování aplikace/části aplikace do
stavů
• Knihovna FiniteStateMachine (Wiring)
„Chytrý“ blikač
Off
Blinking
Lerning
Lerning
Done
DEMO TIME
„Debuger“
• Výpis na Serial.println(myVariable);
#ifdef DEBUG
#define TRACE(x) Serial.println(x);
#else
#define TRACE(x)
#endif
Visual Pro Micro
• Rozšíření pro Visual Studio
– Funguje i v Community edition
– Placené
– Na forum se řeší port do Eclipse
• Umí „debugger“ bez externího HW
– Překlad + instrumentace
Skutečný debugger
• debugWire, JTAG
• ATmega328P Xplained Mini
• AVR Studio, GDB
Jak zrychlit?
• Arduino.h je univerzální…
• …ale pomalé
• Např. digitalWrite…
1) digitalWrite
#define output 2
void setup () {
pinMode(output, OUTPUT);
}
void loop() {
digitalWrite(output, HIGH);
digitalWrite(output, LOW);
}
2) PORTD
2) PORTD
#define output 2
void setup () {
pinMode(output, OUTPUT);
}
void loop() {
while (1) {
PORTD = (1<<PD2);
PORTD = 0;
}
}
HW NAPLNO
Vlastní shiled
• Rozšíření klasických Arduin (Uno, Mega, …)
• Výroba DPS
– CAD SW (Fritzing, Eagle, …)
– Knihovna pro shiled
https://github.com/adafruit/Adafruit-Eagle-Library
Vlastní Arduino klon
• Minimální Arduino
– ATmega
– Napájení
– Reset
– Připojení k PC
– ISP
Co dál
„Pokud potřebujete asembler, použili jste málo
výkonný procesor“ …
Kam dál?
while (audience.questionAvailable()) {
answer();
}
Serial.println(F(“ Děkujeme za pozornost”));

Contenu connexe

En vedette

Posíláme e-mail (tentokrát pro roboty)
Posíláme e-mail (tentokrát pro roboty)Posíláme e-mail (tentokrát pro roboty)
Posíláme e-mail (tentokrát pro roboty)Adam Hořčica
 
Seznámení s agilním přístupem - A first look at the Agile
Seznámení s agilním přístupem - A first look at the AgileSeznámení s agilním přístupem - A first look at the Agile
Seznámení s agilním přístupem - A first look at the AgilePrincipal engineering s.r.o.
 
Komunikační protokoly pro IoT (LinuxDays 2014)
Komunikační protokoly pro IoT (LinuxDays 2014)Komunikační protokoly pro IoT (LinuxDays 2014)
Komunikační protokoly pro IoT (LinuxDays 2014)Adam Hořčica
 
Sedm zabijáků inovaci ve velkých firmách
Sedm zabijáků inovaci ve velkých firmáchSedm zabijáků inovaci ve velkých firmách
Sedm zabijáků inovaci ve velkých firmáchZdeněk Macháček
 

En vedette (7)

Posíláme e-mail (tentokrát pro roboty)
Posíláme e-mail (tentokrát pro roboty)Posíláme e-mail (tentokrát pro roboty)
Posíláme e-mail (tentokrát pro roboty)
 
Seznámení s agilním přístupem - A first look at the Agile
Seznámení s agilním přístupem - A first look at the AgileSeznámení s agilním přístupem - A first look at the Agile
Seznámení s agilním přístupem - A first look at the Agile
 
Obhajoba
ObhajobaObhajoba
Obhajoba
 
PROJECT: Arduino 2
PROJECT: Arduino 2PROJECT: Arduino 2
PROJECT: Arduino 2
 
Komunikační protokoly pro IoT (LinuxDays 2014)
Komunikační protokoly pro IoT (LinuxDays 2014)Komunikační protokoly pro IoT (LinuxDays 2014)
Komunikační protokoly pro IoT (LinuxDays 2014)
 
Sedm zabijáků inovaci ve velkých firmách
Sedm zabijáků inovaci ve velkých firmáchSedm zabijáků inovaci ve velkých firmách
Sedm zabijáků inovaci ve velkých firmách
 
Vizualizace jako pomocník projektového managera
Vizualizace jako pomocník projektového manageraVizualizace jako pomocník projektového managera
Vizualizace jako pomocník projektového managera
 

Similaire à Arduino naplno (Arduino Day 2015)

Slasti Strasti Propasti Windows Mobile
Slasti Strasti Propasti Windows MobileSlasti Strasti Propasti Windows Mobile
Slasti Strasti Propasti Windows MobileRENESTEIN
 
Slovak Sun Training Day 2010 - DTrace
Slovak Sun Training Day 2010 - DTraceSlovak Sun Training Day 2010 - DTrace
Slovak Sun Training Day 2010 - DTraceMartin Cerveny
 
CBduino II - sensory
CBduino II - sensoryCBduino II - sensory
CBduino II - sensoryMichal Kočer
 
Czech Oracle Solaris Administrators Day 2011 - DTrace
Czech Oracle Solaris Administrators Day 2011 - DTrace Czech Oracle Solaris Administrators Day 2011 - DTrace
Czech Oracle Solaris Administrators Day 2011 - DTrace Martin Cerveny
 
Malware Houdiny
Malware HoudinyMalware Houdiny
Malware HoudinyCESNET
 
Dark Side of iOS [mDevCamp 2013]
Dark Side of iOS [mDevCamp 2013]Dark Side of iOS [mDevCamp 2013]
Dark Side of iOS [mDevCamp 2013]Kuba Břečka
 
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]Kuba Břečka
 
Softwarově definované úložiště
Softwarově definované úložištěSoftwarově definované úložiště
Softwarově definované úložištěLudek Safar
 
"Multiplatformní" je sprosté slovo!?
"Multiplatformní" je sprosté slovo!?"Multiplatformní" je sprosté slovo!?
"Multiplatformní" je sprosté slovo!?Trinerdis
 
node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)almadcz
 
Strasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíStrasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíRené Stein
 
jOpenSpace.cz 2015: Quo vadis, ministerium?
jOpenSpace.cz 2015: Quo vadis, ministerium?jOpenSpace.cz 2015: Quo vadis, ministerium?
jOpenSpace.cz 2015: Quo vadis, ministerium?David Ondřich
 
Webová API a Node.js
Webová API a Node.jsWebová API a Node.js
Webová API a Node.jsDevelcz
 
Odpoledne se Seznamem II - Provozní bezpečnost
Odpoledne se Seznamem II - Provozní bezpečnostOdpoledne se Seznamem II - Provozní bezpečnost
Odpoledne se Seznamem II - Provozní bezpečnostchaplin06
 
Řečové technologie ve věku zlaté horečky DNN
Řečové technologie ve věku zlaté horečky DNNŘečové technologie ve věku zlaté horečky DNN
Řečové technologie ve věku zlaté horečky DNNYtica
 
Tv 07
Tv 07Tv 07
Tv 07352
 
Zend Framework 2.0 (ZFMeetup Praha 3.11.2011)
Zend Framework 2.0 (ZFMeetup Praha 3.11.2011)Zend Framework 2.0 (ZFMeetup Praha 3.11.2011)
Zend Framework 2.0 (ZFMeetup Praha 3.11.2011)Martin Hujer
 

Similaire à Arduino naplno (Arduino Day 2015) (20)

Čtečky SH
Čtečky SHČtečky SH
Čtečky SH
 
Slasti Strasti Propasti Windows Mobile
Slasti Strasti Propasti Windows MobileSlasti Strasti Propasti Windows Mobile
Slasti Strasti Propasti Windows Mobile
 
Slovak Sun Training Day 2010 - DTrace
Slovak Sun Training Day 2010 - DTraceSlovak Sun Training Day 2010 - DTrace
Slovak Sun Training Day 2010 - DTrace
 
Project: Arduino 5
Project: Arduino 5Project: Arduino 5
Project: Arduino 5
 
CBduino II - sensory
CBduino II - sensoryCBduino II - sensory
CBduino II - sensory
 
Czech Oracle Solaris Administrators Day 2011 - DTrace
Czech Oracle Solaris Administrators Day 2011 - DTrace Czech Oracle Solaris Administrators Day 2011 - DTrace
Czech Oracle Solaris Administrators Day 2011 - DTrace
 
Malware Houdiny
Malware HoudinyMalware Houdiny
Malware Houdiny
 
Dark Side of iOS [mDevCamp 2013]
Dark Side of iOS [mDevCamp 2013]Dark Side of iOS [mDevCamp 2013]
Dark Side of iOS [mDevCamp 2013]
 
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]
Úvod do vývoje pro platformu iOS [ZČU 24.4.2014]
 
Softwarově definované úložiště
Softwarově definované úložištěSoftwarově definované úložiště
Softwarově definované úložiště
 
"Multiplatformní" je sprosté slovo!?
"Multiplatformní" je sprosté slovo!?"Multiplatformní" je sprosté slovo!?
"Multiplatformní" je sprosté slovo!?
 
node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)
 
Strasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíStrasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikací
 
jOpenSpace.cz 2015: Quo vadis, ministerium?
jOpenSpace.cz 2015: Quo vadis, ministerium?jOpenSpace.cz 2015: Quo vadis, ministerium?
jOpenSpace.cz 2015: Quo vadis, ministerium?
 
App Engine Kick Start
App Engine Kick StartApp Engine Kick Start
App Engine Kick Start
 
Webová API a Node.js
Webová API a Node.jsWebová API a Node.js
Webová API a Node.js
 
Odpoledne se Seznamem II - Provozní bezpečnost
Odpoledne se Seznamem II - Provozní bezpečnostOdpoledne se Seznamem II - Provozní bezpečnost
Odpoledne se Seznamem II - Provozní bezpečnost
 
Řečové technologie ve věku zlaté horečky DNN
Řečové technologie ve věku zlaté horečky DNNŘečové technologie ve věku zlaté horečky DNN
Řečové technologie ve věku zlaté horečky DNN
 
Tv 07
Tv 07Tv 07
Tv 07
 
Zend Framework 2.0 (ZFMeetup Praha 3.11.2011)
Zend Framework 2.0 (ZFMeetup Praha 3.11.2011)Zend Framework 2.0 (ZFMeetup Praha 3.11.2011)
Zend Framework 2.0 (ZFMeetup Praha 3.11.2011)
 

Arduino naplno (Arduino Day 2015)

Notes de l'éditeur

  1. Na sparkfun byl hezký článek https://www.sparkfun.com/news/1771 http://hackaday.com/2015/03/12/arduino-v-arduino-part-ii/
  2. Ukázka desky