22/02/16. Arduino Introduktion till Arduino. Arduino. Microcontroller - Embedded systems. Historia Organisation - Ekosystem



Relevanta dokument
ARDUINO i RC sammanhang

Introduktion till Arduino

Introduktion till Arduino

Effektpedal för elgitarr

Träff 1 - Introduktion

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström

Microprocessor / Microcontroller. Industrial Electrical Engineering and Automation

Enkla datatyper minne

F4. programmeringsteknik och Matlab

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Microprocessor / Microcontroller

Att använda pekare i. C-kod

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Växtviskaren EITF11 Digitala projekt VT15, I12

PROJEKT LJUD. KOPIERINGSUNDERLAG Martin Blom Skavnes, Staffan Melin och Natur & Kultur Programmera i teknik ISBN

Programmering A. Johan Eliasson

WAGO IO System Service Seminar. Diagnostik

UTFÖRSÄLJNING KEY DIGITAL 4-1 HDTV Component Video 4-1, RS-232 (KD-CSW4X1)

Lathund. C för inbyggda system

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Det finns en hemsida. Adressen är

Att gå från PLC till mikrokontrollerbaserad lösning vid styrning av reningsverksprocess

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

Lathund. C för inbyggda system

#include <pic.h> #include <sys.h> char LEFT,RIGHT,MOTORHASTIGHET;

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Klassdeklaration. Metoddeklaration. Parameteröverföring

Dessa komponenter plus några motstånd, klockkrets, kondensatorer och annat smått och gott har åstadkommit ett fungerande POV-hjul.

Skizz till en enkel databas

INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN

OOP Objekt-orienterad programmering

Larmcentral. Digitala Projekt. Cecilia Olsson & Erika Björck Handledare: Bertil Lindvall LUNDS TEKNISKA HÖGSKOLA

Robotfotboll med Arduino

DIGITALA PROJEKT Väderstation

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Laboration 5 C-programmering på AVR TSEA57 Datorteknik I

Granska befintlig kod och kommentarer Testa loopbackfunktionen

Setup-programmet. Dokumentartikelnummer: December 2005

Elektronik Elektronik 2019

SMD 134 Objektorienterad programmering

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: Tid: 14:00-18:00.

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Beacon BluFi Bluzone. Givarna har mycket hög känslighet och kan mäta mycket små förändringar.

Micro-PLC em4. 3G, GPRS eller Ethernet Loggar och larmar Analoga in-/utgångar Fullständig fjärråtkomst

Inbyggda#datorer# Inbyggda#system# Arduino#Uno#SMD# H.#Inbyggda#system# # ###Arduino#och#cyber7fysisk#programmering### ##

F1 - Introduktion. ID1004 Objektorienterad programmering Fredrik Kilander

Datakommunikation med IR-ljus.

Att programmera arduinon

Realtidsprogrammering

Manual för EQE PLC enhet

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

A-del motsvarande KS1

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

F6: I/O hantering. Typer av I/O i ett datorsystem. Protokoll för synkronisering. Drivrutiner. Memory mapped Port mapped. Polling Timed Interrupt DMA

Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.

EITF11 - Digitala projekt. Hastighetsmätare. Hugo Backmyr Mattias Karlsson

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Realtidsprogrammering. En introduktion Implementering (med exempel från PIC)

Digitala Projekt(EITF40) - Larm

, fukt- och temperaturdetektor Modbus RTU, trafikljus

D/A- och A/D-omvandlarmodul MOD687-31

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Produktbeskrivning. Quadrokopter. Titel: Produktbeskrivning (Quadrokopter) Version: 1.1 KTH

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

Programmering på Arduino/Genuino

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Digitala Projekt(EITF40) - Larm

IMSE WebMaster. med inbäddad webbserverteknik

Tentamen i Objektorienterad programmering

Föreläsning 4 IS1300 Inbyggda system

PROJEKT STAFFAN STALLEDRÄNG

Subtyping och variance. Objekt-orienterad programmering och design Alex Gerdes, 2018

Programmering med Arduino

Classes och Interfaces, Objects och References, Initialization

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

Ett program som frågar regelbundet om något skall utföras. Exempelvis om spänningen på ett batteri sjunkit under en viss nivå.

Digitalteknik: CoolRunner-II CPLD Starter Kit

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Programmera i teknik - kreativa projekt med Arduino

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Tentamen i Inbyggda System ( Embedded System )

Byggstenar för Software Defined Radio

Föreläsning 3.1: Datastrukturer, en översikt

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

CanCom Multimodul 30

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Assemblerprogrammering för ARM del 2

2E1112 Elektrisk mätteknik

Sahlgrenska Universitetssjukhus

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Switch- och WAN- teknik. F7: ACL och Teleworker Services

Transkript:

22/02/16 Arduino Introduktion till Arduino Historia Organisation - Ekosystem ANDERS J JOHANSSON Hårdavara Mjukvara Kringkomponenter Tips Demos! Microcontroller - Embedded systems Inbyggda system Processing Arduino Hardware Software + IDE (Integrated Development Environment) Open source Mjukvara Hårdvara Java-environment Kretsscheman GPL CAD-filer (Eagle-cad) C/C++ bibliotek Creative Commons Licens LGPL Share alike Attribution 1

22/02/16 Det enkla blev komplicerat Arduino.org Arduino.cc Arduino hårdvara Arduino finns i flera varianter, inklusive kloner Arduino UNO I/O Reset Prog. USB USB USB Xtal LED13 LED ON TX/RX LEDs Ceramic resonator Serial Microcontroller Vin I/O USB ATMEGA 328P 2

22/02/16 Arduino pins vs. Atmega 328 Inside the microcontroller Inside the CPU Arduino: språket Structure setup() loop() Digital I/O pinmode() digitalwrite() digitalread() Analog I/O analogreference() analogread() analogwrite() Control Structures if if...else for switch case while do... while break continue return goto Variabler Data Types void (0) boolean (1B) char (1B) unsigned char (1B) byte (1B) int (2B) unsigned int (2B) word (2B) long (4B) unsigned long (4B) short (2B) float (4B) double (4B) string - char array String object array Vad som inte finns: Mycket minne Multi-threading 3

22/02/16 Kolla upp om ni använder en annan version! I/O portar 6 Analoga ingångar 14 digitala I/O 6 st med PWM utgång (3,5,6,9,10,11) Buss-stöd Till exempel för I2C/TWI Board I2C / TWI pins Uno, Ethernet A4 (SDA), A5 (SCL) I2C/TWI (A4, A5) Mega2560 20 (SDA), 21 (SCL) SPI (10,11,12,13) Leonardo 2 (SDA), 3 (SCL) TTL serial (USB och 0,1) Due 20 (SDA), 21 (SCL), SDA1, SCL1 Externa interrupt (2,3) LED (13) PWM Motorer Pulse Width Modulation Använd PWM Kräver filtrering för att bli en likspänning Lägg till diod som skydd för inducerad ström Lågpassfilter (R-C) Ögat Tröghet i en motor Använd en transistor för att styra strömmen (Imax = 20mA) Demo Servo electrical interface 10-bit successive approximation ADC 1-2 ms pulse width Features 50 Hz pulse frequency 10-bit Resolution 1.5 ms is middle 0.5 LSB Integral Nonlinearity ± 2 LSB Absolute Accuracy 13-260µs Conversion Time Up to 76.9kSPS (Up to 15kSPS at Maximum Resolution) Adafruit.com 4

22/02/16 Ekvivalent analog ingång External Vref analogreference() DEFAULT INTERNAL EXTERNAL Optimized for source impedance <=10 kohm No internal filtering (Nyquist) ADC=(Vin/Vref)*1024 Fsample <= 10 khz Shields OBS! 1.0 < AREF < VCC Två olika varianter (->2012, 2012->) shields är dotterkort till Arduino. Använder kontakterna längs kanten Finns i hundratals olika varianter Motorstyrning Finns i flera olika varianter Avancerade tekniker Minneshantering Likströmsmotorer Interrupts Servon Spara energi Stegmotorer Välj efter Antal motorer Storlek på motorer Typ av motorer Sömn-läge Sensorer Extern spänning till motorerna? 5

22/02/16 Von Neumann vs. Harward arkitektur Minnen i Arduino Flash för program >10k skrivcykler (write/erase) SRAM för data Statisk data Heap Stack SRAM memory map Von Neumann Ett minne för både program och data. Harward Skilda minnen för program och data. EEPROM för annan datalagring >100k skrivcykler (write/erase) Minnesstorlekar Använding av Heap och Stack Följande använder mycket minne : SD-kort Flerfärgade lysdioder Displayer Globala variabler (static data, heap) Använd små typer Olika datatyper använder olika mängd minne. Använd så små typer som möjligt. Interrupts i Arduino Timer-genererade Timer 0, 1, 2 State-change på en interrupt-ingång Pin 2: Interrupt 0 Pin 3: Interrupt 1 Att någon av an grupp ingångar växlar värde 6

22/02/16 Interrupt Service Routine Interrupts: att tänka på http://www.engineersgarage.com/ Interrupt-rutinen stänger av alla andra interrupt Interrupt-rutinen kan inte använda interrupt! (I2C etc.) Interrupt kan hända när som helst! Disable interrupts när det är nödvändigt Se över datalagring, använd om nödvändigt volatile variables. Timer 0,1,2 används redan av andra rutiner: Timer 0: millis(), micros(), delay(), PWM (5,6) Timer 1: Servos, PWM (9,10) Timer 2: Tone, PWM (11,13) Andra bibliotek kan också använda timers Spara ström Fritzing Ändra klockfrekvensen Möjligt att stänga av olika delar av mikrocontrollern ADC SPI och I2C/TWI UART SERIAL (USB) Timer 0, 1, 2 Sleep Narcoleptic: Vaknar igen efter en bestämd tid AVR/Sleep.h : Vaknar på ett externt interrupt Arduino simulator: 123d.circuits.io Atmel studio 7 Supports code in C C++ Assembly www.atmel.com/avr 7

22/02/16 Webbadresser Den viktigaste arduino.cc Webb-kurser learn.adafruit.com learn.sparkfun.com Utvecklingsmiljöer processing.org fritzing.org 123d.circuits.io Resurser att leta delar Google.com adafruit.com sparkfun.com Svenska återförsäljare electrokit.se lawicel.se elfa.se farnell.se 8