Kategoriarkiv: Koncept

API

Ett API, eller ett Application Programming Interface, är ett protokoll som används av applikationer för att hämta information. Information kommer från hemsidor, där informationen lagras. Genom att skicka in olika webb-adresser kan applikationen fråga efter den specifika information som behövs, och får på det sättet inte mer information än den kan hantera.

Temperatur-API

Detta API ger dig en temperatur på en given plats med hjälpa av två parametrar: stad och land.

Kopiera denna text till en webb-läsare: “http://verkstad.cc/iot/mmx/code/get_temperature.php?city=london&country=gb”

Sidan som öppnas visar temperaturen i London, Storbritannien. Testa att ändra parametrarna så att temperatur-API’et visar temperaturen i Tokyo, Japan.

Testa olika länder och städer där du tror att det bör vara olika temperaturer. Jämför till exempel dag och natt, vinter eller sommar. För att komma igång behöver man landskoden för det land man vill använda. Nedan finns några:

  • Australien = AU
  • Kina = CN
  • Egypten = EU
  • Indien = IN
  • Japan = JP
  • Ryssland = RU
  • Sydafrika = ZA
  • Spanien = ES
  • Sverige = SV
  • Storbritannien = GB
  • USA = US

För en lista över alla landskoder, gå in på; https://sv.wikipedia.org/wiki/ISO_3166#ISO_3166-1-koder

Twitter-temperatur

Här ska vi använda samma elektronik som i den förra uppgiften. Men den här gången ska vi ändra koden så att programmet anropar och twittrar vårt temperatur-API.
Vi kommer att skicka ”It’s X degrees in X city! Tweet 1. #CTCerStad” till det gemensamma twitter-kontot.

Material:

  • Arduino YUN
  • 5st kopplingstrådar
  • 2st 10k resistorer (Färgerna på dem är brun, svart, orange och guld)
  • En knapp
  • En LED-lampa
  • Ett kopplingsbord

Nästa steg är samma som tidigare. Om du har kvar dem kan du hoppa till steg 2.

Modifiera koden

  1. Bygg ihop MDF-delarna med knappen och LED-lampan.
  2. Öppna filen “e2_temperature_twitter” från exempel-menyn
  3. Ändra “country”-variabeln i koden så att adressen har den stad och det land ni vill använda.
  4. Ändra även “countryMessage”-variabeln så att rätt stad skrivs ut.
  5. Se till så att knappen och LED-lampan är kopplade till rätt pins på Yún-kortet.
  6. Ladda upp sketchen på kortet.
  7. När den röda L13-lampan lyser är Yún-kortet redo.
  8. Öppna “Serial monitor”-fönstret och tryck sedan på knappen.
  9. När “Tweet sent” syns i den seriella monitorn kan ni gå in på Twitter för att se meddelandet. Det gemensamma Twitter-kontot är :

Precis som med de förra Twitter-meddelandena behöver man ändra på innehållet om man ska skicka flera.

Räkna binärt

Människor har totalt 10 symboler för att representera siffror: från 0 till 9. Genom att kombinera dem kan du representera vilket nummer som helst – 13, 648, 2015, osv. På samma sätt kan i stort sett hela universum representeras med bara ettor och nollor. Allt som behövs är ett system för att kombinera dem.

Föreställ dig fyra switchar som kan sättas på och stängas av. Varje switch har ett värde; ’8’, ’4’, ’2’ och ’1’. När samtliga switchar är avstängda motsvarar detta ’0’ – 0000. Sätt på switch 1 för att representera siffran 1 – 0001. Stäng av switch 1 och sätt på switch 2 för att representera siffran 2 – 0010. Tänk nu noga och försök representera siffran 3. Du sätter på både switch ’2’ och ’1’ – 0011. Detta eftersom 2+1 är lika med 3. Försök få fram siffran 7. Sätt på switch ’4’, ’2’ och ’1’ – 0111. Försök med nummer 11. Sätt på switch ’8’, ’2’ och ’1’ – 1011.
Läs mer

Blink

Under introduktionen till programmering fick du lära dig att skapa små program och animationer med Processing. Du satte på och stängde av pixlar på datorskärmen. Arduinon har ingen skärm, men en LED monterad på kortet. Det är som en liten lampa som du enkelt kan sätta på och stänga av. Man skulle kunna säga att Arduinon en skärm med en enda pixel. Den monterade LED:n är kopplad till digitala pin 13.

Det är väldigt enkelt att kontrollera Arduinons monterade LED. Det första exemplet du kommer att programmera heter Blink. Att blinka en LED betyder att upprepade gånger växla mellan de två möjliga tillstånden genom att sätta på och stänga av den.

På samma sätt som Processing-program alltid måste inkludera funktionerna setup() och draw(), måste Arduino-program alltid inkludera funktionerna setup() och loop().

  • setup(): den här delen av programmet körs endast en gång, i början av programmet. Här berättar du för Arduinon vilka pins som ska användas, och om de kommer att användas som inputs eller outputs.
  • loop(): den här delen upprepas för alltid (eller tills du kopplar bort strömförsörjningen). Kommandon i loop() utförs, en efter en, uppifrån och ner. När sista raden kod är nådd körs den första raden kod igen.

Exempel 2.1

I det här exemplet kommer du att få den på Arduinon monterade  LED:n att blinka.

Material

  • 1 Arduino Uno

Instruktioner

  1. Öppna Arduino IDE:t och skriv följande kod:

  1. Koppla Arduinon till din dator med USB-kabeln.
  2. Kompilera och ladda upp koden till Arduinon med den här ikonen. [upload icon]

Resultat

Den monterade LED:n borde nu blinka med ett intervall på två sekunder, en sekund på och en sekund av.

Nya kommandon

  • pinMode(pinNumber, OUTPUT): konfigurerar digitala pin pinNumber så att den uppträder som en output.
  • digitalWrite(pinNumber, HIGH/LOW): skriver HIGH (på) eller LOW (av) till digitala pin pinNumber.
  • delay( time ): pausar programmet i så många millisekunder som  specificerats med time.

Repetition:

  • Varje kommando avslutas med semikolon, ;.
  • Block av kod ryms innanför klammerparenteser { }.
  • Funktioner inleds med definitionen void.
  • Funktioner har parametrar som ryms mellan parenteser ( ). Antalet parametrar styrs av funktionen.

Så här fungerar det

  • setup() konfigureras digitala pin 13, pinen till viken LED:n är kopplad, som en output.
  • loop() sätts LED:n på genom att skrivatill pin 13. Det betyder att 5V skickas till pin 13.
  • Programmet pausar i 1000 millisekunder, 1 sekund.
  • LED:n stängs av genom att skriva LOW till pin 13. Det betyder att 0V skickas till pin 13.
  • Programmet pausar i ytterligare 1000 millisekunder
  • loop() fortsätter upprepas.

Lägg till egna LED:s

Du kan lägga till egna LEDs till kretsen. För att dina elektroniska komponenter i krets ska få ström måste de alla kopplas till ström och jord. På Arduinon förses ström genom pin märkt med “5V” eller genom en av de digitala pinsen (när de sätts till HIGH). Jordpinen är markerad med “GND” (ground).

LED:s har polaritet och är designade för att visa detta. Det långa benet heter anod och är positivt. När den kopplas till en krets ska anoden kopplas till ström, i det här fallet i en digital pin eftersom du vill kunna kontrollera den. Det korta benet, katod, är negativt och ska kopplas till GND.

LEDs går inte sönder om de kopplas fel, men de kommer inte att fungera. En LED kan endast hantera begränsat med ström. För att skydda dem från att brännas behöver du seriekoppla en resistor (även kallat motstånd) med dem. Resistorns värde varierar, i CTC-exemplena används alltid en 220 Ohms sistor retillsammans med en LED. Läs mer om resistorer och Ohms lag här.

För att förenkla kopplandet av kretsar kommer du att använda Education-skölden. När skölden är kopplad på din Arduino utökar den Arduinons kapacitet och funktionalitet. För att göra en krets med en LED behöver du använda kopplingsdäcket på sköldens ovansida. Läs mer om kopplingsdäck här och Education-skölden här.

Exempel 2.2

I det här exemplet kommer du att koppla en LED till din Arduino och få den att blinka.

Material

  • 1 Arduino Uno
  • 1 Education-sköld
  • 1 LED
  • 1 220 ohms resistor
  • 2 labbkablar

Instruktioner

  1. Fäst skölden på Arduinons ovansida.
  2. Koppla LED:n över kopplingsdäckets mittengap.
  3. Koppla 220 ohm resistorn till digitala pin 5 med en labbkabel. Koppla resistorn till det långa benet på LED:n.
  4. Koppla det korta benet på LED:n till GND med en labbkabel.
  5. Ladda upp den här koden:

Resultat

Som i det tidigare exemplet bör LED:n blinka med ett intervall på två sekunder.

Så här fungerar det

  • setup() konfigureras digitala pin 5, pinen till viken LED:n är kopplad, som en output.
  • loop() sätts LED:n på genom att skriva HIGH till pin 5.
  • Programmet pausar i 1000 millisekunder.
  • LED:n stängs av genom att skriva LOW till pin 5.
  • Programmet pausar i ytterligare 1000 millisekunder.
  • loop() fortsätter att upprepas.

Exempel 2.3

I det här exemplet kommer du att göra en liten modifiering av exempel 2.2 . Du kommer att behålla samma krets men istället för att skriva numret på den digitala pin som LED:n är kopplad till, kommer du att använda en variabel. Om du behöver hjälp med att komma ihpg vad en variabel är kan du gå tillbaka och läsa avsnittet om variabler i det tidigare blocket.

Instruktioner

  1. Ladda upp den här koden:

Resultat

Det här exemplet bör göra exakt samma sak som föregående exempel.

Så här fungerar det

  • Variabeln ledPin deklareras och tilldelas värdet 5, numret på den digitala pin du använder.
  • setup() används variabeln ledPin för att konfigurera pin 5 som en output.
  • loop() sätts LED:n på genom att skriva HIGH till pin 5 med hjälp av ledPin.
  • Programmet pausar i 1000 millisekunder.
  • LED:n stängs av genom att skriva LOW till pin 5.
  • Programmet pausar i ytterligare 1000 millisekunder.
  • loop() fortsätter att upprepas.
Tänk på: Bestämmer du dig för att koppla LED:n till en annan digital pin behöver du bara byta ut pinnumret på en plats i koden istället för tre, om du använder dig av en variabel.

Lär genom att göra

  • Se vad som händer när du ändrar tiden i funktionen delay(). Få ljuset att blinka snabbare eller långsammare.
  • Använd ljuset för att simulera ett hjärtslag. Kolla ditt hjärtslag genom att mäta pulsen. Du kommer märka att du alltid får två pulser, ungefär som tick, tack … pause … tick, tack … pause. Simulera detta med en LED. (Tips: du kan klippa och klistra kod)
  • Se vad som händer när pausen blir väldigt liten. Testa och se om du fortfarande kan se ljuset blinka när du ändrat till delay(10).

VU-meter

Det är möjligt att koppla och kontrollera mer än en LED med din Arduino. I CTC-programmet kallas det för VU-meter när du använder flera LED. i en rad. EducationShield-biblioteket innehåller en klass, vuMeter, med flera funktioner du kan använda för att enkelt kontrollera flera LEDs. Läs mer om VU-metern här.

Piiip

I det här avsnittet kommer att du leka lite med ljud. Ljud är vibrationer. Ljudet från en gitarr kommer exempelvis från strängarnas vibrationer. Du kan även producera ljud med Arduinon genom att generera vibrationer. I följande exempel kommer du att göra detta med en piezohögtalare, och få den att pipa.

Digitala inputs

På samma sätt som du kan skriva HIGH eller LOW till en digital pin på Arduinon, kan du läsa HIGH eller LOW från en digital sensor kopplad till en digital pin. Digitala inputs kan, precis som digitala outputs, bara ha två tillstånd.
Läs mer