- Kursmaterial
- Planering
- Arbete
- Kunskapsdokument
- Andra kurser
- Om Kursolle
2. Moment02 - Arduino grund
I detta moment så skall vi börja arbeta med våra Arduino.
2.1 Momentets innehåll och introduktion
Först så skall jag köra en kort presentation av Arduino som är hårdvaran som kommer användas i detta moment och vi kommer jobba med utbildningsmaterial som är kopplat till det kit som vi använder. Detta utbildningsmaterial är relativt omfattande men också väldigt bra. Vi utgår från detta material och så kanske vi lägger till en del, ersätter något annat och väljer att ta bort någon del. Men som vanligt gäller det att ju fler verktyg du har desto bättre förberedd är du att göra bra saker på egen hand.
2.1.1 Arduino
Arduino är en utvecklingsplattform utvecklad som ett mikrokontrollerkort baserad på öppen hårdvara. Arduino är liten, flexibel och skall vara enkel att använda och en bra start för mindre projekt. En Ardunio kan t.ex. läsa av olika sensorer och sedan med hjälp av programmering avgöra vad som skall ske.
Tack vare att det är öppen hårdvara så finns det flera olika typer av mikrokontrollkort som fungerar på liknande sätt. Arduino som varumärke har flera olika versioner av sina mikrokontrollerkort, den som är intresserad kan kika här och sedan finns det en enorm bredd av sensorer och tillbehör som kan användas ihop med kontrollkortet beroende på vilket projekt man har valt att utveckla. Bara genom att kolla på utbudet av Arduinos så ser vi att det finns allt från små till stora kort, vissa har bara grundläggande saker på kortet och andra varianter är mer utrustade.
Eftersom det är en öppen hårdvara så finns det idag ett antal olika varumärken som gör olika varianter av liknande mikrokontrollerkort såsom Genuino (gruppen som skapade Arduino blev osams och skapade två olika hårdvaror), RedBoard, NodeMCU, teensy mfl. Vi kommer i denna kursen att jobba med ett kit från Freenove som heter Freenove Ultimate Starter Kit men jag kommer ändå hänvisa till Arduino.
Vi kommer också att lära oss att programmera vår Arduino, språket som används heter Arduino Programming Language (Arduino PL / APL) och är baserat på C och C++.
2.1.2 Community och länkar
Arduino är väldigt populärt i makervärlden
och det finns mängder av ritningar, tutorials och beskrivningar av projekt som olika personer har gjort. Det finns också samlingsplatser för de som brinner för att utveckla projekt med Arduino.
2.1.3 Arbetsmodell
I detta moment kommer vi att använda oss av material från Freenove som är anpassat till de kit som de säljer. Vi har tyvärr inte möjlighet att ge varje elev ett nytt kit så de kit som ni får har använts tidigare och det kan eventuellt saknas någon komponent som varit trasig och kastats. Det kan också vara så att det in något kit finns dubletter av olika delar då elever har arbetat i grupp. För att inte göra det krångligare än nödvändigt så be mig om ersättningskomponenter om det saknas. Jag har fler kit att ta av.
Tidigare material från SparkFun [klicka för att visa]
Tidigare år så har vi i kursen använt materialet SparkFun Tinker Kit. Materialet från SparkFun är väldigt genomarbetat och övningarna är både filmade, presenteras på webben och dessutom i en samlad PDF. För den som är intresserad så har jag komponenter från SparkFun ifall någon vill komplettera med någon av deras övningar.
Till alla övningar från SparkFun finns det färdig programmeringskod att utgå ifrån. Hämta hem samtliga koder här eller kika på alla koder här. När du installerar Arduino IDE så kan du under inställningar välja Skissboksplats
och här har jag lagt samtliga exempelkoder.
Filmerna och PDF:en är egentligen kopplade till Inventor's Kit medan skolan har Tinker Kit vilket innebär att vi kan göra något färre uppgifter än vad som finns dokumenterat i Inventor's Kit utifrån de komponenter vi har till vårt förfogande.
Till varje övning så finns det tydliga beskrivningar hur du skall koppla de olika komponenterna samt en färdig kod som du kan testa och utgå ifrån.
Målet med detta arbetet är att du skall bli van att koppla ihop komponenter, lära dig hur komponenterna fungerar och även våga ändra i koden för att tillslut bli så duktig så att du kan skapa egna projekt.
2.1.4 Förberedelser
Innan du är redo att göra första uppgiften så behöver vissa saker finnas på plats.
2.1.4.1 Hårdvara
Du kommer få ut en låda med ett kit från Freenove och du kommer få signera att du har fått utlämnat ett kit och dessa skall lämnas tillbaka när kursen är slut.
Elektroniska komponenter är känsliga
Tänk på att vissa elektroniska komponenter är väldigt känsliga för stark ström vilket innebär att de kan gå sönder. Att komponenter går sönder och bränns är inte hela världen men vi behöver ju inte bränna komponenter i parti och minut. Utgå ifrån att strömmen in från datorn oftast behöver någon form av resistor för att inte bränna känsliga komponenter. En uppenbart trasig komponent behöver du inte lägga tillbaka i din låda.
Vi kommer lära oss mer om detta längs vägen.
2.1.4.2 Arduino IDE
Du behöver installera Arduino IDE för att kunna programmera och överföra ditt program till din Arduino. Välj den senaste stabila versionen och ladda ner installationsfilen anpassad till ditt operativsystem. Länken finns här. I augusti 2023 är det version 2.2.1 som är den aktuella, välj sedan att ladda ner versionen "Windows Win 10 and newer, 64 bits".
Det finns ytterligare en variant av IDE som heter Arduino IDE 1.8.19 som är kvar sedan tidigare. När vi körde denna kursen för två år sedan så var IDE 2.0 helt ny och innehöll en hel del buggar medan 1.8.19 var stabilare men hade inte lika bra funktionalitet. Några elever körde bägge varianterna parallellt förra året. Det kan hur som helst vara bra att veta att det finns två varianter.
Det finns också möjlighet att arbeta med andra typer av IDE för att kommunicera med din Arduino men det är lite överkurs och då får du trixa på egen hand.
Att använda Arduino IDE visas i det material som kommer men här finns också en bra video om hur du kommer igång med Arduino IDE 2.X.
2.1.4.3 Arduino exempelkod
När du installerar Arduino IDE så medföljer det också ett gäng exempelkoder som kan vara användbara. Om du öppnar en sådan kodfil så kommer du få information om uppgiften och sedan en länk till ytterligare information och även bilder på kretsen som skall kopplas.
2.1.4.4 Undervisningsmaterial
I denna kursen kommer vi följa en tutorial som är kopplad till kitet från Freenove. Detta material hittar du också på github. Ladda ner materialet och packa upp det, där finns både tutorial som pdf och koder som vi kommer använda men även lite annat material kopplat till kitet.
Till alla övningar i tutorial finns det färdig programmeringskod att utgå ifrån. När du installerar Arduino IDE så kan du under inställningar välja Skissboksplats
och här har jag lagt samtliga exempelkoder. Hitta ett sätt att skilja de koder som du laddar ner under kursens gång och de koder som du själv skapar. Det finns risk att det blir rörigt annars.
Ta för vana att dokumentera ditt arbete och spara alla koder som du skapar på egen hand, lägg gärna dessa filer på en plats som säkerhetskopieras, man vet aldrig när detta kan komma till användning.
2.2 Laborationer
Koppla datorn till Arduino
På din dator så finns det två USB-portar som du kan använda för att koppla ihop datorn med din Arduino. Det är inte säkert att bägge USB-portarna fungerar så dubbelchecka vilken som funkar.
Du kan testa att endast öppna Arduino IDE och sätta i kabeln mellan dator och Arduinon och kika i menyalternativet Verktyg
->Port
för att se om någon port är tillgänglig. På min dator så ville den ansluta till COM4.
Här nedan följer ett antal laborationer. Ta dig tid att genomföra dem och gör sedan gärna eventuella fördjupningsuppgifter, extrauppgifter och lek sedan på egen hand för att känna att du har koll på hur detta fungerar. Det är bättre att du tar lite mer tid på dig än att du skyndar igenom övningen och missar viktig kunskap som du behöver senare i kursen.
Chapter 1 LED Blink
Första laborationen med en grundlig genomgång om elektroniken i kretsarna samt genomgång av nya komponenter, vilket ju är alla som finns med i denna laboration.
Nya komponenter
- Breadboard
- LED
- Resistor
- Push button
Projekt
- Project 1.1 Control LED with Manual Button
- Project 1.2 Control LED with Control Board
Chapter 2 Two LEDs Blink
Inga nya komponenter utan mer fokus på hur man kan förändra beteendet hos komponenter mha kod.
Projekt
- Project 2.1 Two LEDs Blink
Chapter 3 LED Bar Graph
Nu kommer en ny komponent som innehåller 10 olika ledlampor. Nu blir det lite trixigare att koppla och lite mer kod att fokusera på för att kunna styra komponenten på rätt sätt.
Nya komponenter
- LED bar graph
Projekt
- Project 3.1 LED Bar Graph Display
Chapter 4 LED Blink Smoothly
Inga nya komponenter men fokus på att mha kod kunna styra ljusstyrkan på lysande samt blinkande LED.
Projekt
- Project 4.1 LEDs Emit Different Brightness
- Project 4.2 LED Blinking Smoothly
Chapter 5 Control LED with Push Button Switch
I detta kapitel så hamnar fokus på knappen, hur den används och även hur du kan ta hand om det problem, bounce/debounce, som kan uppstå med en knapp som vi ofta inte tänker på.
Nya komponenter
Inga nya komponenter.
Projekt
- Project 5.1 Control LED with Push Button Switch
- Project 5.2 Change LED State with Push Button Switch
Chapter 6 Serial
En djupdykning i hur kommunikationen sker inom systemet med seriell och parallell kommunikation.
Nya komponenter
Inga nya komponenter.
Projekt
- Project 6.1 Send Data through Serial
- Project 6.2 Receive Data through Serial Port
- Project 6.3 Application of Serial
Chapter 7 ADC
Fokus på hur de analoga portarna kan användas.
Nya komponenter
- Potentiometer
- Photoresistor
Projekt
- Project 7.1 ADC
- Project 7.2 Control LED by Potentiometer
- Project 7.3 Control LED by Potentiometer
Chapter 8 RGB LED
Dags att testa en LED som kan lysa med olika färger.
Nya komponenter
- RGB LED
Projekt
- Project 8.1 Control RGB LED through Potentiometer
- Project 8.2 Multicolored LED
Chapter 9 Buzzer
Dags att det låter lite...
Nya komponenter
- NPN transistor
- Buzzers, active och passive
Projekt
- Project 9.1 Active Buzzer
Project 9.2 Passive Buzzer
Chapter 10 Motor
Dags att kika på motorer som gör att vi kan röra på saker.
Nya komponenter
- Motor
- Relä
- L293D (integrerad krets)
Projekt
- Project 10.1 Control Motor by Relay
- Project 10.2 Control Motor with L293D
Chapter 11 Servo
Dags för servomotorn.
Nya komponenter
- Servo
Projekt
- Project 11.1 Servo Sweep
- Project 11.2 Control Servo with Potentiometer
Chapter 12 Temperature Sensor
Dags att lära oss att mäta temperaturen.
Nya komponenter
- Termistor
Projekt
- Project 12.1 Detect the Temperature
Chapter 13 Joystick
En joystick är väl alla bekanta med men hur fungerar den egentligen?
Nya komponenter
- Joystick
Projekt
- Project 13.1 Joystick
Chapter 14 Acceleration sensor
Den sensorn som används i detta kapitel används oftare än du tror. Den är ett gyroskop och mäter också accelerationen i tre axlar.
Nya komponenter
- MPU6050 module
Projekt
- Project 14.1 Acceleration Detection
Chapter 15 LED Matrix
LED Matrix är kul att leka med, en elev byggde ett eget Tetrisspel för några år sedan. Rätt mycket teori i detta kapitel för det gäller att förstå hur data skickas i systemet för att kunna styra LED Matrix på rätt sätt.
Nya komponenter
- 74HC595
- LED bar graph
- LED matrix
Projekt
- Project 15.1 74HC595
- Project 15.2 LED Matrix
Chapter 16B LCD1602
Nu skall vi lära oss att jobba med en LCD-skärm.
Detta kapitel finns i två delar beroende på vilken LCD-modul som finns i ditt kit, vi skall jobba med Chapter 16B då vi har en I2C LCD1602
.
Nya komponenter
- I2C LCD1602
Projekt
- Project 16.1 Display the String on I2C LCD1602
- Project 16.2 I2C LCD1602 Clock
Chapter 17 Digital Display
En display som byggs upp av sju segment i en enkel display eller i en komponent som består av fyra displayer.
Nya komponenter
- 1-digit 7-segment display
- 4-digit 7-segment display
Projekt
- Project 17.1 1-digit 7-segment Display
- Project 17.2 4-digit 7-segment Display
Chapter 18 Stepper Motor
En motor som går att styra i grader hur mycket den skall röra sig är alltid användbart.
Nya komponenter
- Stepper motor
- ULN2003 stepper motor driver
Projekt
- Project 18.1 Drive Stepper Motor
Chapter 19 Matrix Keypad
Vi lär oss använda en keypad för att kunna mata in info till vårt system.
Nya komponenter
- 4x4 keypad
Projekt
- Project 19.1 Get Input Characters
- Project 19.2 Combination Lock
Chapter 20 Vibration Switch
En vibrationssensor är användbar i många projekt.
Nya komponenter
- Vibration switch
Projekt
- Project 20.1 Detect Vibration
Chapter 21 Infrared Remote
Denna teknik lär du känna igen från tvkontrollen.
Nya komponenter
- Infrared remote
- Infrared receiver
Projekt
- Project 21.1 Infrared Remote Control
- Project 21.2 Control LED through Infrared Remote
Chapter 22 Temperature & Humidity Sensor
En annan typ av sensor som mäter temperatur och denna mäter också luftfuktighet.
Nya komponenter
- DHT11
Projekt
- Project 22.1 Temperature & Humidity Sensor
Chapter 23 Infrared Motion Sensor
Vi adderar rörelsesensorn till komponenter som kan användas för att skydda ditt hus och din egendom.
Nya komponenter
- Infrared motion sensor
Projekt
- Project 23.1 Infrared Motion Sensor
Chapter 24 Ultrasonic Ranging
Så nära får ingen gå....
Nya komponenter
- Ultrasonic ranging module
Projekt
- Project 24.1 Ultrasonic Ranging
Chapter 25 Soldering Circuit Board
Vi kommer eventuellt inte att göra exakt denna uppgiften men vi kommer att träna på att löda ihop med Noureddin någon gång när TE4-eleverna är ute på praktik. Kanske tränar vi bara rent allmänt på att löda eller så löder vi verkligen Project 25.2 Solder a Flowing Water Light
så att ni får testa på att löda ett helt projekt med alla utmaningar som kommer med det.