Arduino blokkprogrammering lynkurs 04 Arduino blokkprogrammering lynkurs 04. mai 2017 - Skolelaboratoriet av Nils Kr. Rossing Skolelaboratoriet ved NTNU
Kursprogram Skolelaboratoriet torsdag 4. mai 2017 13.00 – 13.15 Kort intro 13:15 – 14:00 1 økt Løsing av oppgaver med blokkprogrammering 14:00 – 14:15 Pause. 10:30 – 12:00 2 økt Løsing av oppgaver med blokkprogrammering
Kort introduksjon til mikrokontrollere
Vaskemaskin Sensorer (det som føler): Bryterpanel Temperatur Vannivå Dørlukker Lekkasje Tid Aktuatorer (det som utfører): Motor Ventil, fyll vann Pumpe, tømming Varmeelement Display, lysdioder Slipp inn vaskepulver Varsellyder www.skolelab.ntnu.no/
Følere (sensorer) og styrte brytere (aktuatorer) - eksempel vaskemaskin Mikrokontroller Temperatur Bryter Dør Vannivå Lekkasje Sensorer: Motor, start, stopp, sentrif. Vannpumpe Ventil Varmelement Display Aktuatorer: Data- lager Spenningsinnganger Spenningsutganger Program Klokke Omformere fra fysisk størrelse til spenning Programmet bestemmer når det skal utføres en aksjon en aksjon på bakgrunn av sensorverdier og ønsket funksjon
Arduino UNO er styringsenheten Mikrokontroller Temperatur Bryter Dør Vannivå Lekkasje Sensorer: Motor, start, stopp, sentrif. Vannpumpe Ventil Varmelement Display Aktuatorer: Spenninger Spenninger Programm Klokke Omformere fra fysisk størrelse til spenning
Design prosessen
Heftet Innledning til blokkprogrammering Sparkfun Inventor’s kit en kortfattet oversikt over komponenter Blockuino: Oversikt over de viktigste blokkene To øvingsoppgaver Noen andre blokkprogrammerings-verktøy Løsningsforslag
Designprosessen Lag en morse-”sender” (side 41 – 47) Blinklys SOS – Morse-”sender” med lys SOS – Morse-”sender” med lys og lyd SOS – Morse-”sender” med variabel hastighet Trafikklys (side 47 – 51) Vanlig enkelt trafikklys + bestilling av grønt med trykknapp + blinkende grønt mot slutten av perioden + lydsignal for synshemmede + blinkende gult ved mørkeds frambrudd + bestilling av grønt lys når en kommer nær trafikklyset
Gangen i konstruksjonen I elektronikken Konstruksjon av elektronikken Test programmet i elektronikken Hva skal lages? Blockuino Arduino IDE Skriv programmet i blokkode C-kode Oversett til maskinkode (kompiler) Grønn – i Blockuino programmvare Blå – i Arduino editor (IDE) Rød – i elektronikken (Arduino-kortet)
Byggesettet og komponentene Sparkfun Inventor’s kit
Sparkfun Arduino Inventor’s kit V3.2 Sparkfun pris:100$ - YouBlob pris: kr.900,-
Komponenter Gjennomgang av komponentene
Montering www.skolelab.ntnu.no/
Montering www.skolelab.ntnu.no/
Koblingsbrett
Komponenter Output (Aktuatorer) Oransje, oransje, brun, gull
Komponenter Input (Sensorer) Brun, sort, oransje, gull
Arduino UNO Digitale inn og utganger USB Batteri- eliminator +5v 0v 330Ω Digitale inn og utganger USB Batteri- eliminator +5v 0v Power Analoge innganger
Slå på PC Sjekk at du har nettkontakt Log in på NTNUGjest og skriv inn e-postadressen din Åpne Chrome og gå til www.blockuino.no Koble til Arduino til USB Åpne Arduino editoren (IDE) Gå inn i Tools - Velg riktig kort: Arduino UNO - Velg riktig port Sjekk at du har kontakt med Arduino ved å trykke på symbolet:
Blockuino Blokkprogrammeringsverktøy www.blockuino.no
Editor Blockuino.no Ny utgave med flere funksjoner frigjøres i disse dager
Arduino Programmeringsverktøy Integrated Development Environment (IDE)
Arduino editor (IDE)
Editor Lagre filen med nytt navn Lagre filen med samme navn Åpne en katalog Begynn å skriv et nytt program Kompiler og overfør Sjekk om koden er riktig www.skolelab.ntnu.no/
Installasjon av programvare (IDE) (for Windows) Hentes fra Dropbox: Arduino-1.8.2-windows.zip (pr. 23. mars 17) eller fra: http://arduino.cc/en/Main/Software Installer programvaren på egen PC Koble til Arduino Uno-kort, med USB-kontakt (lysdiode lyser) Installer driver ved å følge anvisninger idet Arduino’en kobles til Oppsett av programvare: Velg: Tools på menylinjen Velg: Board Velg: Arduino Uno Velg: Tools på menylinjen Velg: Serial Port Velg riktig Com Port www.skolelab.ntnu.no/
Installasjon av drivere Sjekk at driverne er installert: Start Arduino-editoren (IDE) Velg “Tools/Serial Port/COM<med høyeste nummer>” Dersom COM-porten til Arduino ikke vises så prøv en annen port, eller prøv følgende: Gå til “Kontrollpanelet” Velg “System” Velg “Enhetsbehandling” fra menyen til venstre Åpne “USB-kontrollere” ved å trykke på den vesle pila til venstre for teksten. Det kommer opp en liste over USB-porter Høyreklikk på porten med ukjent hårdvare (markert med et spørsmålstegn), og du får opp en nedtrekksmeny Velg “oppdater drivere programvare” og følg prosedyren for installasjon av drivere Driverne ligger i en underkatalog til Arduino-programvaren: /Programfiler(x86)/Arduino/drivers
Innledende programmering
Enkel programmeringsstruktur start/reset Deklarere variabler // Deklarer globale variable Int ledPin = 12; void setup() { // Koden i denne funksjonen kjører // én gang ved oppstart …. } void loop() // Koden i denne funksjonen går i endeløs loop // Deklarer lokale variable // Programlinjer … setup loop
Øving 1a Blinkende LED
Oppgave 1a Det skal kobles opp en krets og lages et program ved hjelp av blokkode, som får en lysdiode til å blinke 1 sekund på og 1 sekund av. Lysdioden kobles til den digitale pinnen 13.
Øving 1a Oppkobling av blinkende LED
Øving 1a Blinkende LED - skjema Pin 13 LED Motstand 330 Ohm GND Jord/Minus Arduinoen Kommentar: LED må kobles riktig vei. Langt bein mot pluss Alltid seriemotstand, 330 Ohm er nok
Øving 1 Blinkende LED - montering Monter kretsen og last opp programmet:
Øving 1 Programmering av blinkende LED og morsesender
Programkode med blokkoding La oss lage denne koden sammen Det handler om å finne fram i menyene.
Kopier koden fra kodevinduet til høyre
Legg koden inn i Arduino-editoren og kompiler og overfør til Arduino-kretskortet
Øving 1 Blinkende LED - oppkobling
Programkode med blokkoding La oss bruke en variabel i stedet for et fast tall.
Øving 1a Lag en SOS morsesender
Oppgave 1a Vi skal nå bygge opp en morsesender som sender SOS, dvs. vi skal utvide funksjonen til blinklyset i avsnitt 2.1.2. Spesifikasjon A: SOS SOS som morse er: * * * - - - * * * Prikklengde skal være: 200 msek Streklengde skal være: 600 msek Mellomrom mellom streker og prikker: 200 msek Avstanden mellom bokstaver skal være: 600 msek Avstanden mellom ord skal være: 1800 msek
Tips til løsning 1a Løsningsforslag
Øving 1b Lag en SOS morsesender med lyd
Oppgave 1b SOS med lys og lyd Det skal lages en SOS morsesender som samtidig sender både lys og lyd.
Øving 1b Morsesender med lyd - oppkobling
Tips til løsning 1b Løsningsforslag
Øving 1c Lag en SOS morsesender hvor sendehastigheten lett kan endres.
Oppgave 1c SOS med variabel hastighet Det skal lages en SOS morsesender hvor det er lett å variere hastigheten. Dvs. at hastigheten til morstesenderen skal kunne økes eller minkes med å sette inn ett tall. Selv om hastigheten endres skal forholdet mellom lengden av streker, prikker og mellomrom være den samme. Senderen skal kun sende lys.
Tips til løsning 1c Løsningsforslag
Øving 1d Lag en SOS morsesender hvor sendehastigheten kan endres med hjelp av en variabel motstand (potensiometer).
Oppgave 1d Reguler hastigheten med en variabel motstand I denne oppgaven skal vi koble opp en variabel motstand, et potensiometer, og bruke dette til å øke og redusere farten til mosesenderen.
Øving 1d Morsesender med variabel ”speed”
Tips til løsning 1d Løsningsforslag
Øving 2 Programmering av trafikklys
Øving 2a Programmer et trafikklys
Programmer et trafikklys – 2a Spesifikasjon 2a: Programmer et trafikklys: Bestem rekkefølgen på lysene i et trafikklys når lyset skifter fra rød til grønt og fra grønt til rødt. Programmer trafikklyset slik at: Det er rødt i 5 sek, gult i 1 sek og grønt i 5 sek. Koble opp trafikklyset med: Rød, Gul og Grønn lysdiode og skriv programmet
Øving 2a Trafikklys - oppkobling
Tips til løsning 2a Løsningsforslag
Øving 2b Programmer et trafikklys som i 2a men med grønt på forespørsel
Grønt lys på forespørsel – 2b Spesifikasjon 2b – Som i 2a, men med grønt lys på forespørsel Endre sekvensen i oppgave 1 slik at trafikklyset blir stående på rødt lys, helt til noen gir fotgjengerknappen ett kort trykk. Etter 5 sek. skal lyset skifte til grønt på riktig måte, være grønt i 5 sek., før det igjen skifter tilbake til rødt på riktig måte, hvor det blir stående til det kommer et nytt trykk på fotgjengerknappen. Nyttige opplysninger: Bruk trykknappen som følger med settet
Øving 2b Trafikklys: Grønt på bestilling oppkobling Løsningsforslag
Øving 2c Grønt lys på bestilling, med blinkende avslutning
Grønt lys på forespørsel med blinkende avslutning – 2c Spesifikasjon 2c: Som i 2b, men med blinkende avslutning: Endre programmet fra oppgave 2b slik at det blir grønt lys i 8 sek hvorav de siste 5 skal være blinkende. Hvert blink skal være 500 ms på og 500 ms av. Trafikklyset skal ellers oppføre seg som i oppgave 2b. Løsningsforslag
Øving 2d Grønt lys på bestilling, med blinkende avslutning med lyd for synshemmede
Grønt lys på forespørsel med blinkende avslutning og lyd – 2d Spesifikasjon 2c: Blinkende grønt lys på forespørsel med lyd: Hvert grønt lysblink skal etterfølges av et kort pip på 100 ms for synshemmede.
Øving 2d Trafikklys: Grønt på bestilling oppkobling, avsluttes med blinkende grønt med lyd Løsningsforslag
Øving 2e Grønt lys på bestilling, med blinkende avslutning, lyd for synshemmede og blinkende gult etter mørkets frambrudd
Som i 2d, men med blinkende gult ved mørkets frambrudd – 2e Spesifikasjon 2e – Blinkende gult lys etter mørkets frambrudd: Når det blir mørkt skal lyset gå over i blinkende gult. Det skal da være 0,5 sek. på og 0,5 sek. av helt til det blir lyst igjen. Det skal være nok å legge hånda over den lysfølsomme motstanden for at det skal begynne å blinke. Trafikklyset skal eller oppføre seg som beskrevet foran når det er lyst.
Øving 2e Trafikklys Som i 2d, men med blinkende gult etter mørkets frambrudd Løsningsforslag
Øving 2f Grønt lys på bestilling med automatisk bestilling av grønt, med blinkende avslutning, lyd for synshemmede og blinkende gult etter mørkets frambrudd
Som i 2e, men med automatisk bestilling av grønt – 2f Spesifikasjon 2f – Det gis grønt lys dersom noen nærmer seg lyset Det planlegges en modernisering av lyset. I stedet for at fotgjengerne skal trykke på knappen skal det være tilstrekkelig at de blir stående nærmere enn 30 cm fra trafikklyset, da skal de få grønt lys. Bruk en ultralyd sensor, bygg opp kretsen og lag et program som oppfyller disse betingelsene. Man kan godt bytte ut trykknappen med ultralydsensoren.
Øving 2f Trafikklys Som i 2e, men med automatisk bestilling av grønt lys når noen nærmer seg.
Øving 2f Trafikklys Løsningsforslag