<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Prototyyppi a'la Arduino</title>
  <updated>2019-11-11T21:44:11+02:00</updated>
  <generator uri="http://rohea.com" version="0.1">Blog Integration Feed Generator</generator>
  <link rel="alternate" type="text/html" href="https://prototyypin.vuodatus.net/"/>
  <link rel="self" type="application/atom+xml" href="https://prototyypin.vuodatus.net/feeds/atom"/>
  <id>https://prototyypin.vuodatus.net/</id>
  <author>
    <name>prototyypin</name>
    <uri>https://prototyypin.vuodatus.net/</uri>
  </author>
  <entry>
    <title type="html"><![CDATA[Mikko 3000 V0.5!!!]]></title>
    <summary type="html"><![CDATA[<p>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<span style="line-height:20.7999992370605px;"> Mikko ilmaisee erivärisin ledein missä vaiheessa prosessia ollaan menossa.</span></p><p>Varsinaisen arduinoprotonhan olimme jo rakentaneet aikaisemmin, mutta tässä vielä kuva muistinvirkistykseksi:</p><p><img alt="mikko0_2.jpg" src="http://vuodatus.net/media/cache/normal/blog_content_image/normal/54ecd98bb596dc600100000f/mikko0_2.jpg" /></p><p><br /></p><p>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:</p><p><img alt="P3160791.jpg" src="http://vuodatus.net/media/cache/normal/blog_content_image/normal/55085a4ab596dcf92d000003/P3160791.jpg" /></p><p><br /></p><p>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:</p><p><img alt="P3160790.jpg" src="http://vuodatus.net/media/cache/normal/blog_content_image/normal/55085a47b596dcee2d000004/P3160790.jpg" /></p><p><br /></p><p>Kolmitiehanalla taas pystytään estämään nesteen valtoin virtaaminen. Hanaa pyörittää servomoottori:</p><p><img alt="P3160794.jpg" src="http://vuodatus.net/media/cache/normal/blog_content_image/normal/55085a4cb596dc0a2e000002/P3160794.jpg" /></p><p><br /></p><p>Näin näppärästi arduino sujahti keittimen entiseen nestesäiliöön. Kuvassa näkyy myös ledit:</p><p><img alt="P3160795.jpg" src="http://vuodatus.net/media/cache/normal/blog_content_image/normal/55085a4fb596dce32d00000f/P3160795.jpg" /></p><p><br /></p><p>Koodiammekaan ei hirveästi tarvinnut edellisistä versioista muokkailla, mutta tässäpä vielä kalibroitu vedos:</p><p><br /></p><p>// Mikkokoodi V0.5 by Ana Rummukainen &amp; Arto Hänninen</p><p>#include &lt;Servo.h&gt;<br /> <br /> Servo mikko;<br /><br />// Alustamme muuttujat<br /> int pos = 0;<br /> int switchState = 0;<br /> <br /> int ledPunainen = 3;<br /> int ledKeltainen = 4;<br /> int ledVihrea = 5;<br /> <br /> void setup() {<br /> <br />   // Laitteen alustus<br />   mikko.attach(9);<br />   pinMode(3, OUTPUT);<br />   pinMode(4, OUTPUT);<br />   pinMode(5, OUTPUT);<br />   pinMode(2, INPUT);<br /> }<br /> <br /> void loop() {<br /><br />   // Laitteen odotustila<br />   switchState = digitalRead(2);<br />   if (switchState == LOW) {<br />     digitalWrite(ledPunainen, HIGH);<br />     digitalWrite(ledKeltainen, LOW);<br />     digitalWrite(ledVihrea, LOW);<br />   }<br />   <br />   else {<br />     // Suoritustila aloittaminen<br />     digitalWrite(ledPunainen, LOW);<br />     digitalWrite(ledKeltainen, HIGH);<br />     digitalWrite(ledVihrea, LOW);<br />     for(pos = 1; pos &lt; 90; pos += 1)<br />     {<br />       mikko.write(pos);<br />       delay(15);<br />     }<br />     <br />     // Suoritus, eli juomaa valuu<br />     mikko.detach();<br />     delay(20500);<br /><br />     // Suoritus valmis, juoma valmis, muutamme ledien värejä<br />     digitalWrite(ledKeltainen, LOW);<br />     digitalWrite(ledVihrea, HIGH);<br />     <br />     // Paluu alku- eli odotustilaan<br />     mikko.attach(9);<br />     for (pos = 90; pos &gt;= 1; pos -=1)<br />     {<br />       mikko.write(pos);<br />       delay(5);<br />     }<br /><br />     while (digitalRead(2) != LOW) {<br />        delay(10);<br />     }<br />   }<br /> }</p><p><br /></p><p>Tarjotaanpa Mikko-faneille vielä nannaa videon muodossa, elikäs ensimmäisiä Mikon valuttamia viskilasillisia!</p><p><a href="https://www.youtube.com/watch?v=sEBQ7-bCC4M" rel="nofollow">https://www.youtube.com/watch?v=sEBQ7-bCC4M</a></p><p><br /></p>]]></summary>
    <published>2015-03-18T14:29:21+02:00</published>
    <updated>2019-11-11T21:43:55+02:00</updated>
    <link rel="alternate" type="text/html" href="https://prototyypin.vuodatus.net/lue/2015/03/mikkokoodi-v0-4"/>
    <id>https://prototyypin.vuodatus.net/lue/2015/03/mikkokoodi-v0-4</id>
    <author>
      <name>prototyypin</name>
      <uri>https://prototyypin.vuodatus.net/</uri>
    </author>
  </entry>
  <entry>
    <title type="html"><![CDATA[Viikko 9 - Servotehtävä]]></title>
    <summary type="html"><![CDATA[<p>Tunnin tehtävänä oli pelehtiä servojen kanssa. Teimme tehtävänannon ilman Servo.h-kirjastoa. Saimme servon suorittamaan halutun liikkeen, eli kääntymään 45 astetta ja sitten pysähtymään, jälleen kerran internetin avustuksella. Tähän asti olimme nimittäin käyttäneet servoa vain valmiin kirjaston avulla. Onneksemme vastaus tehtävään löytyi lopulta osoitteesta <a href="http://www.linuxcircle.com/2013/07/04/servo-manual-control-without-arduino-servo-library-on-raspberry-pi-and-gertboard/" rel="nofollow">http://www.linuxcircle.com/2013/07/04/servo-manual-control-without-arduino-servo-library-on-raspberry-pi-and-gertboard/</a>. </p>

<p>Ohessa koodimme harjoitukseen:</p>

<p>#define SERVO_PIN 2</p>

<p>int lenMicroSecondOfPeriod = 25 * 1000;<br />
int lenMicroSecondOfPulse = 1000;<br />
int first = 0.7 * 1000;<br />
int end = 3.7 * 1000;<br />
int increment = 0.01 * 1000;<br />
boolean runOnce = false;<br /><br />
void setup()<br />
{<br />
  pinMode(SERVO_PIN, OUTPUT);<br />
}</p>

<p>void loop()<br />
{<br />
  int current = 0;<br />
  if (!runOnce) {<br />
    for (current = first; current &lt; end; current+=increment) {<br />
      digitalWrite(SERVO_PIN, HIGH);<br />
      delayMicroseconds(current);<br />
      digitalWrite(SERVO_PIN, LOW);<br />
      delayMicroseconds(lenMicroSecondOfPeriod - current);<br />
    }<br />
  }<br />
  runOnce = true;<br />
}</p>

<p>Eipä tähän juuri lisättävää :) Terveisin Artsi ja Ana</p>

<p>PS: Tässä vielä videoita urotyöstämme: <a href="http://youtu.be/0KMpP2vLd3Y" style="margin:0px;padding:0px;border:0px;color:rgb(22,122,198);text-decoration:none;font-family:arial, sans-serif;line-height:17.3333339691162px;" target="_blank" rel="nofollow">http://youtu.be/0KMpP2vLd3Y</a></p>]]></summary>
    <published>2015-03-04T11:20:00+02:00</published>
    <updated>2019-11-11T21:43:58+02:00</updated>
    <link rel="alternate" type="text/html" href="https://prototyypin.vuodatus.net/lue/2015/03/viikko-9-servotehtava"/>
    <id>https://prototyypin.vuodatus.net/lue/2015/03/viikko-9-servotehtava</id>
    <author>
      <name>prototyypin</name>
      <uri>https://prototyypin.vuodatus.net/</uri>
    </author>
  </entry>
  <entry>
    <title type="html"><![CDATA[Input- ja output-tehtäviä sekä projektipäivitys]]></title>
    <summary type="html"><![CDATA[<p>Saimme valita seitsemästä tehtävästä mielekkäimmän. Tehtävät 1 ja 2 vaikuttivat hyviltä, sillä ne liittyivät vahvasti omaan prototyyppiprojektiimme, joten teimme molemmat. Tehtävässä 1 täytyi rakentaa jatkuvasti pyörivä servo ja tehtävässä 2 painokytkimellä toimiva ledi. Päätimme yhdistää nämä yhdeksi laitteeksi. Mallia katsoimme "Arduino Projects Book" -kirjan luvuista 2 sekä 12. Ledejä laitteeseen tulikin loppujen lopuksi 3, ja servokin toimii hieman erilailla kuin tehtävänannossa sanottiin, sillä tämä kaikki edisti oman protomme suunnittelua. Kasattu laite näytti seuraavalta:</p>

<p><img alt="mikko0_2.jpg" src="http://vuodatus.net/media/cache/normal/blog_content_image/normal/54ecd98bb596dc600100000f/mikko0_2.jpg" /></p>

<p> </p>

<p>Tämän jälkeen ryhdyimme työstämään koodia. Omaa projektiamme silmällä pitäen halusimme, että punainen ledi palaa kun painokytkin ei ole painettuna. Kun nappia painetaan, sammuu punainen ledi ja keltainen ledi syttyy. Servo aloittaa toimintansa ja kääntyy 179 astetta. Tämän jälkeen keltainen ledi sammuu ja vihreä ledi syttyy ilmaisten toiminnan olevan valmis. Servo kääntyy takaisin alkuperäiseen asentoonsa. Vihreä ledi sammuu ja punainen syttyy. Alla koodi:</p>

<p> #include &lt;Servo.h&gt;<br />
 <br />
 Servo mikko;<br />
 <br />
 int pos = 0;<br />
 int switchState = 0;<br />
 <br />
 void setup() { <br />
 <br />
   mikko.attach(9);<br />
   pinMode(3, OUTPUT);<br />
   pinMode(4, OUTPUT);<br />
   pinMode(5, OUTPUT);<br />
   pinMode(2, INPUT);<br />
 }<br />
 <br />
 void loop() {<br />
   switchState = digitalRead(2);<br />
   if (switchState == LOW) {<br />
     digitalWrite(3, HIGH);<br />
     digitalWrite(4, LOW);<br />
     digitalWrite(5, LOW);<br />
   }<br />
   <br />
   else {<br />
     digitalWrite(3, LOW);<br />
     digitalWrite(4, HIGH);<br />
     digitalWrite(5, LOW);<br />
     for(pos = 0; pos &lt; 179; pos += 1)<br />
     {<br />
       mikko.write(pos);<br />
       delay(15);<br />
     }<br />
     <br />
     mikko.detach();<br />
     delay(2000);<br />
     digitalWrite(4, LOW);<br />
     digitalWrite(5, HIGH);<br />
     <br />
     mikko.attach(9);<br />
     for (pos = 179; pos &gt;= 1; pos -=1)<br />
     {<br />
       mikko.write(pos);<br />
       delay(5);<br />
     }<br />
     delay(5000);<br />
   }<br />
 }</p>

<p> </p>

<p>Tästä on hyvä jatkaa viskirobottiamme silmällä pitäen. Olemme myös hieman tutkineet vaihtoehtoja astialle jossa viski säilötään, sekä vertailleet kahta eri paksuista silikoniletkua viskin kaatoa varten. Tällä hetkellä 3mm ja 6mm letkuista paksumpi vaikuttaa paremmalta. Tässä vielä videota alkukantaisesta viskimikostamme: </p>

<p>https://www.youtube.com/watch?v=UMYgdGcOFQk&amp;feature=youtu.be</p>]]></summary>
    <published>2015-02-25T07:46:00+02:00</published>
    <updated>2019-11-11T21:44:01+02:00</updated>
    <link rel="alternate" type="text/html" href="https://prototyypin.vuodatus.net/lue/2015/02/input-ja-output-tehtavia-seka-projektipaivitys"/>
    <id>https://prototyypin.vuodatus.net/lue/2015/02/input-ja-output-tehtavia-seka-projektipaivitys</id>
    <author>
      <name>prototyypin</name>
      <uri>https://prototyypin.vuodatus.net/</uri>
    </author>
  </entry>
  <entry>
    <title type="html"><![CDATA[Prototyyppi-idea]]></title>
    <summary type="html"><![CDATA[<p>Hei Jukka!</p>

<p> </p>

<p>Prototyyppi-ideamme on seuraava:</p>

<p>Aiomme rakentaa baarimikkoautomaatin. Mikko 3000. Tarkemmin sanottuna, viskilasi isketään automaattiin. Lasin paino painaa painokytkimen alas. Tämä aktivoi automaatin, joka servomoottorin avustuksella kaataa tähän lasiin silikoniletkun kautta neljä senttilitraa viskiä. Viinankaadon aikana lasin alla palavat punaiset ledit, ja kun riittävä määrä nautintoainetta on lasissa, syttyvät iloiset vihreät valot.</p>

<p>Isoin ongelma tässä on saada juuri oikea määrä elämän vettä lasiin. Leikittelimme ajatusta erilaisilla sensoreilla, esim. infrapunasensori, joka mittaa nesteen pinnan korkeuden. Päätimme kuitenkin ratkaista tämän probleeman seuraavalla tavalla: Säiliö, jossa haluttu tuote on, asetetaan lähes vaakasuoraan. Silikoniletku liitetään säiliön alimpaan pisteeseen. Off-tilassa letkun toisen pään korkein kohta on nesteen pinnan yläpuolella. Tällöin nesteen ei pitäisi valua valtoimenaan, kun sitä ei haluta. Kun painosensori painuu viskilasin painosta pohjaan, järjestelmä käynnistyy. Servomoottori kääntää letkun lasia kohden. Kun tietty aika on kulunut, servo kääntää letkun takaisin yläilmoihin. Näin saadaan melko tarkasti mitattua tämä neljä senttiä nestettä lasiin.</p>

<p>Lisälaitteita haluamme myös asentaa. Aluksi ainakin eriväriset ledit, jotka ilmaisevat missä vaiheessa prosessia ollaan. Tämän lisäksi voidaan lisätä ääntä tai visuaalisuutta, esimerkiksi LCD-näytöllä, mallia "Juomanne on nyt valmis, sir!".</p>

<p> </p>

<p>#viski</p>

<p>terveisin Artsi ja Ana.</p>]]></summary>
    <published>2015-02-04T15:55:00+02:00</published>
    <updated>2019-11-11T21:44:04+02:00</updated>
    <link rel="alternate" type="text/html" href="https://prototyypin.vuodatus.net/lue/2015/02/prototyyppi-idea"/>
    <id>https://prototyypin.vuodatus.net/lue/2015/02/prototyyppi-idea</id>
    <author>
      <name>prototyypin</name>
      <uri>https://prototyypin.vuodatus.net/</uri>
    </author>
  </entry>
  <entry>
    <title type="html"><![CDATA[Ultraäänisensori]]></title>
    <summary type="html"><![CDATA[<p>Tehtävänanto:</p>

<p> </p>

<p style="margin-left:65.2pt;"><em>”Tehtävä 2: Kokeile ultraäänisensoria ja valoisuussensoria. Tee if-lauseilla koodia, jos osaat, joilla pyydystät todennäköisiä virhearvoja. Ota tapaukseksi vaikka todeta heiluuko käsi sensorin edessä Dokumentoi kytkentäsi huolella, joko käyttäen Fritzing ohjelmaa (mieluiten) tai sitten piirtämällä. Opettaja haluaisi todeta, ketkä oppivat piirtämään ko. työkalulla. Tee vaaditut kytkennät ultra-äänisensorille.”</em></p>

<p style="margin-left:65.2pt;"> </p>

<p style="margin-left:65.2pt;"> </p>

<p style="margin-left:65.2pt;">                      Lähdimme liikkeelle luonnollisesti itse laitteen kasaamisella. Internetistä löytyi hyvin ohjeita siihen kuinka kasata tämä yksinkertainen laite, ja pian vehje olikin jo valmiina.</p>

<p style="margin-left:65.2pt;"><img alt="DSC_0004.jpg" src="http://vuodatus.net/media/cache/normal/blog_content_image/normal/54d1c568b596dc2a58000004/DSC_0004.jpg" style="float:right;" /></p>

<p style="margin-left:65.2pt;">                      Tämän jälkeen täytyi luonnollisesti kirjoittaa ohjelma ja ladata se laitteelle. Turvauduimme jälleen internetin apuun, sillä tietotaitomme Arduinolle koodamisessa on melko rajallista. Hyvät ohjeet löytyivät jälleen helposti, tällä kertaa osoitteesta <a href="http://www.tautvidas.com/blog/2012/08/distance-sensing-with-ultrasonic-sensor-and-arduino/" rel="nofollow">http://www.tautvidas.com/blog/2012/08/distance-sensing-with-ultrasonic-sensor-and-arduino/</a>.</p>

<p style="margin-left:65.2pt;"> </p>

<p style="margin-left:65.2pt;">                      Jätettyämme koodista pois tuumamitat, lisättyämme maksimi- ja minimietäisyydet sekä yhden if-lauseen ohjelma näytti seuraavalta:</p>

<p style="margin-left:65.2pt;"> </p>

<p>int maximumRange = 200;<br /><span style="line-height:1.6em;">int minimumRange = 0;</span></p>

<p><span style="line-height:1.6em;">const int trigPin = 2;</span><br /><span style="line-height:1.6em;">const int echoPin = 4;</span></p>

<p><span style="line-height:1.6em;">void setup() {<br />
  </span><span style="line-height:1.6em;">Serial.begin(9600);</span><br /><span style="line-height:1.6em;">}</span></p>

<p><span style="line-height:1.6em;">void loop()</span></p>

<p><span style="line-height:1.6em;">{<br />
  </span><span style="line-height:1.6em;">long duration, cm;<br />
  </span><span style="line-height:1.6em;">pinMode(trigPin, OUTPUT);</span><br /><span style="line-height:1.6em;">  digitalWrite(trigPin, LOW);</span><br /><span style="line-height:1.6em;">  delayMicroseconds(2);</span><br /><span style="line-height:1.6em;">  digitalWrite(trigPin, HIGH);</span><br /><span style="line-height:1.6em;">  delayMicroseconds(10);</span><br /><span style="line-height:1.6em;">  digitalWrite(trigPin, LOW);</span></p>

<p><span style="line-height:1.6em;">  pinMode(echoPin, INPUT);<br />
  </span><span style="line-height:1.6em;">duration = pulseIn(echoPin, HIGH);</span></p>

<p><span style="line-height:1.6em;">  cm = microsecondsToCentimeters(duration);</span><br /><span style="line-height:1.6em;">  if (distance &gt;= maximumRange || distance &lt;= minimumRange) {</span><br /><span style="line-height:1.6em;">    Serial.println("VIRHE!");</span><br /><span style="line-height:1.6em;">  }</span><br /><span style="line-height:1.6em;"> else {</span></p>

<p>  Serial.print(cm);<br /><span style="line-height:1.6em;">  Serial.print("cm");</span><br /><span style="line-height:1.6em;">  Serial.println();</span></p>

<p><span style="line-height:1.6em;">  delay(1000);</span><br /><span style="line-height:1.6em;">}</span></p>

<p><span style="line-height:1.6em;">long microsecondsToCentimeters(long microseconds)</span></p>

<p>{<br /><span style="line-height:1.6em;">  return microseconds / 29 / 2;</span><br /><span style="line-height:1.6em;">}</span></p>

<p style="margin-left:65.2pt;"> </p>

<p style="margin-left:65.2pt;"> </p>

<p style="margin-left:65.2pt;">                      Ohjelma siis käskee ultraäänisensoria lähettämään 10 mikrosekunnin ajan signaalia ja mittaamaan kauanko signaalilla kestää palata takaisin. Ohjelma myös muuttaa mikrosekunnit senttimetreiksi ja tulostaa ne ”serial monitoriin” sekunnin välein. Jos taas kohde on liian kaukana tai liian lähellä (määritellään heti ohjelman alussa maximumRange ja minimumRange) tulostaa ohjelma virheilmoituksen.</p>

<p style="margin-left:65.2pt;"> </p>

<p style="margin-left:65.2pt;">                      Ohjelma ja laitteisto toimivat hyvin. Sensori reagoi etäisyyden muutoksiin melko rankoilla poikkeamilla, mutta tasaantui nopeasti. Signaalien tai niiden välien pituudella ei tuntunut olevan suurta merkitystä mittaustuloksen kannalta. Alla vielä kuva kytkennöistä:</p>

<p style="margin-left:65.2pt;"><img alt="Shotti1.jpg" src="http://vuodatus.net/media/cache/normal/blog_content_image/normal/54d1c56ab596dcf957000011/Shotti1.jpg" /></p>]]></summary>
    <published>2015-02-04T09:05:00+02:00</published>
    <updated>2019-11-11T21:44:07+02:00</updated>
    <link rel="alternate" type="text/html" href="https://prototyypin.vuodatus.net/lue/2015/02/ultraaanisensori"/>
    <id>https://prototyypin.vuodatus.net/lue/2015/02/ultraaanisensori</id>
    <author>
      <name>prototyypin</name>
      <uri>https://prototyypin.vuodatus.net/</uri>
    </author>
  </entry>
  <entry>
    <title type="html"><![CDATA[Ensimmäinen tehtävä]]></title>
    <summary type="html"><![CDATA[<p> </p>

<p>Tehtävänanto:</p>

<p> </p>

<p style="color:rgb(0,0,0);line-height:normal;"><em>"Tee Arduinolle ohjelma, joka lähettää ledillä 13 morse-<br />
signaalia eli kolme pitkää ja kolme lyhyttä toistuvasti.<br />
Vinkki: käytä delay-komentoa viiveen aikaansaamiseksi.</em></p>

<p style="color:rgb(0,0,0);line-height:normal;"><em>Kirjoita ja julkaise joko avoimessa internetissä tai<br />
Moodlen keskustelupalstalla dokumentaatio kyseiseen<br />
ohjelmaan. Oleellista on IDE:n (Integrated Development<br />
Environment) käyttöönotto ja ohjelmakoodi."</em></p>

<p> </p>

<p> </p>

<p>Toteutus:</p>

<p> </p>

<p style="margin-left:65.2pt;">                      Tehtävä oli aika simppeli: Arduinoon ei tarvinnut kytkeä erikseen mitään aktuaattoreita, sillä ohjelmassa tuli käyttää vain pinniin 13 integroitua LEDiä. IDE:n olimme jo valmiiksi ladanneet verkosta osoitteesta <a href="http://www.arduino.cc/" rel="nofollow">www.arduino.cc</a>. Käyttöönotto oli helppoa; asennuksen jälkeen Windows 7 tunnisti Arduinon USB-portista automaattisesti. Tämän jälkeen tarvitsi vain käynnistää IDE ja valita sieltä portti johon Arduino oli kytketty. Joten kytkettyämme Arduinon USB:llä tietokoneeseen kiinni, tarvitsi vain ottaa kirjoittaa ohjelma ja ladata se laitteeseen.</p>

<p style="margin-left:65.2pt;">                       Ubuntun kanssa oli lähestyminen hieman kulmikkaampi. IDE oli toki helppo ladata ja asentaa. Hetken keksi oivaltaa että että IDE pitää käynnistää root-tunnuksilla, jotta se pääsi keskustelemaan COM-porttien kanssa. Tämänkin jälkeen se herjasi epämääräisesti vaikka portti oli oikea. Se kuitenkin latasi ohjelman Arduinolle ja valot vilkahtelivat iloisesti ja liki sokaisevasti.</p>

<p style="margin-left:65.2pt;"><span style="line-height:1.6em;">                      Valitsimme pitkän signaalin pituudeksi 1000 millisekuntia ja lyhyen signaalin pituudeksi 500 millisekuntia. Aikaa signaalien välille tuli 250 millisekuntia. Koodin kirjoitimme esimerkkiä ’Blink’ apuna käyttäen. Lopputulos näytti seuraavalta:</span></p>

<p style="margin-left:65.2pt;"> </p>

<p> </p>

<p>void setup() {<br />
  <span style="line-height:1.6em;">pinMode(13, OUTPUT);</span><br /><span style="line-height:1.6em;">}</span></p>

<p><span style="line-height:1.6em;">// Pitkät merkit</span></p>

<p><span style="line-height:1.6em;">void loop() {</span></p>

<p>  digitalWrite(13, HIGH);<br /><span style="line-height:1.6em;">  delay(1000);</span><br /><span style="line-height:1.6em;">  digitalWrite(13, LOW);</span><br /><span style="line-height:1.6em;">  delay(250);</span><br /><span style="line-height:1.6em;">  digitalWrite(13, HIGH);</span><br /><span style="line-height:1.6em;">  delay(1000);</span><br /><span style="line-height:1.6em;">  digitalWrite(13, LOW);</span><br /><span style="line-height:1.6em;">  delay(250);</span><br /><span style="line-height:1.6em;">  digitalWrite(13, HIGH);</span><br /><span style="line-height:1.6em;">  delay(1000);</span><br /><span style="line-height:1.6em;">  digitalWrite(13, LOW);</span><br /><span style="line-height:1.6em;">  delay(250);</span></p>

<p><span style="line-height:1.6em;">//Lyhyet merkit</span></p>

<p><span style="line-height:1.6em;">  digitalWrite(13, HIGH);<br />
  </span><span style="line-height:1.6em;">delay(500);</span><br /><span style="line-height:1.6em;">  digitalWrite(13, LOW);</span><br /><span style="line-height:1.6em;">  delay(250);</span><br /><span style="line-height:1.6em;">  digitalWrite(13, HIGH);</span><br /><span style="line-height:1.6em;">  delay(500);</span><br /><span style="line-height:1.6em;">  digitalWrite(13, LOW);</span><br /><span style="line-height:1.6em;">  delay(250);</span><br /><span style="line-height:1.6em;">  digitalWrite(13, HIGH);</span><br /><span style="line-height:1.6em;">  delay(500);</span><br /><span style="line-height:1.6em;">  digitalWrite(13, LOW);</span><br /><span style="line-height:1.6em;">  delay(250);</span></p>

<p><span style="line-height:1.6em;">}</span></p>

<p style="margin-left:74.7pt;">                   Ladattuamme ohjelman Arduinolle, se alkoi iloisesti vilkuttaa LEDiään annetussa tahdissa. Tehtävä suoritettu.</p>

<p style="margin-left:74.7pt;"><img alt="tehtava1kuva1pieni.jpg" src="http://vuodatus.net/media/cache/normal/blog_content_image/normal/54c7aae2b596dc6e43000003/tehtava1kuva1pieni.jpg" /></p>

<p>Arduinostit Arto &amp; Ana</p>]]></summary>
    <published>2015-01-27T23:58:00+02:00</published>
    <updated>2019-11-11T21:44:10+02:00</updated>
    <link rel="alternate" type="text/html" href="https://prototyypin.vuodatus.net/lue/2015/01/ensimmainen-tehtava"/>
    <id>https://prototyypin.vuodatus.net/lue/2015/01/ensimmainen-tehtava</id>
    <author>
      <name>prototyypin</name>
      <uri>https://prototyypin.vuodatus.net/</uri>
    </author>
  </entry>
</feed>
