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 sedan kommer vi använda lite olika material, bla från SparkFun (det röda kitet) men också material från Freenove (kitet i plastlådan) där vi lär oss att jobba med, och lär oss styra, ett gäng olika komponenter kopplat till våra Arduinos. Kiten som vi använder oss av är inte identiska men baskomponenterna bör finnas i bägge kiten, annars får vi låna de komponenter vi behöver till övningarna av varandra.

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.

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 RedBoard från SparkFun och vi utgår ifrån deras paket som heter SparkFun Tinker Kit. Vi kommer också använda oss 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, 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 SparkFun och Freenove som är anpassat till de kit som de säljer. Eftersom kiten innehåller olika komponenter så kan det vara så att vissa övningar endast fungerar med ena kitet. Då får vi låna komponenter av varandra. I SparkFuns kit finns t.ex. en motor som kan vara kul att arbeta med.

Materialet från SparkFun är väldigt genomarbetat och övningarna är både filmade, presenteras på webben och dessutom i en samlad PDF. Du väljer själv vilket material du väljer att följa. Det kommer också finnas material från en tutorial som medföljer kitet från Freenove. Detta material hittar du också på github.

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.

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 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 SparkFun eller 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 2022 är det version 1.8.19 som är den aktuella, välj sedan att ladda ner versionen "Windows Win 7 and newer".

Det finns en annan IDE som heter Arduino IDE 2.0 som är nästa version av Arduinos egen IDE. Förra året körde vi den i macOS och den har sina fördelar. Främst så upplevde vi att vi fick tydligare felmeddelande i denna versionen. Ibland upplevdes den snabbare men den kunde lika gärna bli oändligt långsam eller helt enkelt krascha. Hur den fungerar i Windowsmiljö? Ingen aning, testa gärna denna version om du vill.

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 om du vill få en genomgång av själva programmet så finns det en film här.

Fungerar inte?

Troligtvis kommer installationen gå smärtfritt men om du använder en äldre dator så kan du behöva installera drivern CH340 för att det skall fungera. Info hittar du här.

2.1.4.3 Arduino exempelkod

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.

När du installarer 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

Vi kommer börja använda material från SparkFun där du skall utföra ett antal uppgifter så att du får testa på att använda ett antal sensorer samt styra andra komponenter via programmering. Till varje uppgift så finns det en film som visar allt som skall göras, det finns en webbsida som med bilder och text visar och förklarar vad som görs och vad som händer samt att det finns en PDF med i stort sett samma material som webbsidan visar. Välj själv hur du följer uppgiften, filmerna är bra men jag tycker ibland att det är svårt att följa alla kopplingar så ett kopplingsschema på bild underlättar ofta det arbete som skall göras.

Filmerna och PDF:en är egentligen kopplade till Inventor's Kit medan vi 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.

Varje uppgift slutar med att exempelkod överförs och testas i den fysiska produkten. De ger ibland utmaningar att på egen hand förändra koden och testa på egen hand. Gör gärna detta.

På vissa uppgifter kommer jag utmana dig lite mer och ge dig uppgifter som skall utföras.

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 IDE och sätta i kabeln mellan dator och Arduinon och kika i menyaleternativet 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 gärna fördjupningsuppgifter, extrauppgifter och lek sedan på egen hand för att känna att du har koll på hur detta fungerar.

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