Träff 1 - Introduktion

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

Programmera i teknik - kreativa projekt med Arduino

PROJEKT STAFFAN STALLEDRÄNG

Att programmera arduinon

Programmering på Arduino/Genuino

Robotfotboll med Arduino

Ipad i teknikundervisningen

Programmering med Arduino

Digitala Projekt(EITF40) - Larm

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

Roboten. Sida 1 av 11

Konstruera, styra, reglera och programmera en röd tråd F-9

Laboration 1: Styrning av lysdioder med en spänning

CanCom C721 RadioTransceiver V1.19

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

Innehåll. 1 Inledning 3

Växtviskaren EITF11 Digitala projekt VT15, I12

Digitala projekt - Radiostyrd bil

Installationsmanual 501 GPS Tracker

Laboration 5. Temperaturmätning med analog givare. Tekniska gränssnitt 7,5 p. Förutsättningar: Uppgift: Temperatur:+22 C

EV3 Roboten. Sida 1 av 13

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Programmering robotprogrammering med mbot

Programmering av. PADDY mini

Datorteknik 2 (AVR 2)

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

GPIO - General Purpose Input Output

Kom igång med Micro:bit och JavaScript Blocks Editor. Framsida

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

Laborationskort - ML4

Arduinokurs. Kurstillfälle 4

Digitala Projekt (EITF11)

AL-C AL-S AUX. AL-C SENSOR. (Complete) (Overload) (Aux.) + IN - IN. Svart. Grön Vit Screen. Röd EXC. + Lastgivare

Lego Robot [ ] [ ] [ ]

Att bygga och programmera en motordriven robot som kan undvika hinder.

Elektronik och Microbit

Monteringsanvisning till ESR_CAP Mätare v1.0

MSR Gjutarevägen Stenkullen

Vilken skillnad gör det var du placerar det? Prova båda.

JavaScript Block Editor:

Du har följande material: 1 Kopplingsdäck 2 LM339 4 komparatorer i vardera kapsel. ( ELFA art.nr datablad finns )

Programmera i Block Editor

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

Granska befintlig kod och kommentarer Testa loopbackfunktionen

Bilen som inte kan krocka

Experiment med schmittrigger

Manual Sportident Onlinekontroll via GPRS

Extramaterial till Matematik Y

Datorteknik 1 (AVR 1)

Styrteknik: MELSEC FX och numeriska värden

Instruktion Programmeringsapp och gränssnitt

Montering av Wisp628.

Digitalteknik: CoolRunner-II CPLD Starter Kit

Disposition av prototypkort

Avant BRUKSANVISNING. FAKTARUTA AVANT Hög utnivå med förstärkning upp till 57 db. Automatiska funktioner för tilt och förstärkning

Instruktion för I/O-Kort, med USB-anslutning.

Digital elektronik CL0090

Table of Contents. Credits

SMS-larm L Version Gjutarevägen Stenkullen

Sphero SPRK+ Appen som används är Sphero Edu. När appen öppnas kommer man till denna bild.

Lyser skylten för starkt på natten? Ska skylten vara tänd eller släckt på dagen? Önskas en enkel lösning utan ljussensor?

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

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

Styrning från telefon. Styrning mellan två Robofonsändare. Styrning via SMS. Styrning via dator

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

Pulsmätare med varningsindikatorer

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

Programmeringspalett. Pr o gr a mvar a

Styrsystem till ABAB 255.

Whack-a-Witch. Introduktion. Nivå

K44 Duo. Installation & User Manual EN SV DE FR DA FI NO

CTRX Graphene och Graphene+ Quick Startup guide för (130226) Rev. 1.0

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Dokumentet är ett tillägg och bifogas tillsammans med databladen för Sweeper och Tuner. Beskrivning - Sweeper Se databladet för Sweeper

Installationsmanual CAT12 CE Moderkort

SMS-larm L Gjutarevägen Stenkullen

ANVÄNDAR MANUAL. SESAM 800 RX MC Manager

ARDUINO i RC sammanhang

SMS-larm L Version Gjutarevägen Stenkullen

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

SMS-larm L Ver Gjutarevägen Stenkullen

Manuell SMARTCD.G

Mät resistans med en multimeter

Extramaterial till Matematik Y

Bruksanvisning INKA. Tillbehörssändare

SMS-larm L Version Gjutarevägen Stenkullen

Sirius II Installation och Bruksanvisning

ATU. Användarmanual. Larmöverföringsenhet Firmware Version

UPPDATERING MJUKVARA FÖR PALTRONIC SYSTEMS

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

Ver 2.2. ELDES ESIM364 Kom igång

BRUKSANVISNING DAAB UTGÅNGSKORT DB410

5:2 Digitalteknik Boolesk algebra. Inledning OCH-funktionen

GPIO - General Purpose Input Output

Legorobot. Lär dig programmera en legorobot. Teknikåttan Ola Ringdahl Lena Kallin Westin

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

TEMPERATUR OCH VINDMÄTARE MED HÖGTALARFUNKTION

VU 201A Inställningar Waratah

RADIOMOTTAGARE RGBW SOM STYR EN GEMENSAM ANOD FÖR LED-strip

Snabbguide Överföring av resultat till PC. systemsure Plus

Transkript:

Arduino Arduino är den lilla mikroprocessorn, baserad på ATmega chipet, som man med små C-skript kan få liv i sina hemprojekt och experiment. Arduino-kortet ansluts till datorns USB-port för både strömförsörjning och kommunikation. Kodningen sker med gratisprogramvaran IDE som laddas ner från https://www.arduino.cc/ Till kortet ansluts sensorer och förbrukare. Man deklarerar varje port för sig som ingång eller utgång. De flesta portarna är digitala, men det finns även möjlighet till ett antal analoga. Via C-skript bygger man sedan logiken kring hårdvarans agerande. Exempel på sensorer är potentiometrar, ultraljudssensorer, mikrofoner, fotoceller, tungelement, mikrobrytare och strömbrytare. Förbrukare kan vara: RC-servon, steg-motorer, likströmsmotorer, LCD-displayer, högtalare, lysdioder och lampor av olika slag. IDE:n erbjuder lösningar för logik, matematik, trigonometri, minneshantering och egenskapsparametrar för diverse hårdvara. Programmet lagras sedan i Arduino-kortet, vilket medger att bygget fungerar helt fristående utan att vara kopplad till datorns USB-port. Processorn är ombord!

Digitala in- & utgångar Mikroprocessorn räknar som bekant med ettor och nollor. Man skulle kunna säga på och av eller hög och låg. I Arduinons värld motsvarar en hög signal 5V och en låg signal 0 V. De benämns också på engelska HIGH och LOW eller som en bit. Talsystemet är binärt. Bit En bit kan inta två positioner, 1 eller 0 Byte En byte består av 8 bitar intill varandra. Det binära talsystemet ger: 00000000 = 0 11111111 = 255 Baud Kommunikationshastigheten bits/s Analog ingång En analog ingång kan variera var som helst mellan hög och låg. Svaret från den analoga ingången är oftast en siffra mellan 0 och 1023, vilket är en representation över spänningen på ingången.

Kretskortet - Arduino LED lampa för port 13 Digitala GPIO portar för kommandona: digitalread() digitalwrite() analogwrite(), endast portar med PWM ~ LED lampa för seriell sändning USB-anslutning till dator för strömförsörjning och uppladdning av program samt seriell kommunikation LED lampa indikerar strömförsörjning Reset-knapp för processorn LED lampa för seriell mottagning Strömförsörjningskontakt på mellan 7 V 12 V DC, då kortet inte är anslutet till en dator. Spänningskälla för anslutna kretsar på 3,3 V DC Spänningskälla för anslutna kretsar på 3,3 V DC Jord Alternativ spänningsmatning Mikroprocessorn ATMega Skruvhål till chassi Analoga ingångar för kommandot analogread()

IDE-gränssnittet Ny sketch Öppna sketch Spara sketch Överför sketch till Arduino-kort Seriell monitor Verifiera skript eller s.k. sketch Fält för skript Fält för meddelande

Koppla ihop hård- och mjukvara Koppla in Arduino-kortet till datorn via en USB-kabel. I menysystemet bläddrar man upp fliken Port under meny-valet Verktyg. Den aktuella COM-porten som Arduino tagit i anspråk visas. Klicka på denna och kommunikationen är upprättad. Kontrollera också att kortvalet är Arduino/Genuino Uno.

En analogi för skriptfältet Tänk dig att du skall ut i skogen och plocka svamp. Inför denna utfärd behöver du förbereda dig. Du tar t.ex. med dig bra skor (OUTPUT) och en korg (INPUT) att samla upp svampen i. Dessa förberedelser gör man endast en gång för att sedan ge sig av. Låt oss kalla det en setup, precis som i Arduinons värld. void setup() { //put your setup code here, to run once: } // betyder att den nästkommande tecknen avses vara programmerarens egna kommentarer. Att på ren svenska förklara för sig själv vad en bit kod avses göra är värdefullt då man öppnar sketchen vid ett senare tillfälle. Det blir överskådligt och det blir lättare att felsöka samt att förstå avsikten bakom koden. Mellan klamrarna ställer man alltså upp sina villkor t.ex. att port nummer 3 skall anslutas till en förbrukare i form av en lysdiod och port nummer 5 skall anslutas till en tryckknapp som ger en insignal. Vi passar också på att deklarera ett värde för ingången som om det vore ett heltal, d.v.s. ett så kallat integer. Låt oss kalla variabeln för knappstatus. Denna variabel-deklarering görs innan setup. int knappstatus = 0; void setup() { pinmode(3, OUTPUT); pinmode(5, INPUT); } Processorn läser in deklareringen vid start och tar med sig denna på hela resan.

Väl ute i skogen vill vi hitta Kantareller och Karl-Johan. Vi vet inte hur många vi hittar (if) eller om vi hittar några överhuvudtaget (else). Med skornas hjälp kan vi ta oss till olika platser. En svamp placerad i korgen räknas in (HIGH). Arduinons andra C-skript del inleds med: void loop() { //put your setup code here, to run once: } Loopen går runt hela tiden. Då koden kommit till sista raden vänder programmet tillbaka till loopens start för att på nytt scanna av dess omgivning. Detta pågår så länge Arduinon körs. Hur ser det ut på ingång 5 (svamp i korgen)? Behöver vi aktivera utgång 3 (skorna). Låt oss nu lämna skogen och låta ingång 5 vara en strömbrytare samt utgång 3 en lysdiod som aktiveras i 2 sekunder efter signal på ingången. void loop() { knappstatus = digitalread(5); If (knappstatus == LOW) { // knappen är inte nertryckt digitalwrite(3, LOW); //Lysdiod släckt } else { //knappen är nertryckt digitalwrite(3, HIGH); // Lysdiod tänd delay(2000); // Fördröjning på 2000 ms digitalwrite(3, LOW); //Lysdiod släckt } }

Övning 1a - Programkod Skriv in koden enligt sketchen bredvid. Lägg märke till: Deklarerade variabler skrivs in allra först i sketchen. Vid användandet av ett lika-med-tecken tilldelar man ett värde. En inledande vänsterklammer hör alltid ihop med en avslutande högerklammer. Koden placeras där i mellan. Ett objekts beskrivning eller värde sker mellan två parenteser. Ett kommando avslutas alltid med ett semi-kolon. Vid en jämförelse används två stycken lika-med-tecken. Programmet kategoriserar all kod i olika färger med automatik. Verifiera koden innan överföring till Arduino-kortet.

Resistorns färgkoder 1:a bandet (röd = 2) 2:a bandet (röd = 2) 220 Ω Tolerans Multiplikator (svart = 1 st. 0:a)

Övning 1b - Hårdvaran En lysdiod kopplas in via ett motstånd på 220 Ω mellan jord och port 3. Lysdiodens längsta och ibland böjda ben dras till plus. En strömbrytare dras mellan jord och port 5. En resistor på 10 kω dras till jord för att garantera ett lågt 0-värde då strömbrytaren är öppen. +5V GND

Seriell kommunikation Vi utökar skriptet med en seriell kommunikation till IDE-programmet och dess monitor. Setup-delen utökas med Serial.begin(9600); Argumentet mellan parenteserna sätts till 9600, vilket motsvarar kommunikationsfarten 9600 baud (bits/s). I Loop-delen kan vi skriva in: Serial.print(knappstatus); vid lämpligt ställe i koden. Serial.println(knappstatus); används om man vill att monitorn skiftar rad mellan värdena. Vi lägger till en fördröjning på 2 sekunder så att inte monitorn blir fylld av ettor och nollor. Monitorn startas med hjälp av förstoringsglaset i övre högra hörnet.

Övning 2a Ultraljudslinjal Ultraljudssensorn har fyra stift. De yttre är för spänningsmatning 5V. De två i mitten kallas TRIG och ECHO. TRIG skickar ut ett ultraljud, vilket träffar ett föremål och studsar tillbaka mot sensorn, vilken hanterar det som ett eko, därav ECHO. Trigger betyder ju avtryckare på engelska. Vi definierar dem som integer-variablerna 2 och 4. På port 6 skall vi koppla in en lysdiod. Variabeln lumen sätts till 0, vilket ger oss ett sätt att hantera ljusstyrkan som kommer att variera i förhållande till mätresultatet. Mätresultatet definieras som distance och ges initialt värdet 0. Setupen inleds med att starta den seriella kommunikationen samt att definiera portarna, men denna gång med hjälp av variabler istället för siffror. InputPin betyder ju här 2. Loopen startar med att skicka ut ett ultraljud. På nästa rad väntar man 10 mikrosekunder för att på nästkommande rad, släcka ljudet. På nästkommande rad hanteras insignalen med pulsein-kommandot. Värdet lagras i variabeln distance. Svaret från den analoga ingången ger en siffra på över 1000 och behöver divideras med 60 för att återge det till linjalens centimeter. Skenet från lysdioden hanteras istället med kommandot map. Variabeln distance varierar mellan 0 och 60, vilket interpoleras till ett värde mellan 0 och 255 som lysdioden kommer att hantera via kommandot analogwrite. Avslutningsvis skickar vi upp mätvärdet i cm till den seriella monitorn.

Övning 2b - Hårdvaran En lysdiod kopplas in via ett motstånd på 220 Ω mellan jord och port 3. Lysdiodens längsta och ibland böjda ben dras till plus. Ultraljudssensorns 2:a och 3:e stift motsvarar TRIG och ECHO. De yttre är för spänningsmatning 5V. +5V GND GND ECHO TRIG +5V