Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Arduino naplno (Arduino Day 2015)

1 155 vues

Publié le

Přednáška z #ArduinoD15 na @plzenskybarcamp

Demo (slide 25): https://github.com/ah01/arduino-stuff/tree/master/smart-blink

Publié dans : Technologie
  • Soyez le premier à commenter

Arduino naplno (Arduino Day 2015)

  1. 1. ARDUINO NAPLNO Adam Hořčica Vojtěch Suk
  2. 2. Kdo jsme Arduino * Wiring AVR * C Adam Hořčica Vojtěch Suk
  3. 3. Co nás čeká? HWSW
  4. 4. SW NAPLNO
  5. 5. 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
  6. 6. Externí editor
  7. 7. Organizace Sketch • Organizace na disku • [dir] sketch –sketch.ino –settings.ino –utils.ini Stejné jméno
  8. 8. #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); }
  9. 9. Organizace Sketch – co dál • Preprocessing není spolehlivý – Pouze deklarace funkce • Skatch nemusí obsahovat jen *.ino – Používejte klasické *.cpp/*.h soubory
  10. 10. 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
  11. 11. 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
  12. 12. CodeBender https://codebender.cc/
  13. 13. PROGRAMOVÁNÍ Wiring
  14. 14. Mnoho textu „škodí“ • Při spuštění se data programu (proměnné) kopírují do RAM • Včetně “všeho textu”
  15. 15. Mnoho textu „škodí“ • Rešení: funkce F(…) Serial.println(F(“Lorem ipsum”));
  16. 16. Delay void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
  17. 17. 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 … }
  18. 18. Kooperativní multitasking LED • Je čas rozsvítit? • Ano/Ne Tlač. • Zmáčknuto tlačítko? • Ano/Ne Serial • Data z PC? • Ano/ne
  19. 19. Stavový automat • Rozdělit chování aplikace/části aplikace do stavů • Knihovna FiniteStateMachine (Wiring)
  20. 20. „Chytrý“ blikač Off Blinking Lerning Lerning Done
  21. 21. DEMO TIME
  22. 22. „Debuger“ • Výpis na Serial.println(myVariable); #ifdef DEBUG #define TRACE(x) Serial.println(x); #else #define TRACE(x) #endif
  23. 23. 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
  24. 24. Skutečný debugger • debugWire, JTAG • ATmega328P Xplained Mini • AVR Studio, GDB
  25. 25. Jak zrychlit? • Arduino.h je univerzální… • …ale pomalé • Např. digitalWrite…
  26. 26. 1) digitalWrite #define output 2 void setup () { pinMode(output, OUTPUT); } void loop() { digitalWrite(output, HIGH); digitalWrite(output, LOW); }
  27. 27. 2) PORTD
  28. 28. 2) PORTD #define output 2 void setup () { pinMode(output, OUTPUT); } void loop() { while (1) { PORTD = (1<<PD2); PORTD = 0; } }
  29. 29. HW NAPLNO
  30. 30. 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
  31. 31. Vlastní Arduino klon • Minimální Arduino – ATmega – Napájení – Reset – Připojení k PC – ISP
  32. 32. Co dál „Pokud potřebujete asembler, použili jste málo výkonný procesor“ …
  33. 33. Kam dál?
  34. 34. while (audience.questionAvailable()) { answer(); } Serial.println(F(“ Děkujeme za pozornost”));

×