Prototyyppimme on vihdoinki koottu, sekä onnistuneet testiajot suoritettu! Kertauksena vielä: Mikko 3000 on arduinolla kahvinkeittimen koteloon rakennettu robotti, jonka tehtävä on kaataa isäntänsä viskilasiin 4cl viskiä. Tämän tehtävän Mikko suorittaa hanaan kiinnitetyllä servomoottorilla. Lisäksi Mikko ilmaisee erivärisin ledein missä vaiheessa prosessia ollaan menossa.

Varsinaisen arduinoprotonhan olimme jo rakentaneet aikaisemmin, mutta tässä vielä kuva muistinvirkistykseksi:

mikko0_2.jpg


Seuraavaksi tämä kaunokainen tarvitsi tarpeeksi jykevän kotelon johon varsinaisen viskiastian saisi kiinnitettyä, sekä jonkin tavan annostella viskin virtausta. Päädyimme rakentamaan prototyyppimme kahvinkeittimen koteloon. Tyhjennettyämme kahvinkeittimen turhasta elektroniikasta, lähdimme rakentamaan laitetta alhaalta ylöspäin. Ensimmäisenä tarvitsimme painonapille paikan, johon viskilasin saisi asetettua. Tällaisen taitelimme näppärästi Finnfoamista:

P3160791.jpg


Toiseksi tarvitsimme tavan siirtää viski astiasta lasiin sekä säädellä viskin virtausta. Tähän tarkoitukseen sopii erinomaisesti sairaalasarjoista tutut nesteensiirtolaite sekä kolmitiehana. Nesteensiirtolaite toimii hanan ja säilytysastian välillä nimensä mukaisesti nesteen siirtämisessä. Huomattavana etuna pelkkään letkunpätkään nähden nesteensiirtolaite päästää säilytysastiaan ilmaa poistetun nesteen tilalle:

P3160790.jpg


Kolmitiehanalla taas pystytään estämään nesteen valtoin virtaaminen. Hanaa pyörittää servomoottori:

P3160794.jpg


Näin näppärästi arduino sujahti keittimen entiseen nestesäiliöön. Kuvassa näkyy myös ledit:

P3160795.jpg


Koodiammekaan ei hirveästi tarvinnut edellisistä versioista muokkailla, mutta tässäpä vielä kalibroitu vedos:


// Mikkokoodi V0.5 by Ana Rummukainen & Arto Hänninen

#include <Servo.h>
 
 Servo mikko;

// Alustamme muuttujat
 int pos = 0;
 int switchState = 0;
 
 int ledPunainen = 3;
 int ledKeltainen = 4;
 int ledVihrea = 5;
 
 void setup() {
 
   // Laitteen alustus
   mikko.attach(9);
   pinMode(3, OUTPUT);
   pinMode(4, OUTPUT);
   pinMode(5, OUTPUT);
   pinMode(2, INPUT);
 }
 
 void loop() {

   // Laitteen odotustila
   switchState = digitalRead(2);
   if (switchState == LOW) {
     digitalWrite(ledPunainen, HIGH);
     digitalWrite(ledKeltainen, LOW);
     digitalWrite(ledVihrea, LOW);
   }
   
   else {
     // Suoritustila aloittaminen
     digitalWrite(ledPunainen, LOW);
     digitalWrite(ledKeltainen, HIGH);
     digitalWrite(ledVihrea, LOW);
     for(pos = 1; pos < 90; pos += 1)
     {
       mikko.write(pos);
       delay(15);
     }
     
     // Suoritus, eli juomaa valuu
     mikko.detach();
     delay(20500);

     // Suoritus valmis, juoma valmis, muutamme ledien värejä
     digitalWrite(ledKeltainen, LOW);
     digitalWrite(ledVihrea, HIGH);
     
     // Paluu alku- eli odotustilaan
     mikko.attach(9);
     for (pos = 90; pos >= 1; pos -=1)
     {
       mikko.write(pos);
       delay(5);
     }

     while (digitalRead(2) != LOW) {
        delay(10);
     }
   }
 }


Tarjotaanpa Mikko-faneille vielä nannaa videon muodossa, elikäs ensimmäisiä Mikon valuttamia viskilasillisia!

https://www.youtube.com/watch?v=sEBQ7-bCC4M