Kategoriarkiv: Smarta miljöer

Smarta städer

Smarta miljöer som den smarta staden är ett mångfasetterat och brett område som bland annat innefattar:

  • Stadsplanering
  • Allmän säkerhet
  • Rörligheten i städer
  • Trafik hantering
  • Energi konsumtion
  • Sophantering

Några exempel: Ett system med smarta soptunnor som meddelar när de behövs tömmas, intelligenta belysningssystem som bara lyser upp olika områden vid behov, och bilar som sänder ut information för att förbättra stopp-ljusens precision.

 I följande övningar kommer vi skapa ett par exempel på IoT-projekt för smarta miljöer. Vi ska använda samma sensorer som de vi använde oss av i wearables-övningarna, men för helt andra syften.

Kom ihåg, med samma elektronik kan man skapa helt olika uppfinningar.

Referera till CTC IoT Teacher Guide #5.

 

Parkeringsövervakning

 I denna delövning använder vi en ljussensor för att känna av om och hur länge en parkeringsplats är upptagen. Om parkeringsplatsen används över en viss tid kommer vi att signalera detta med hjälp av en röd lampa.

Material:

  • Arduino YÚN
  • 3st kopplingstrådar
  • 1st 10k resistor (Färgerna på den är brun, svart, orange och guld)
  • Light Dependent Resistor (LDR)/ Ljuskänslig resistor
  • Kopplingsbord

  1. Bygg ihop MDF-delarna med temperatur-sensorn
  2. Öppna upp filen “e5_g1_carparkchecker” från exemplen
  3. Ladda upp sketchen på kortet
  4. När den röda L13-lampan lyser är Yún-kortet redo
  5. Öppna “Serial monitor”-fönstret och testa att ställa något över senson
  6. Gå in på er grupps “Short Memory API” adress och se hur värdena där ändrar sig
  7. Gå till: http://verkstad.cc/iot/mmx/1/index.php
  8. Ändra “threshold”-variabeln och se hur man kan få in olika mängder värden

Bilräknare

I denna delövning bygger vi en sensor som kontrollerar flödet i trafiken. Då sensorn kommit upp i ett visst antal bilar kommer stoppljuset att bli rött. Ett par sekunder efter detta blir ljuset grönt igen, och sensorn startar om sin räkning. Antalet bilar som får passera styrs via det centrala Yún-kortet.

Material:

  • Arduino YÚN
  • 3st kopplingstrådar
  • 1st 10k resistor (Färgerna på den är brun, svart, orange och guld)
  • Tryckkänslig sensor
  • Kopplingsbord

  1. Bygg ihop MDF-delarna med trycksensorn
  2. Öppna upp filen “e5_g2_carcounter” från exemplen
  3. Ladda upp sketchen på kortet
  4. När den röda L13-lampan lyser så är Yún-kortet redo
  5. Öppna “Serial monitor”-fönstret och testa att rulla något över sensorn som om det var hjulen från en bil
  6. Gå in på er grupps “Short Memory API”-adress och se hur värdena där ändrar sig. Kika även på monitorn till det centrala Yún-kortet, så ser du de värden som sparats där
  7. Gå till: http://verkstad.cc/iot/mmx/2/index.php

Vindmätare

I denna delövning bygger vi en sensor för att registrera vindstyrka. Om sensorn mäter en start-vind blir LED-lampan röd. När vinden lugnar ner sig så blir LED-lampan grön igen. Hur mycket vind som krävs för att ändra färgen på LED-lampan styrs av det centrala Yún-kortet.

Material:

  • Arduino YÚN
  • 3st kopplingstrådar
  • 1st 10k resistor (Färgerna på den är brun, svart, orange och guld)
  • Flex-sensor
  • Kopplingsbräda

  1. Bygg ihop MDF-delarna med Flex-sensorn
  2. Öppna filen “e5_g3_windstrength” från exemplen
  3. Ladda upp sketchen på kortet
  4. När den röda L13-lampan lyser är Yún-kortet redo
  5. Öppna “Serial monitor”-fönstret och testa sensorn genom att fästa den vid ett papper och blåsa på den med varierande styrka. Kika även på monitorn till det centrala Yún-kortet för att se de värden som sparats där.
  6. Gå till: http://verkstad.cc/iot/mmx/3/index.php
  7. Ändra “thresholdValue ”-variabeln och se hur mycket vind det krävs för att påverka sensorn

Tidningsräknare

I denna delövning bygger vi en sensor som kan räkna antalet tidningar som plockas ur en tidningslåda. Efter att lådan blivit öppnad ett visst antal gånger kommer en kupong skickas ut. RGB ledden kommer fungera som en signal för detta.

Material:

  • Arduino YÚN
  • 3st kopplingstrådar
  • 1st långa kopplingstrådar
  • 1st 10k resistor
  • Aluminiumfolie
  • Kopplingsbräda

  1. Bygg ihop MDF-delarna med den kapacitiva sensorn. Sätt ståltråden genom hålen i dörren, och snurra runt handtaget. Säkra sedan med koppartejp.

Newspaper1.jpg

  1. Öppna filen “e5_g4_newspapercounter” från exemplen
  2. Ladda upp koden på kortet
  3. När den röda L13-lampan lyser så är Yún-kortet redo
  4. Öppna “Serial monitor”-fönstret och testa det genom att fästa folien på en låda och öppna den
  5. Kika även på monitorn till det centrala Yún-kortet för att se de värden som sparats där.
  6. Gå till: http://verkstad.cc/iot/mmx/4/index.php

Använd två servon

När två servon används samtidigt kommer din Arduino ibland inte kunna distribuera tillräckligt med ström. Det finns olika tekniker för att övervinna detta. I nästa exempel kommer du att skriva signaler separat till varje servo. Se även referenssidan för att använda servon som hjul

Exempel 4.4

I det här exemplet kommer du att kontrollera två servon. En servo kommer att kontrolleras åt gången för att vara säker på att Arduinon kan förse tillräckligt med ström.

Material

  • 1 Arduino Uno
  • 1 Education-sköld
  • 2 standardservon

Instruktioner

  1. Fäst en sköld på Arduinons ovansida.
  2. Koppla den ena servon till D9 och den andra till D10.
  3. Ladda upp den här koden:

Resultat

Första servon bör nu rotera till en 70 grader, vänta en sekund, och sedan rotera till 120 grades. Den andra servon bör sedan gå igenom samma rörelser. Detta bör sedan repeteras.

Så fungerar det

  • Servo-biblioteket inkluderas.
  • Servo-objekten myservo1 och myservo2 deklareras.
  • setup()fästs myservo1 till pin 9 och myservo2 till pin 10.
  • loop()lösgörs myservo2 och myservo1 fästs till pin 9.
  • myservo1 roteras till 70 grader.
  • Programmet pausas i 1000 millisekunder.
  • myservo1 roteras till 120 grader.
  • Programmet pausas i 1000 millisekunder.
  • myservo1 lösgörs och myservo2 fästs till pin 10.
  • myservo2 roteras till 70 grader.
  • Programmet pausas i 1000 millisekunder.
  • myservo2 roteras till 120 grader.
  • Programmet pausas i 1000 millisekunder.
  • loop() fortsätter upprepas.

Lär genom att göra

  • Skapa en robot som använder en standardservo och en servo med kontinuerlig rotation för att ta sig framåt.

Kameraroboten

Spionera på din katt med den här robotkameran.  Bygg ihop robotkameran och kontrollera den med en liten joystick. Se kamerabilden live på på datorskärmen och när din katt gör någonting misstänksamt, ta en bild!

Material


  • 1 Arduino Uno
  • 1 Education-sköld
  • 1 webbkamera
  • 1 TinkerKit-joystick
  • 2 standardservon
  • 2 TinkerKit-kablar
  • 3 labbkablar
  • 8 AA-batterier
  • 1 AA-batterihållare
  • 1 strömkontakt
  • Robotkamera-kit

Instruktioner

  1. Fäst skölden på Arduinons ovansida.
  2. Koppla en TinkerKit-kabel till joystickens Y-kontakt. Koppla en röd labbkabel till den röda kabeln på TinkerKit-kabeln, och till 5V. Koppla en svart labbkabel till den svarta kabeln på TinkerKit-kabeln, och till GND. Koppla den sista labbkabeln till TinkerKit-kabeln och analoga pin A0.
  3. Koppla den andra TinkerKit-kabeln till joystickens X-kontakt, och till den analoga TinkerKit-kontakten, A1.
  4. Koppla konstruktionen till datorn och ladda upp exemplet ’CameraRobot’.
  5. Bygg kitet, glöm inte att placera webbkameran inuti!
  6. Vrid på servo-armen för hand åt ett håll, så långt det går. Vrid den sedan därifrån till 90 grader. Ta loss armen och sätt tillbaka den så att den går längs med servon. Gör samma sak med den andra servon.
  7. Koppla “lutnings-servon” till D10.
  8. Koppla “panorerings-servon” till D9.
  9. Koppla batteripaketet till Arduinons strömkontakt.
  10. Koppla webbkameran till din datorn. Öppna Processing-programmet CameraRobot.

Kod

Hitta koden File>Examples>EducationShield>Block4-Robots>Projects>CameraRobot

Hitta Processing-koden i File>Examples>EducationShield>Block4-Robots>Projects>CameraRobot>Processing>CameraRobot

Så här fungerar det

  • EducationShield- och Servo-biblioteken inkluderas.
  • Joystick- och Servo-objekten deklareras.
  • Variablerna som används för att sätta servons positioner deklareras, panAngle och tiltAngle.
  • Variablerna som används för att lagra joystickens värden deklareras, panJoystick och tiltJoystick.
  • setup()initialiseras servo-objekten.
  • loop()läses joystickens x-värde av och lagras i panJoystick.
  • Joystickens y-värde läses av och lagras i tiltJoystick.
  • Om panJoystick inte är lika med 0, betyder det att joysticken har flyttats i x-axeln, och följande händer:
    • Om panJoystick är lika med 1 och panAngle är mindre än 180, ökas panAngle med 1.
    • Om panJoystick istället är lika med -1 och panAngle är större än 0, minskas panAngle med 1.
  • Nästa if-sats i loop() kontrollerar om tiltJoystick inte är lika med 0. Om det är sant händer följande:
    • Om tiltJoystick är lika med 1 och tiltAngle är mindre än 180 ökas tiltAngle med 1.
    • Om tiltJoystick istället är lika med -1 och tiltAngle är större än 0, minskas tiltAngle med 1.
  • “Panorerings-servons” position bestäms med panAngle.
  • “Lutnings-servons” position bestäms med tiltAngle.
  • Programmet pausas i 5 millisekunder för att ge servon lite tid att komma på plats.
  • loop() fortsätter att upprepas.

Problemlösning

Lär genom att göra

  • Servorna kanske rör sig för snabbt eller för långsamt. Ändra på delay()-tiden i slutet av loop(), eller ändra på stegens storlek.
  • Servorna kanske rör sig för långt åt sidorna, eller för högt eller lågt. Begränsa de tillåtna vinklarna.
  • Bygg någonting annat som använder en “lutnings-servo” och en “panorerings-servo” och som du kontrollerar med en joystick.

Den krypande roboten

Denna lilla robot kan krypa. Det är allt den kan göra, och den är inte jättebra på det. Men den är supersöt och väldigt rolig!

Material


  • 1 Arduino Uno
  • 1 Education-sköld
  • 2 standardservon
  • 8 AA-batterier
  • 1 AA batterihållare
  • 1 strömkontakt
  • 1 robot-kit

Instruktioner

  1. Fäst skölden på Arduinons ovansida.
  2. Montera den krypande roboten.
  3. Vrid på servo-armen för hand åt ett håll, så långt det går. Vrid den sedan därifrån till 90 grader. Ta loss armen och sätt tillbaka den så att den går längs med servon. Gör samma sak med den andra servon.
  4. Montera varje servo i ett hål och fäst clownbenen i servons axel.

  5. Koppla den ena servos till D9 och den andra till D10.
  6. Koppla konstruktionen till datorn och ladda upp exemplet ’CrawlingRobot’.
  7. Koppla ur din Arduino från datorn och placera den i kroppen på den krypande roboten.
  8. Placera batterierna i batterihållaren och koppla den till Arduinons strömkontakt.

Kod

Hitta koden i File>Examples>EducationShield>Block4-Robots>Projects>CrawlingRobot

Så fungerar det

  • EducationShield- och Servobiblioteken inkluderas.
  • Servo-objekten deklareras.
  • setup() initialiseras Servo-objekten.
  • Fram-servons position sätts till 110 grader.
  • Programmet pausas i 200 millisekunder.
  • Bak-servons position sätts till 70 grader.
  • Programmet pausas i 200 millisekunder.
  • Fram-servons position sätts till 70 grader.
  • Programmet pausas i 200 millisekunder.
  • Bak-servons position sätts till 110 grader.
  • Programmet pausas i 200 millisekunder.
  • loop() fortsätter upprepas.

Problemlösning

  • Hänvisa till illustrationerna och dubbelkolla dina kopplingar. Var noga med att skölden och labbkablarna är ordentligt kopplade.
  • Servorna kanske inte fungerar. Testa om de fungerar när Arduinon är inkopplad till datorn istället för batteriet. Om så är fallet, testa med att byta ut batteriet.
  • Om det fortfarande inte fungerar, se referenssidan för standardservon.

Lär genom att göra

  • Om du vill att roboten tar större eller mindre steg, ändra på vinklarna i koden.
  • Om du vill att roboten kryper snabbare eller långsammare, ändra på delay()-tiden.
  • Testa hur många olika sätt du kan få roboten att krypa på, och vilket som är mest effektivt.

Ljusjagaren

Denna lilla farkost är ute på ett omöjligt och alltid pågående uppdrag att fånga ljuset. Genom att rikta en ficklampa, exempelvis den som finns på din mobiltelefon, mot farkosten kan du få den att följa dig. Den följer nämligen alltid ljuset.

Material

  • 1 Arduino Uno
  • 1 Education-sköld
  • 2  LDR:er
  • 2 servon med kontinuerlig rotation
  • 2 1k ohms resistorer
  • 1 100 µF kondensator
  • 2 svarta labbkablar
  • 6 färgade labbkablar
  • 8 AA batterier
  • 1 AA-batterihållare
  • 1 strömkontakt
  • Ljusjagare-kit
  • 1 pingisboll

Instruktioner

  1. Fäst skölden på Arduinons ovansida.
  2. Koppla en 1k ohms resistor över kopplingsdäckets mittengap. Koppla ett ben till analoga pin A0 och det andra till GND.
  3. Koppla en LDR mellan AO och 5V. Placera den på  Ljusjagarens vänstra sida.
  4. Koppla en 1k ohms resistor över kopplingsdäckets mittengap. Koppla ett ben till A2 och det andra till GND. 
  5. Koppla en LDR mellan A2 och 5V. Placera den på Ljusjagarens högra sida.
  6. Koppla 100 µF kondensatorn mellan GND och 5V. Koppla det korta benet till GND och det långa till 5V.
  7. Koppla konstruktionen till datorn och ladda upp exemplet LightChaser.
  8. Montera Ljusjagaren.
  9. Koppla den vänstra servon till D10.
  10. Koppla den högra servon till D9.
  11. Placera elektroniken i Ljusjagaren. Gör så att båda LDR:erna pekar utåt från fordonet.
  12. Lägg batterierna i batterihållaren och koppla den till Arduinons strömkontakt.

Kod

Du hittar koden i File>Examples>EducationShield>Block4-Robots>Projects>LightChaser

Så fungerar det

  • EducationShield- och Servo-biblioteken inkluderas.
  • Wheels- och LDR-objekten deklareras, wheelssensorLeft och sensorRight.
  • setup() konfigureras och initialiseras sensorerna och servon.
  • I loop() kollar en if-sats om sensorLeft.getState() är sant. Det betyder i så fall att vänstra sensorn registrerar starkt ljus och wheels kontrolleras då att svänga vänster.
  • Om sensorRight.getState() istället är sant kontrolleras wheels att röra sig till höger.
  • Om ingen av sensorerna upptäcker starkt ljus kontrolleras wheels att röra sig framåt.
  • loop() fortsätter att upprepas.

Problemlösning

  • Hänvisa till illustrationen och dubbelkolla dina kopplingar. Var noga med att skölden och labbkablarna kopplats ordentligt.
  • Om Ljusjagaren inte rör sig mot ljuset, se referenssidan för LDR.
  • Om motorerna inte fungerar eller Ljusjagaren inte går rakt, se referenssidan för hjul.

Lär genom att göra

  • Modifiera koden så att Ljusjägaren enbart rör sig när den träffas av ljuset.
  • Förvandla Ljusjagaren till en vampyrfarkost så att den istället flyr ifrån ljuset.

Den Kittliga roboten

Det här är en helt vanlig kittlig robot i gungstol. Eller förresten, det finns nog inget vanligt med det egentligen. När du kittla roboten på hjärtat börjar den vifta med armar och ben.

Öppen Låda

Öppen Låda är en låda programmerad med öppen källkod, och som innehåller öppen hårdvara. Och just det, den öppnas när du knackar på den.

Linjeföljaren

Linjeföljaren gör precis det som namnet antyder, den följer en linje. Få den att gå dit du vill, genom att visa vägen med en 3 cm bred, svart linje.