KMM. Enchipsdator = allt på ett chip, CPU, RAM, ROM, I/O (parallell, seriell, A/D, timer/counter, PWM, I2C, SPI,...) I/O A I/O B I/O C I/O D.

Relevanta dokument
KMM. Hur fort går det? Enchipsdator = allt på ett chip, CPU, RAM, ROM, I/O (parallell, seriell, A/D, timer/counter, PWM, I2C, SPI,...

KMM. Enchipsdator = allt på ett chip, CPU, RAM, ROM, I/O (parallell, seriell, A/D, timer/counter, PWM, I2C, SPI,...) I/O A I/O B I/O C I/O D.

Kandidatprojekt. Hur fort går det? Enchipsdator = allt på ett chip, CPU, RAM, ROM, I/O (parallell, seriell, A/D, timer/counter, PWM, I2C, SPI,...

ElprojY/KMM 1/2 föreläsningar

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

Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Introduktion till Arduino

Introduktion till Arduino

Robotfotboll med Arduino

Datakommunikation med IR-ljus.

Bilen som inte kan krocka

Digitala Projekt(EITF40) - Larm

Växtviskaren EITF11 Digitala projekt VT15, I12

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

Bussar och I/O. samt. vad kan man göra med NEXYS3

Bussar och I/O. samt. vad kan man göra med NEXYS3. Nexys3. Prog + spänningsmatning. Expansionskort

A-del motsvarande KS1

Innehåll. 1 Inledning 3

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

DIGITALA PROJEKT Väderstation

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

Thunder s Truck projektrapport

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Effektpedal för elgitarr

Digitala Projekt(EITF40) - Larm

ARDUINO i RC sammanhang

Laboration 5 C-programmering på AVR TSEA57 Datorteknik I

Design av inbyggda system. Innehåll. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design. Hårdvarunära design TDD

VHDL 1. Programmerbara kretsar

Design av inbyggda system

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

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

Digitalteknik: CoolRunner-II CPLD Starter Kit

TEMPERATUR OCH VINDMÄTARE MED HÖGTALARFUNKTION

Goda råd till de som ska utföra ett liknande projekt (från KMM 2016)

Enchipsdatorns gränssnitt mot den analoga omvärlden

Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012

F7: I/O hantering. Asynkron och synkron busscykel Bussfördelning. Periferikretsar

Ansvarig lärare: Olof Andersson, Telefon (besöker skrivsalen)

Datorteknik 1 (AVR 1)

Enchipsdatorer med tillämpningar LABORATION 6, ROBOT

Design av inbyggda system

EV3 Roboten. Sida 1 av 13

Avståndsmätare. Digitala System EITA Grupp 7. Abdelsalem Yabrag, Abdulhadi kikar, Fredrik Peterson, Jesper Annefors

WALL E. WALL EVADER EDI021 DIGITALA PROJEKT

Mekanisk solros, Digitala projekt(edi021) Kristoer Nordvall, Stefan Windfeldt, Inlämmnad: 4 december 2006

ETSA01 Digitala Projekt (I) VT- 13. Projektarbete AC Handledare Bertil Lindvall

JOFEN-Prototypes. Målsökande pansarvagn. Projektarbete i Kursen EITA15. Jonatan Claesson, Olle Jonasson, Felix Rödén, Edvin Rossi & Nils Olén

A/D D/A omvandling. Lars Wallman. Lunds Universitet / LTH / Institutionen för Mätteknik och Industriell Elektroteknik

Träff 1 - Introduktion

Digitala Projekt (EITF11)

Digitala projekt Linjeföljande bil

Design av inbyggda system

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

Programmera i Block Editor

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

Feeding Daisy. EITF11 Lunds Tekniska Högskola. Grupp 12: Pontus Akervall Louise Landare Anton Schölin. En automatisk blomvattnare

Digitalt eller Analogt

Digitala projekt rapport

Periferikretsar. ADC/DAC Räknare Realtidsklocka Timer Interrupthanterare UART (Universal Asynchronous Reciever and Transmitter) Seriell dataöverföring

Digital elektronik CL0090

Digitala projekt - Radiostyrd bil

LEU240 Mikrodatorsystem Laboration 2: Ett komplett avbrottsstyrt system med in- och utenheter

Blue Key Digitala projekt VT

UDPong - Pong over UDP

LUXCONTROL DSI IR / 2IR

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

Enchipsdatorns gränssnitt mot den analoga omvärlden

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

Temperaturmätare med lagringsfunktion DIGITALA PROJEKT EITF11 GRUPP 14, ERIK ENFORS, LUDWIG ROSENDAL, CARL MIKAEL WIDMAN

TEMPERATURMÄTARE MED GRAFRITARE

Designplan mätning av acceleration hos bilbanebil

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

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

Workshop Micro:bit Maria Sandfjord Helene Zeland Bodin

- Digitala ingångar och framförallt utgångar o elektrisk modell

Arduinokurs. Del 1 - Vett och etikett. Talsystem. Binärt ettor och nollor

Roboten. Sida 1 av 11

3. Mikroprogrammering II

Pulsmätare Digitala Projekt EITF11

Hobbyelektronik med Raspberry Pi och Erlang

Projekt EITA15. Väckarklocka. LTH Ingenjörshögskolan vid Campus Helsingborg Datateknik

Design vid utveckling av inbyggda system

4. Pipelining. 4. Pipelining

Grundläggande datavetenskap, 4p

Digitala projekt. Henrik Lundstedt Gustav Darpö

SNABBGUIDE VAD ÄR MICRO:BIT? HUR FUNGERAR DEN? KOMMA IGÅNG MED BLOCKPROGRAMMERING 10 OLIKA LEKTIONSFÖRSLAG.

Normer: EMC: EN , EN LVD: EN Matning:

Fjärrstyrning av mikrovågsstation SM7LCB

.00 E00. Innehåll: Kablage allmänt. Tillägg för drift Radiostyrning Igångkörning Programmering Vinschradio Elschema Felsökning

Digitala projekt, EDI021 Rapport Handledare: Bertil Lindvall

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

Lego Robot [ ] [ ] [ ]

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

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

RAPPORT: DIGITALA PROJEKT

IF96002 är kompatibel med Nemo 96 HD / HD+ / HDLe. Läs informationen nedan och spara din dyrbara tid!

Vad är kommunikation? Vad är datorkommunikation? Dataöverföring; Inledning

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04

Transkript:

KMM Enchipsdatorn AVR Kommunikation Sensorer Reglerteknik Avbrott Raspberry Pi www.atmel.com www.avrfreaks.net 1 Enchipsdator = allt på ett chip, CPU, RAM, ROM, I/O (parallell, seriell, A/D, timer/counter, PWM, I2C, SPI,...) 8 8 8 8 clk rst I/O A I/O B I/O C I/O D irq Flash Prog CPU RAM Data EE Data AVR-familjen. 8-bits RISC-dator + I/O AVR = Alf Vegard Risc 2 1

ATmega1284 <-> ATmega16<-> ATmega168 Egenskap 1284 16 168 Instruktioner Register Flash (program,konstanter) EEPROM (konstanter) 131 kraftfulla! 32 generella 8-bits 128 kb 16 kb 16 kb 4 kb 512 B 512 B SRAM (variabler) 16 kb 1 kb 1 kb I/O (pinnar) 32 (40) 32 (40) 23 (28) Avbrott (antal) 36 20 26 I 2 C 1 1 1 SPI 3 1 1 UART 2 1 1 8-bit timers 2 2 2 16-bit timers 2 1 1 PWM (kanaler) 6 4 6 A/D (kanaler) 8 8 6 klocka 0-20 MHz 0-16 MHz 0-20 MHz 168 1284, 16 3 Principschema 2-stegs pipeline clk rst Motor, Servo, Sensor, Bluetooth,... 4 2

Hur fort går det? Med 20 MHz klocka gör AVR 20 MIPS (miljoner instruktioner per sekund) Hämta 1 Hämta 2 add brpl xxx yyy Verkställ 1 Verkställ 2 add brpl nop yyy 20000 instruktioner per millisekund! OBS, en FPGA på samma frekvens är klart snabbare! processor sekvensnät 20 MHz 20 MHz 5 Data space Programmerarmodell Program space 32 64 8k 1024 8 16 3

Stora AVR-en har 4 portar (A,B,C,D) à 8 bitar. Varje port kan vara en parallellport eller något annat. Till porten hör ett antal I/O-register. 9 Ett litet exempel AVR r0 r1 ddrb portb PB0 PB1 PB2 PB3 bar LED r31 pinb PB4 PB5 PB6 PB7 DIP switch 8 10 4

En pinne/bit i port B Här är pinnen! DDRBn PORTBn PINBn Alltså * 3 register * skriv till PORT * läs från PIN 11 Vanlig digital in/ut-matning - asm.include "m16def.inc".org 0 ; Skriv 00001111 i datariktningsregistret ldi r17,(1<<ddb3) (1<<DDB2) (1<<DDB1) (1<<DDB0) out DDRB,r17 TILLBAKA: ; Läs av pinnarna in r16,pinb ; kolla tryckknappar 7,6,5,4 ; Skifta ner r16 fyra gånger swap r16 ; Skriv ut på LEDarna out PORTB,r16 jmp TILLBAKA 12 5

Vanlig digital in/ut-matning - C #include <avr/io.h> int main(void) { uint8_t i;... /* Define directions for port pins */ DDRB = (1<<DDB3) (1<<DDB2) (1<<DDB1) (1<<DDB0); } while (1) { /* Läs av DIP-switchen */ i = PINB; /* kolla tryckknappar */ /* Skifta 4 steg höger, skriv ut på LEDarna */ PORTB = i>>4; } Kommentar: 1) I/O-programmering likadan som i asm! 2) Nytt är variabeln i. Var bor den? Hur stor är den? 13 asm <-> C Manualen har exempel för båda CPU registren r0-r31 försvinner I/O-programmeringen likadan. 64 I/O-register Tidskritisk kod? Mer känsla för maskinen? Det går att blanda, fast gör inte det Struktur, if-satser, forloopar..., datatyper... Kompilatorn fixar kod för avbrottsvektorer 14 6

Utvecklingsmiljö för Atmel Windows Atmel Studio (asm, avr-gcc) JTAG-kabel USB-kabel I labbet: Med ICE, exekvering i AVR 1) Upload + Programmering 2) Läsa/skriva register (vrida på huvudet...) 3) Singlesteppa 4) Köra med brytpunkt adress/data Hemma: Utan ICE, simulering i PCn 1) Läsa/skriva register 2) Singlesteppa 3) Köra med brytpunkt program/data 4) Stimuli (mata in 0/1 på pinnarna) 15 17 7

18 Kommunikation - UART - Parallell - I2C - SPI 19 8

Hur kommunicerar processorerna med varandra och med omvärlden? servon Modul 1 Atmel sensorer Modul 2 Atmel Modul 3 Atmel 20 1) UART (Universal Asynchronous Receiver/Transmitter) Protokoll: startbit databitar... 1 stoppbit AVR1 UART1 Firefly Bluetooth modul Dongle Bluetooth pinne USB term UART2 AVR2 UART1 UART2 Max 115200 BAUD (databitar per sekund) Full duplex Flaggor signallerar sänt/mottaget data klart 9

2) Parallellport AVR1 AVR2 Data Handskakning + Enkelt (?) - Många pinnar - Eget protokoll - Dubbelriktad (?) - Egen handskakning 22 3) I 2 C Inter Integrated Circuit TWI -Two Wire Interface Enkel 2-trådsbuss (+ jord) AVR kan vara Master/Slave AVR kan vara Sändare/Mottagare 7-bits adress => 128 slavar Multimaster arbitration supported Upp till 400 khz (200 khz i praktiken) IRQ0 IRQ1 AVR1 master AVR2 master AVR3 master AVR1 master AVR2 slave AVR3 slave SDA SCL SDA SCL Multimaster Coolt men svårare! Master / Slaves Vanligare, lättare! 23 10

3) I 2 C Two wire interface Inter-integrated-circuit master slave slave AVR1 AVR2 AVR2 bit rate control status data slave address TWBR TWCR TWSR TWDR TWAR TWBR TWCR TWSR TWDR TWAR TWBR TWCR TWSR TWDR TWAR + 10 kohm 24 SDA SCL 4) SPI f max = 8/4 MHz AVR1 (master) AVR2 (slave) 25 11

Sensorer - A/D-omvandling - Reglering - Telemetri -Tidsmätning 26 Sensor 1: IR-avståndsmätare spänning Features Less influence on the color of reflected objects, reflectivity Analog voltage corresponding to distance Detecting distance: 4 to 30 cm, 10 to 80 cm, 20 to 150 cm External control circuit unnecessary Low cost 27 avstånd 12

Sensordata Ett exempel ur verkligheten: IR-avståndsmätare ger 25 mätvärden/s i form av analog spänning 0->3V. Vi kopplar den direkt till en AVR, som har A/D-omvandlare. Vid närmare studium av sensordatas kvalitet på oscilloskop upptäcks störningar på mätvärdena! Bäst är att bli av med dessa, med ett lågpassfilter, innan signalen går in i A/Domvandlaren. 28 Sensor 2: Tejpsensorn mäter tejpens läge +5 analog spänning [0-5] V R1 R2 IR-lysdiod 29 13

Sensor 3: Linjesensor Vårt sensorpaket, 11 sensorer (LED + fototransistor), Läses av med A/D Varje sensor kontrollerad ljust = 0, mörkt 1023 En bit tejp, Ojämn, varierande belysning 30 Att mäta analog spänning: A/D-omvandling +5 R1 R2 omvandlare analog mux Värde 10 bitar Kontroll/Status 8 kanaler 0->5 V => 0->1023 Start... (gör nåt annat) Färdig 31 14

Sensordata 1 2 3 4 5 6 k Enkel tyngdpunktsberäkning: Felet k T mkk k e 3, 5 k T k m k 32 Lite reglerteknik Hur gör man egentligen för att 1) gå mitt i en korridor? 2) följa en linje? trots att 1) 4-beningen haltar lite grann 2) linjen böjer av 3) golvet lutar lägessensor styrdon 33 15

Lite reglerteknik Vi måste konstruera en enkel linjär tidsdiskret regulator. 1) Vi bestämmer oss för ett lämpligt D T, dvs tiden mellan två sensoravläsningar. 2) För roboten i korridoren bildar vi felet e[n] = x h [n] x v [n] För linjeföljaren får vi felet direkt ur sensorn. 3) En regulator bildar en lämpligt styrsignal u[n] mha av felet e[n]. felsignal e[n] Regulator styrsignal u[n] Vi antar att u[n] = 0 rakt fram u[n] > 0 sväng höger u[n] < 0 sväng vänster och att e[n] = 0 mitt på linjen e[n] > 0 vänster om linjen 34 e[n] < 0 höger om linjen Lite reglerteknik Enklaste regulatorn: P-reglering u[n] = K P *e[n] Rattutslaget proportionellt mot felet 35 16

Lite reglerteknik P Näst enklaste regulatorn: PD-reglering u[n] = K P *e[n] + K D *(e[n] e[n-1]) Alla bilarna har samma e[n] => samma positiva P-del 1) Neg D-del => minskat rattutslag 2) Pos D-del => ökat rattutslag 3) Mycket neg D-del => styr åt andra hållet I-del behövs ej, kvarstående reglerfel finns ej här! e=0 => u=0 36 Lite reglerteknik OBS: 1) Det är viktigt att känna till D T. PD-formeln ska ju egentligen se ut så här: u[ n] K K P P e[ n] e[ n 1] e[ n] K D D T K D e[ n] ( e[ n] e[ n 1]) D T Var försiktig med talområdet! Använd C, int16_t u,e, ; Det är ju felderivatan vi ska reagera på!!! Styregenskaperna ska inte ändras om D T ändras! Variant: om vinkeln kan mätas u[ n] K P e[ n] K 2 Styrstopp? if u>max u=max; 37 17

Telemetri Det är bra! Men varför då? Lätt att se inre tillståndet i systemet, när det är i drift och rörelse! T ex varför gjorde den så? Lätt att ställa in reglerparametrar, i realtid! fel styr Inbyggt system tx rx Firefly USB 38 trigger 1 Sensor 4: Ultraljud out 1 Voltage Frequency Max Range 5v 40KHz 3 m Min Range Sensitivity Input Trigger Echo Pulse 3 cm Detect a 3cm diameter stick at > 2 m 10uS Min. TTL level pulse Positive TTL level signal, width proportional to range. 39 18

Timer/Counter AVR har 3 timer/counters (ATMega 16) Detta är timer/counter1. Simplified block diagram! 16-bits räknare jämförelseregister tidregister kontrollregister 40 Att mäta tid Polling 1) Vänta på att pinnen går hög 2) Läs av räknaren TCNT1 3) Vänta på att pinnen går låg 4) Läs av räknaren TCNT1 5) Subtrahera Avbrott 1) Sätt upp ICR1 för att ta en timestamp på positiv flank på pinnen I avbrottsrutinen Läs av TCNT1, lägg i en variabel och ställ om polariteten på flanken Variabeln innehåller avståndet! 41 19

Pulsbreddsmodulering (PWM) - D/A-omvandling avbrott period komp räknare komp S R T ex motor Duty cycle Kontrollera om motorn/servot reagerar på pulskvot eller pulsbredd! 42 Ännu ett exempel Styrning av servon, som reagerar på pulsbredd. Gäller bara s k hobbyservon. 1-2 ms Kommandon * sväng x vänster * I 2 C Superstressad AVR? 8 st... 20 ms 43 20

De flesta servon reagerar på pulsbredd 1-2 ms 1-2 ms 20 ms PWM 44 Dynamixel-servo (gående robot + robotarm) Kommunicerar via UART, 1MBaud! Kan rotera med olika hastigheter Vinkelområdet kan begränsas Drivkraft kan begränsas Belastning, spänning, temperatur, position m m kan läsas av 45 21

Dynamixel-servo (gående robot + robotarm) Styrs via många olika parametrar i servots interna minne 46 Avbrottskällor i ATmega16 Vanlig avbrottsingång Vanlig avbrottsingång 49 22

Avbrott i AVR mega 16.org 0x0 ; hopptabell jmp RESET ; jmp EXT_INT0 ; yttre avbrott.org 0x1c jmp ADC ; A/D omvandlaren klar RESET: jmp RESET EXT_INT0: reti ; här börjar ; mitt huvudprogram ; yttre avbrott 1) En händelse sätter en 2) Om avbrottet är aktiverat så fås hopp till avbrottsrutin 3) Spara undan SREG Ta ner Betjäning Ta tillbaka SREG reti ADC: reti ; A/D-omvandlaren ; klar 50 RFID Tags Sensor 5: RFID RFID Card Reader RS232 (UART) 2400 BAUD 51 23

Sensor 6: LIDAR-lite v2/v3 Laseravståndssensor Upp till 40 m (1 cm upplösning) I2C-interface 52 Sensor 7 : VL53L0X Time Of Flight, distance sensor 50-1200 mm 3-5V matning 3-5V logik I2C-interface (adressbyte via I2C) 25-35 sensor-kon 54 24

Sensor 8: Angular rate sensor ( Gyro ) Sensor 9 : LSM9DS0 Adafruit 9-DOF Accel/Mag/Gyro+Temp Accelerometer Magnetometer (kompass) Gyro Temperatur 5V-kompatibel I2C-interface SPI-interface 58 25

Sensor 10 : LSM303DLHC Adafruit 10-DOF IMU Breakout - L3GD20H + LSM303 + BMP180 Accelerometer Magnetometer (kompass) Gyro Temperatur Barometer 5V-kompatibel I2C-interface SPI-interface 59 Sensor 11 : Wii IR Camera Ryktet säger : Ger (X,Y)-koordinater för dom 4 starkaste IR-källorna inom synfältet Kommunicerar med I2C 3.3V I/O Datablad saknas, googla på wii ir camera och hoppas på tur 60 26

Sensor 12 : Kamera Till Raspberry Pi 8 megapixel Fixed focus Klarar 1080p, 720p60, VGA90 Avsedd för Raspberry Pi 61 Raspberry Pi 72 27

Raspberry Pi 3 A 1.2GHz quad-core 64-bit ARMv8 CPU Bluetooth 4.1 BLE WLAN 802.11n 1GB RAM 4 USB ports Ethernet port 40 GPIO pins Full HDMI port Micro SD card slot Camera interface (CSI) Display interface (DSI) VideoCore IV 3D graphics core Combined 3.5mm audio jack and composite video 73 Raspberry Pi (raspberrypi.org) The good... and the bad PLUS Ett operativsystem -Linux (Raspian, Ubuntu) Stort arbetsminne, 1GB Kraftfull processor Många olika portar -USB, HDMI, ETH -Audio I/O-portar (3.3V) MINUS Ej 5V-kompatibel Skrymmande storlek (relativt AVR) Krävande att använda 28

Kan man göra ett eget PCB? Ja, om det inte blir för många grupper samt Man bör ha viss tidigare erfarenhet 75 The End Vad göra nu? -Fundera och planera -Kolla datablad vanheden.isy.liu.se -Prata med handledaren 2/10 : Designföreläsning 76 29