<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Uncategorized &#8211; TalTech Embedded AI Research Lab</title>
	<atom:link href="https://iot.ttu.ee/et/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>https://iot.ttu.ee/et</link>
	<description>TalTech Embedded AI Research Lab</description>
	<lastBuildDate>Thu, 03 Jan 2019 08:42:13 +0000</lastBuildDate>
	<language>et</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://iot.ttu.ee/wp-content/uploads/2018/10/cropped-TalTech_Gradient-32x32.png</url>
	<title>Uncategorized &#8211; TalTech Embedded AI Research Lab</title>
	<link>https://iot.ttu.ee/et</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Nutimaja ehitamine: tarkvara</title>
		<link>https://iot.ttu.ee/et/nutimaja-ehitamine-tarkvara/</link>
		
		<dc:creator><![CDATA[kikas]]></dc:creator>
		<pubDate>Thu, 03 Jan 2019 08:41:47 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://iot.ttu.ee/et/?p=444</guid>

					<description><![CDATA[Järgnev blogipostitus on jätk nutimaja ehitamise sarjale. Kui aga eelnev peatükk riistvara ehitamise teemal jäi mingil põhjusel vahele, siis saab seda lugeda [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Järgnev blogipostitus on jätk nutimaja ehitamise sarjale. Kui aga eelnev peatükk riistvara ehitamise teemal jäi mingil põhjusel vahele, siis saab seda lugeda <a href="https://iot.ttu.ee/et/opetus-riistvara/">siin</a>.</p>
<p><strong>Sisukord</strong></p>
<ol>
<li>Programmeerimiskeskkonna ülesseadmine</li>
<li>Esimesed sammud universaalportidega</li>
<li>Liikumise peale valgusti juhtimine</li>
<li>Valgusti juhtimine mõnest teisest seadmest (nt nutitelefonist)</li>
<li>Kuhu edasi?</li>
</ol>
<p><strong>Töövahendid</strong></p>
<ol>
<li>Raspberry Pi 3B+*</li>
<li>SD mälukaart</li>
<li>HDMI kaabel</li>
<li>Hiir</li>
<li>Klaviatuur</li>
<li>Monitor HDMI toega</li>
<li>Kohtvõrk</li>
<li>Etherneti kaabel (valikuline)</li>
</ol>
<p>* Tegelikult sobib ükskõik milline versioon. Konkreetse ettevõtmise jaoks võivad erinevuseks olla GPIO viikude asukohad ja numbrid, mistõttu tuleks ühendamisel üle kontrollida vastavad tähistused paigutusplaanist (<em>pin layout</em>).</p>
<p><strong>Eeltöö</strong></p>
<p>Selleks, et alustada Raspberry Pi peal programmeerimisega, tuleb üles seada vastav keskkond. Kuna aga Raspberry Pi sarnaneb oma omadustelt pigem miniarvutiga, siis alustame lisakomponentide (monitor, klaviatuur, hiir) ühendamisega ning operatsioonisüsteemi paigaldamisega. Kõige lihtsam on seda teha tootja poolse <em>step by step</em> juhendi järgi, mille leiab <a href="https://projects.raspberrypi.org/en/projects/raspberry-pi-getting-started">siin</a>.</p>
<p>Et olla kindlalt veendunud, et kõik vajalikud tööriistad meie projekti jaoks oleksid olemas, siis soovitame käsureale (mille saab avada klõpsates <em>Menu</em>-><em>Accessories</em>-><em>Terminal </em>või üle <a href="https://www.raspberrypi.org/documentation/remote-access/ssh/">SSH</a>) anda järgmise ülesande:</p>
<p><code>sudo apt-get -y install python python-dev python-rpi.gpio</code></p>
<p><strong>Esimesed sammud universaalportidega (GPIO)</strong></p>
<p>Meie esimeseks ülesandeks on luua programm, mis vilgutaks eelmises blogipostituses paigaldatud leedi sisse-välja. Lisaks meie kirjutatud koodijuppidele, saab Python kohta rohkem uudistada <a href="https://www.w3schools.com/python/">W3Schools tasuta õppekeskkonnas</a>.</p>
<p>Igasugune programmeerimistöö algab alati faili tekitamisega, mille saab luua käsurealt järgmiselt:</p>
<p><code>nano led_vilgutus.py</code></p>
<p>Seejärel kopeerime aknasse järgneva sisu:</p>
<pre><code class="python"># coding=utf-8 # ütleme programmile, kuidas on tekst esitletud

# "#" tähemärk viitab kommentaari algusele, mis omakorda tähendab, sellele järgnev tekst kuni
# uue rea alguseni ei ole mõeldud nö arvutile täitmiseks, vaid lisatakse programmeerijate koodilugemise
# ja -kirjutamise lihtsustamiseks. Kusjuures sellele tehakse erand, kui esimese kahel real
# on defineeritud mõni teksitvormigu (i.k. encoding) reegel nagu on seda tehtud ka meie näites.

import RPi.GPIO as GPIO     # ütleme programmile, et soovime universaalportide käske kasutada
import time                 # ütleme programmile, et soovime ajaga seotud funktsioone kasutada

LED = 16                    # loome muutuja LED, mille väärtus on 16, edaspidi programm teab,
                            # et sõna "LED" tähendab arvu 16

GPIO.setmode(GPIO.BCM)      # soovime kasutada universaalporte numbrite järgi
GPIO.setup(LED, GPIO.OUT)   # soovime 16 GPIO viiku kasutada väljundina

while True:                 # tahame tsüklit, et programm kestaks pidevalt
GPIO.output(LED, GPIO.HIGH) # anname pinge 16ndale (ehk LED) viigule
print("Led ON")             # kirjutame vastave teksti terminali vaatamiseks
time.sleep(1)               # puhkame 1 sekundi, programm puhkamise ajal midagi ei tee
GPIO.output(LED, GPIO.LOW)  # võtame pinge ära 16ndalt viigult
print("Led OFF")
time.sleep(1)

</code></pre>
<p>Tekstiredaktorist väljumiseks tuleb kasutada klahvikombinatsiooni Cntr+X ning kui programm avaldab soovi salvestamise järele (&#8220;<em>Save modified buffer?</em>&#8220;), siis vajutage klahve &#8220;Y&#8221; ja Enter.</p>
<p>Programmi käivitamiseks tuleb anda käsklus:</p>
<p><code>python led_vilgutus.py</code></p>
<p>Sulgemiseks tuleb vajutada kombinatsiooni Cntr+C.</p>
<p><strong>NB!</strong> Kui peaks juhtuma, et mingil põhjusel leed ei vilgu, siis esimesena kontrollige üle universaalpordi number. Seda, kas programm reaalselt pinget väljastab, saab valideerida multimeetri alalispinge mõõtmise režiimis, ühendades selle klemmid leedi &#8220;jalgade&#8221; külge.</p>
<p><strong>Liikumise peale valgusti juhtimine</strong></p>
<p>Siinkohal võtame korra hoo maha ja mõtleme paremaks arusaamiseks läbi, milline peaks olema programmi loogiline töökäik:</p>
<ul>
<li>Kindlasti peaksime alati programmile sarnaselt eelnenud ülesandele, milliseid (viigu number) ja kuidas (kas lugeda või tekitada pinget) me universaalportide viike kasutada tahame</li>
<li>Kuna PIR andur tekitab oma keskmise väljundviigu peale liikumise korral pinge, siis peaksime sealt tulevat võimalikku signaali pidevalt lugema</li>
<li>Kui dekteerime pinge, siis lülitamine leedi põlema ning selle puudumisel kustutame</li>
</ul>
<p>Loome uue faili:</p>
<p><code>nano led_automaatika.py</code></p>
<p>&#8230; ja kopeerimine sinna järgneva sisu:</p>
<pre><code class="html"># coding=utf-8  

import RPi.GPIO as GPIO                 # ütleme programmile, et soovime universaalportide käske kasutada
import time                             # ütleme programmile, et soovime ajaga seotud funktsioone kasutada

LED = 16                                # loome muutuja LED, mille väärtus on 16, edaspidi programm teab,
                                        # et sõna "LED" tähendab arvu 16

PIR_OUTPUT = 18                         # loome muutuja analoogselt LED'ile tähistamaks GPIO viigu numbrit,
                                        # millele annab PIR sensori liikumise korral pinge


GPIO.setmode(GPIO.BCM)                          # soovime kasutada universaalporte numbrite järgi
GPIO.setup(LED, GPIO.OUT)                       # soovime 16 GPIO viiku (LED) kasutada väljundina
GPIO.setup(PIR_OUTPUT, GPIO.IN)                 # soovime 18 GPIO viiku (PIR väljund) lugeda 
                                                # ehk kasutada sisendina

while True:                                     # tahame tsüklit, et programm kestaks pideval

        if GPIO.input(PIR_OUTPUT) == True:      # loeme, kas PIR keskmisel viigul on pinge
                                                # kui on, siis..
                GPIO.output(LED, GPIO.HIGH)     # anname pinge 16ndale (ehk LED) viigule, et tekiks valgus

        else:                                   # muul juhul (kui pinget ei olnud), siis ..
                GPIO.output(LED, GPIO.LOW)      # võtame pinge ära leedilt, sest liikumist ei ole

</code></pre>
<p>Seejärel kasutame juba eelnevalt õpitud salvestamisetehnikat ning käivitame programmi:</p>
<p><code>python led_automaatika.py</code></p>
<p><strong>NB!</strong> Kui peaks juhtuma, et mingil põhjusel leed ei hakka liikumise korral põlema, siis esimesena kontrollige üle universaalportide numbrid. Pingesignaalide olemasolu saab valideerida multimeetri alalispinge mõõtmise režiimis.</p>
<p><strong>Valgusti juhtimine mõnest teisest seadmest</strong></p>
<p>Nagu juba <a href="https://iot.ttu.ee/et/sissejuhatus-asjade-internetti/">asjade interneti tutvustavas blogiposituses</a> vihjasime, tuleb kaugjuhtimiseks luua kahe seadme vaheline ühendus. Antud postituse raames oleva Raspberry Pi 3 puhul saab kasutada nii kaablipõhist (ethernet) kui ka kaablita (WiFi) lähenemist kohtvõrku ühendamiseks. Esimese puhul piisab sellest, kui ühendame seadme etherneti kaabli abil koduruuteri külge ning WiFi seadistamiseks leiab asjakohase juhendi <a href="https://projects.raspberrypi.org/en/projects/raspberry-pi-getting-started/7">siit</a>.</p>
<p>Üks lihtsamaid (ja seega ka ebaturvalisem lähenemine) viise kaugjuhtimiseks on kasutada internetibrauserit. Antud projekti raames loome kaks linki, mille kaudu leedi juhtimine toimuma hakkab vastavalt:</p>
<ul>
<li>http:///led_on   <- sisselülitamiseks</li>
<li>http:///led_off  <- väljalülitamiseks</li>
</ul>
<p>Et suvaline veebibrauseri toega samas kohtvõrgus olev seade saaks valgusti juhtimise käsku edastada, peab meie loodav programm olema võimeline kuulama sissetulevaid päringuid. Seda ülesannet oskab lahendada HTTP teenus. HTTP (<em>HyperText Transfer Protocol</em>) on veebimaailmas kasutusel olev reeglite kogum, mis määrab ära, kuidas peaksid veebibrauserid ja veebilehekülgi hoiustavad arvutid (või seadmed) omavahel suhtlema. Selliselt ülesehitusega programmid on asjade interneti maailmas tavaline nähtus. Lahenduse peamiseks eeliseks on lai ühilduvus, mis võimaldab rakendusi lihtsasti programmeerida ja kasutada erinevates seadmetes. Tavaliselt on valmistoodete (näiteks mõne kodujuhtimise äppi puhul) sellised päringud realiseeritud nupuvajutusel nö &#8220;tagataustal&#8221;.</p>
<p>Antud juhul saab kasutada leedijuhtimiseks järgnevat koodi:</p>
<pre><code class="html"># coding=utf-8


from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer # ütleme programmile, et soovime kasutada 
                                                              # HTTP teenust
import RPi.GPIO as GPIO                 # ütleme programmile, et soovime universaalportide käske kasutada

LED = 16                                # loome muutuja LED, mille väärtus on 16, edaspidi programm teab,
                                        # et sõna "LED" tähendab arvu 16

GPIO.setmode(GPIO.BCM)                  # soovime kasutada universaalporte numbrite järgi
GPIO.setup(LED, GPIO.OUT)               # soovime 16 GPIO viiku kasutada väljundina

class Handler(BaseHTTPRequestHandler):     # ütleme programmile, et soovime ise määrata, mis juhtub päringutel
    def do_GET(self):                       # ütleme, mida tuleb teha, kui brauser ühendub meie serveri külge
        if self.path == "/led_on":          # mida teha, kui URL on /led_on lõpuga 
            GPIO.output(LED, GPIO.HIGH)     # anname pinge 16ndale (ehk LED) viigule
            print("LED ON")
        elif self.path == "/led_off":       # mida teha, kui URL on /led_off lõpuga 
            GPIO.output(LED, GPIO.LOW)      # võtame pinge ära 16ndalt viigult
            print("LED OFF")
        self.send_response(200)             # ütleme brauserile, et võtsime päringu vastu, just seda
                                            # tähistabki kood 200

server_parameters = ('0.0.0.0', 80)              # päringuid võtame vastu Raspberry PI ip aadressil ja pordil 80
httpd = HTTPServer(server_parameters, Handler)  # ütleme HTTP teenusele, mis on parameetrid ja kuidas käituda 
                                                 # päringute korral
httpd.serve_forever()                            # paneme HTTP teenuse käima
</code></pre>
<p>Et aga mujalt seadmelt ligi saada, peame teadma meie Raspberry Pi IP aadressi. Selle teadasaamiseks saab kasutada terminal käsku:</p>
<p><code>hostname -I</code></p>
<p>Peale programmi käivitamist peaksid olema meie poolt soovitud veebiaadressid kättesaadavad ning nüüd proovimegi samas kohtvõrgus olevast seadmest neid kontrollida. Kuna meie puhul osutus Raspberry IP aadressiks 192.168.0.101, siis leedi juhtimiseks on kasutuses vastavad URL&#8217;id:</p>
<ul>
<li>http://192.168.0.101/led_on   <- sisselülitamiseks</li>
<li>http://192.168.0.101/led_off  <- väljalülitamiseks</li>
</ul>
<p><strong>NB!</strong> Kui mingil põhjusel peaks programm väljastama veateate &#8220;<em>socket.error: [Errno 98] Address already in use&#8221;</em>, siis sellega üritab operatatsioonisüsteem öelda, et mingi protsess (programm) juba kasutab porti 80. Sellisel juhul võib segava programmi sulgemiseks kasutada käsku:</p>
<p><code>kill -9 $(lsof -t -i:80)</code><br />
<strong>Iseseisvaks katsetamiseks</strong></p>
<ul>
<li>Muutke iseseisvalt kasutatavaid universaalporte vastavalt Raspberry Pi paigaldusplaanile</li>
<li>Lisage elektriskeemi veel üks leedvalgusti ning vilgutage mõlemat kordamööda</li>
<li>Ühendada elektriskeem nii, et leed põleks ainult siis, kui liikumisandur tuvastab liikumise</li>
</ul>
<p><em>Blogi valmimist toetavad Haridus- ja Teadusministeerium ning SA Eesti Teadusagentuur.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>TalTech Iseauto saamislugu. 4/4 Iseauto ülevaade</title>
		<link>https://iot.ttu.ee/et/taltech-iseauto-4-4-testid-ja-tulemused/</link>
		
		<dc:creator><![CDATA[kikas]]></dc:creator>
		<pubDate>Thu, 20 Dec 2018 11:59:43 +0000</pubDate>
				<category><![CDATA[5G]]></category>
		<category><![CDATA[Automotive]]></category>
		<category><![CDATA[Platvorm]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://iot.ttu.ee/et/?p=552</guid>

					<description><![CDATA[TalTech Iseauto valmib TalTech infotehnoloogia-ja inseneriteaduskonna tudengite ning Silberauto AS koostööna. Projekti ühe partnerina on kaasatud ka ABB. Kui eelnevas kolmes osas [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><i><span style="font-weight: 400;">TalTech Iseauto valmib TalTech infotehnoloogia-ja inseneriteaduskonna tudengite ning Silberauto AS koostööna. Projekti ühe partnerina on kaasatud ka ABB.</span></i></p>
<p align="justify">Kui eelnevas kolmes osas keskendusime TalTech Iseauto arendamisele, siis nüüd on aeg heita pilk sellele, milline Iseauto lõplik versioon hetkel välja näeb, mis sensorid on bussi küljes ning milleks Iseauto ikkagi võimeline on.</p>
<p align="justify">Alustame bussi välimusest, mille disainis ja projekteeris Silberauto disainer Sven Sellik. Iseauto on disainitud sümmeetriliseks, mille tõttu pole väliselt kohe aru saada, kumb on bussi esi- ja kumb tagaosa. Põhivärviks on tumehall. Lisaks on kasutatud musta ja valget värvi. Kõrgus on 2,4 m, pikkus 3,5 m ja laius 1,5 m ning kaalub 1,1 tonni. Alljärgnevad pildid annavad kõige parema ülevaate sellest, milline buss välja näeb.</p>
<figure id="attachment_672" style="width: 1024px"  class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="size-large wp-image-672" src="https://iot.ttu.ee/wp-content/uploads/2018/12/Buss-küljelt-1024x683.jpg" alt="" width="1024" height="683" srcset="https://iot.ttu.ee/wp-content/uploads/2018/12/Buss-küljelt-1024x683.jpg 1024w, https://iot.ttu.ee/wp-content/uploads/2018/12/Buss-küljelt-300x200.jpg 300w, https://iot.ttu.ee/wp-content/uploads/2018/12/Buss-küljelt-768x512.jpg 768w, https://iot.ttu.ee/wp-content/uploads/2018/12/Buss-küljelt-830x553.jpg 830w, https://iot.ttu.ee/wp-content/uploads/2018/12/Buss-küljelt-230x153.jpg 230w, https://iot.ttu.ee/wp-content/uploads/2018/12/Buss-küljelt-350x233.jpg 350w, https://iot.ttu.ee/wp-content/uploads/2018/12/Buss-küljelt-480x320.jpg 480w, https://iot.ttu.ee/wp-content/uploads/2018/12/Buss-küljelt-272x182.jpg 272w, https://iot.ttu.ee/wp-content/uploads/2018/12/Buss-küljelt.jpg 1500w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-caption-text">Iseauto küljelt</figcaption></figure>
<figure id="attachment_678" style="width: 683px"  class="wp-caption aligncenter"><img decoding="async" class="wp-image-678" src="https://iot.ttu.ee/wp-content/uploads/2018/12/Uks-2mb-719x1024.jpg" alt="" width="683" height="974" srcset="https://iot.ttu.ee/wp-content/uploads/2018/12/Uks-2mb-719x1024.jpg 719w, https://iot.ttu.ee/wp-content/uploads/2018/12/Uks-2mb-211x300.jpg 211w, https://iot.ttu.ee/wp-content/uploads/2018/12/Uks-2mb-230x327.jpg 230w, https://iot.ttu.ee/wp-content/uploads/2018/12/Uks-2mb-350x498.jpg 350w" sizes="(max-width: 683px) 100vw, 683px" /><figcaption class="wp-caption-text">Iseauto uks</figcaption></figure>
<figure id="attachment_674" style="width: 1024px"  class="wp-caption aligncenter"><img decoding="async" class="wp-image-674 size-large" src="https://iot.ttu.ee/wp-content/uploads/2018/12/Kinnihoidmis_kohad-1024x768.jpg" alt="" width="1024" height="768" srcset="https://iot.ttu.ee/wp-content/uploads/2018/12/Kinnihoidmis_kohad-1024x768.jpg 1024w, https://iot.ttu.ee/wp-content/uploads/2018/12/Kinnihoidmis_kohad-300x225.jpg 300w, https://iot.ttu.ee/wp-content/uploads/2018/12/Kinnihoidmis_kohad-768x576.jpg 768w, https://iot.ttu.ee/wp-content/uploads/2018/12/Kinnihoidmis_kohad-830x623.jpg 830w, https://iot.ttu.ee/wp-content/uploads/2018/12/Kinnihoidmis_kohad-230x173.jpg 230w, https://iot.ttu.ee/wp-content/uploads/2018/12/Kinnihoidmis_kohad-350x263.jpg 350w, https://iot.ttu.ee/wp-content/uploads/2018/12/Kinnihoidmis_kohad-480x360.jpg 480w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-caption-text">Kinnihoidmis kohad reisijatele</figcaption></figure>
<p align="justify">Järgmisena vaatleme kuhu ja kuidas on bussi paigutatud erinevad sensorid. Esiteks lidarid, sest nende olulisust bussil on raske ületähtsustada. Kasutame Volodyne 3D lidareid, mis tekitavad 360 kraadi enda ümber olevatest objektidest 3D pildi. Nende abil on võimalik teostada lokaalset positsioneerimist ja objektide tuvastamist. Kui esialgu planeeriti paigutada üks lidar bussi katusele ette ja teine taha, siis arenduse käigus jõuti tulemusteni, kui paigutada kaks lidarit katuse esinurkadesse väikese nurga alla (nurgaga maapinna suunas) ning lisaks üks lidar veel ka bussi ette paarikümne sentimeetri kõrgusele maapinnast.</p>
<figure id="attachment_681" style="width: 1024px"  class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-681 size-large" src="https://iot.ttu.ee/wp-content/uploads/2018/12/ylemised-lidarid-2mb-1024x645.jpg" alt="" width="1024" height="645" srcset="https://iot.ttu.ee/wp-content/uploads/2018/12/ylemised-lidarid-2mb-1024x645.jpg 1024w, https://iot.ttu.ee/wp-content/uploads/2018/12/ylemised-lidarid-2mb-300x189.jpg 300w, https://iot.ttu.ee/wp-content/uploads/2018/12/ylemised-lidarid-2mb-768x484.jpg 768w, https://iot.ttu.ee/wp-content/uploads/2018/12/ylemised-lidarid-2mb-830x523.jpg 830w, https://iot.ttu.ee/wp-content/uploads/2018/12/ylemised-lidarid-2mb-230x145.jpg 230w, https://iot.ttu.ee/wp-content/uploads/2018/12/ylemised-lidarid-2mb-350x220.jpg 350w, https://iot.ttu.ee/wp-content/uploads/2018/12/ylemised-lidarid-2mb-480x302.jpg 480w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-caption-text">Ülemised lidarid</figcaption></figure>
<figure id="attachment_671" style="width: 1024px"  class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-671 size-large" src="https://iot.ttu.ee/wp-content/uploads/2018/12/alumine_lidar-1024x768.jpg" alt="" width="1024" height="768" srcset="https://iot.ttu.ee/wp-content/uploads/2018/12/alumine_lidar-1024x768.jpg 1024w, https://iot.ttu.ee/wp-content/uploads/2018/12/alumine_lidar-300x225.jpg 300w, https://iot.ttu.ee/wp-content/uploads/2018/12/alumine_lidar-768x576.jpg 768w, https://iot.ttu.ee/wp-content/uploads/2018/12/alumine_lidar-830x623.jpg 830w, https://iot.ttu.ee/wp-content/uploads/2018/12/alumine_lidar-230x173.jpg 230w, https://iot.ttu.ee/wp-content/uploads/2018/12/alumine_lidar-350x263.jpg 350w, https://iot.ttu.ee/wp-content/uploads/2018/12/alumine_lidar-480x360.jpg 480w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-caption-text">Alumine lidar</figcaption></figure>
<p align="justify">Lisaks lokaalsele positsioneerimisele suudab buss ennast positsioneerida ka globaalselt. Selleks on bussile paigutatud RTK-GNSS (<i><span style="font-weight: 400;">Real Time Kinematic Global Navigation Satellite System</span></i><span style="font-weight: 400;">), mille täpsus jääb paari sentimeetri juurde. Tema peamised komponendid on GPS moodul ja kaks antenni, millest üks on paigutatud bussi ette ja teine tahaotsa. Kahe antenni kasutamine annab võimaluse väga kiirelt liikumissuund paika saada. Moodul ise sai esialgu paigutatud auto tagaossa mootori kohale, kuid kuna Iseautol kasutataval mudelil on küljes ka inertsiaalandur, siis tuleb see ümber paigutada, sest mootoris liikuv kõrge vool tekitab magnetvälja, mille tulemusena inertsiaalanduris paiknev magnetomeeter väljastab valesid tulemusi. Inertiaalandur sisaldab endas kolme sensorit &#8211; kiirendusandur, güroskoop ja magnetomeeter ehk kompass, mis koostöös suudavad väljastada bussi liikumistrajektoori. Alloleval pildil on näha bussi eesotsas paiknev antenn.</span></p>
<figure id="attachment_683" style="width: 1024px"  class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-683 size-large" src="https://iot.ttu.ee/wp-content/uploads/2018/12/rtkgnss-2mb-1024x713.jpg" alt="" width="1024" height="713" srcset="https://iot.ttu.ee/wp-content/uploads/2018/12/rtkgnss-2mb-1024x713.jpg 1024w, https://iot.ttu.ee/wp-content/uploads/2018/12/rtkgnss-2mb-300x209.jpg 300w, https://iot.ttu.ee/wp-content/uploads/2018/12/rtkgnss-2mb-768x535.jpg 768w, https://iot.ttu.ee/wp-content/uploads/2018/12/rtkgnss-2mb-830x578.jpg 830w, https://iot.ttu.ee/wp-content/uploads/2018/12/rtkgnss-2mb-230x160.jpg 230w, https://iot.ttu.ee/wp-content/uploads/2018/12/rtkgnss-2mb-350x244.jpg 350w, https://iot.ttu.ee/wp-content/uploads/2018/12/rtkgnss-2mb-480x334.jpg 480w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-caption-text">RTK-GNSS esimene antenn</figcaption></figure>
<p align="justify">Järgmised olulised sensorid on kaamerad, mida on hetkel bussis kokku 5. Kaks kaamerat vaatavad bussi ette  &#8211; üks üleval ja teine all, üks bussi taha (all) ja kaks tükki külgedele (paikevad bussi esiosas külgedel). Kaamerate abil on võimalik hõlpsasti teostada objektide tuvastamist. Hetkel tuvastab Iseauto vaid inimesi ja autosid, kuid lähiajal lisandub kindlasti ka näiteks liiklusmärkide või loomade tuvastamine.</p>
<p align="justify">Iseautole paigutatud ka 8 ultraheliandurit, millede ülesanne on tuvastada objekte bussi lähiümbruses kuni mõne meetri kauguseni. Neli sensorit paigutati bussi ette ja neli taha.</p>
<figure id="attachment_675" style="width: 1024px"  class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-675 size-large" src="https://iot.ttu.ee/wp-content/uploads/2018/12/TagumisedUS-1024x768.jpg" alt="" width="1024" height="768" srcset="https://iot.ttu.ee/wp-content/uploads/2018/12/TagumisedUS-1024x768.jpg 1024w, https://iot.ttu.ee/wp-content/uploads/2018/12/TagumisedUS-300x225.jpg 300w, https://iot.ttu.ee/wp-content/uploads/2018/12/TagumisedUS-768x576.jpg 768w, https://iot.ttu.ee/wp-content/uploads/2018/12/TagumisedUS-830x623.jpg 830w, https://iot.ttu.ee/wp-content/uploads/2018/12/TagumisedUS-230x173.jpg 230w, https://iot.ttu.ee/wp-content/uploads/2018/12/TagumisedUS-350x263.jpg 350w, https://iot.ttu.ee/wp-content/uploads/2018/12/TagumisedUS-480x360.jpg 480w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-caption-text">Tagumised ultraheli sensorid ja laadimispesa</figcaption></figure>
<p align="justify">Sellega oleme Iseauto sensoorika osa ära kirjeldanud. Edasi vaatame seda, milleks ta võimeline on.</p>
<p align="justify">Tänasel päeval on Iseauto peamiseks võimekuseks see, et ta suudab eelkaardistatud rajal etteantud trajektoori etteantud kiirusel järgida. Kaamerate abil suudab Iseauto ka kindlaks teha ümbruskonnas liikuvad inimesed ja sõidukid. Maksimaalne lubatud sõidukiirus bussil on 20 km/h. Tänase päeva seisuga on tema peamisteks puudujääkidest võimekus lidari abiga objekte sõidutrajektooril tuvastada ning seetõttu puudub tal ka võimekus vastavalt vajadusel nendest objektidest ümber põigata. Siiski on need funktsionaalsused arenduses. Turvalisuse tagamiseks peab bussis sõidu ajal olema vähemalt üks operaator, kes saaks bussi vajadusel mõne eelmises osas kirjeldatud hädapiduri nupuga seisma pidurdada.</p>
<figure id="attachment_684" style="width: 1024px"  class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-684 size-large" src="https://iot.ttu.ee/wp-content/uploads/2018/12/test_trackil-2mb-1024x573.png" alt="" width="1024" height="573" srcset="https://iot.ttu.ee/wp-content/uploads/2018/12/test_trackil-2mb-1024x573.png 1024w, https://iot.ttu.ee/wp-content/uploads/2018/12/test_trackil-2mb-300x168.png 300w, https://iot.ttu.ee/wp-content/uploads/2018/12/test_trackil-2mb-768x430.png 768w, https://iot.ttu.ee/wp-content/uploads/2018/12/test_trackil-2mb-830x465.png 830w, https://iot.ttu.ee/wp-content/uploads/2018/12/test_trackil-2mb-230x129.png 230w, https://iot.ttu.ee/wp-content/uploads/2018/12/test_trackil-2mb-350x196.png 350w, https://iot.ttu.ee/wp-content/uploads/2018/12/test_trackil-2mb-480x269.png 480w, https://iot.ttu.ee/wp-content/uploads/2018/12/test_trackil-2mb.png 1624w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-caption-text">Iseauto testrajal</figcaption></figure>
<p align="justify">Ja kõige lõpuks &#8211; mis saab Iseautost edasi? 14. novembril 2018. aastal, kaks kuud pärast esimest demo sõlmisid TalTechi rektor Jaak Aaviksoo ja Silberauto AS juhatuse esimees Väino Kaldoja lepingu, mis annab aluse Iseauto jätkuvaks arenguks ning uue Iseauto loomiseks. Eesmärk on luua Iseauto2, mis väliselt näeks välja samasugune, kuid mis oleks nii mehhaaniliselt kui ka tehnoloogiliselt oluliselt optimeeritud ning mis oleks mõeldud liiklema ka reaalsetel linnatänavatel. Tema valmimisaeg saab olema 2019. aasta suvi. Esimene Iseauto jääb aga TalTechi tudengitele arendus- ja õppeplatvormiks ning on ühtlasi ka Iseauto2-le paigaldatava tehisintellekti ja sensoorika testplatvormiks.</p>
<p><em>Blogi valmimist toetavad Haridus- ja Teadusministeerium ning SA Eesti Teadusagentuur.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>TTÜ linnakus saab kasutada LoRa IoT raadioside võrku</title>
		<link>https://iot.ttu.ee/et/lora-wan-ttu-linnakus/</link>
		
		<dc:creator><![CDATA[Mairo Leier]]></dc:creator>
		<pubDate>Fri, 18 May 2018 17:18:35 +0000</pubDate>
				<category><![CDATA[LoRaWAN]]></category>
		<category><![CDATA[Juhtmevaba]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Levira]]></category>
		<guid isPermaLink="false">https://iot.ttu.ee/?p=232</guid>

					<description><![CDATA[2017. aasta lõpust alates saab TTÜ kämpuses kasutada LoRa WAN raadioside tehnoloogiat. Kuigi ametlikult lubatakse LoRa võrgu leviala rohkem kui 15 kilomeetri [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>2017. aasta lõpust alates saab TTÜ kämpuses kasutada LoRa WAN raadioside tehnoloogiat. Kuigi ametlikult lubatakse LoRa võrgu leviala rohkem kui 15 kilomeetri raadisuses, siis linnatingimustes võiks arvestada suhteliselt korraliku levialaga paari-kolme kilomeetri raadiuses sisetingimustes. Võrgu poolt pakutavaid teenuseid on võimalik kasutada kõigil osapooltel. Olenevalt eesmärgist on võimalik kasutada võrgu kasutamist kolmel peamisel eesmärgil:</p>
<ol>
<li>Uue toote või teenuse arenduseks, mille käigus soovitakse teha koostööd TTÜ&#8217;ga. Koostööprojekti käigus on võimalik ühendada LoRa võrku oma seade ning testida kogu lahenduse toimimist ilma lisakuludeta. Siinjuures on kindlasti abiks TTÜ juba olemasolev kogemus ühenduse ülesseadmisel, häälestamisel ja testimisel. Muuhulgas oskame teid aidata järgmistel LoRa WAN võrguga seotud teemadel:
<ol>
<li>Uute seadmete lisamine võrku ja nende haldus</li>
<li>Krüpteeritud pakettide dekodeerimine andmete töötlemiseks</li>
<li>Andmete allalaadimine API abil nende edasiseks töötlemiseks ja analüüsiks</li>
</ol>
</li>
<li>Kui soovite oma toodet või teenust hakata pakkuma kommertseesmärkidel, siis on kõige kiirem viis kontakteeruda otse <a href="https://www.levira.com/">Leviraga</a>, kes haldab konkreetset LoRa WAN võrku ning annab teile kõik vajalikud juhised edasiseks.</li>
<li>Kui sa oled tudeng ja soovid LoRa WAN võrku kasutama õppida  või osaled mõnes projktis, mis vajab andmete saatmiseks madala energiatarbega raadioside protokolli, võta meiega ühendust ning aitame sind.</li>
</ol>
<h3></h3>
<h3>LoRaWAN eelised</h3>
<ul>
<li>Väga lai leviala, linnatingimustes ca 3-5 km ja maapiirkondades kuni 15 km.</li>
<li>Väga väikese energiatarbega mille tõttu kestab patarei tööiga pikalt (kuni 10 aastat).</li>
<li>Kasutab adaptiivset andmeside kiiuse tehnoloogiat lõppseadmetes. See aitab pikendada aku eluiga ja üldiset LoRaWAN võrgu läbilaskevõimet. Andmeside võib kõikuda vahemikus  0.3 kbps kuni 27 Kbps 125 KHz ribalaiuse juures.</li>
<li>Kasutab üle maailma vabalt kasutuses olevat 868 MHz/ 915 MHz ISM sagedusriba.</li>
</ul>
<h3></h3>
<h3>LoRaWAN puudused</h3>
<ul>
<li>Saab kasutada rakendustes, mis ei vaja suurt andmesidekiirust, kuni 27 kbps.</li>
<li>LoRaWAN võrgu kasutus on limiteeritud nn. töötsükli parameetriga. See on protsent kogu ajast, mil võib kasutada raadiokanalit andmete saatmiseks.</li>
<li>Ei ole sobilik kasutamiseks rakendustes, mis vajavad reaalajas suhtlust ja väikest latentsust.</li>
</ul>
<h3></h3>
<h3>LoRaWAN tutvustus</h3>
<figure id="attachment_239" style="width: 597px"  class="wp-caption alignright"><a href="https://iot.ttu.ee/wp-content/uploads/2018/05/lorawan_network_diagram.png"><img loading="lazy" decoding="async" class="wp-image-239 " src="https://iot.ttu.ee/wp-content/uploads/2018/05/lorawan_network_diagram-1024x549.png" alt="LoRaWAN Network architecture" width="597" height="320" srcset="https://iot.ttu.ee/wp-content/uploads/2018/05/lorawan_network_diagram-1024x549.png 1024w, https://iot.ttu.ee/wp-content/uploads/2018/05/lorawan_network_diagram-300x161.png 300w, https://iot.ttu.ee/wp-content/uploads/2018/05/lorawan_network_diagram-768x412.png 768w, https://iot.ttu.ee/wp-content/uploads/2018/05/lorawan_network_diagram-830x445.png 830w, https://iot.ttu.ee/wp-content/uploads/2018/05/lorawan_network_diagram-230x123.png 230w, https://iot.ttu.ee/wp-content/uploads/2018/05/lorawan_network_diagram-350x188.png 350w, https://iot.ttu.ee/wp-content/uploads/2018/05/lorawan_network_diagram-480x257.png 480w" sizes="(max-width: 597px) 100vw, 597px" /></a><figcaption class="wp-caption-text">Allikas: https://www.semtech.com/technology/lora/what-is-lora</figcaption></figure>
<p>LoraWAN on raadioside protokoll, mis on disainitud väikese energiatarbega seadmetele, mis suhtlevad erinevate rakendustega kasutades pikamaa juhtmevaba raadiovõrku. Ta opereerib vabasagedusaladel. Euroopas on kasutusel 863-870MHz sagedusel töötav LoRa WAN võrk. Antud sagedus on ära jaotatud erinevateks kanaliteks ning võltuvalt kanalist võib üks seade kasutada kanalit kas 1% või isegi ainult 0.1% lubatud ajast. Nimetatud kanalid saavad kasutada ribalaius 125kHz, 250kHz või 500kHz, mis on määratud ära konkreetse regiooni regulatsioonidega. Ribalaius määrab omakorda ära ka andmesidekiiruse.</p>
<p>LoRaWAN võrk toetab kolme erinevat tüüpi seadmeid. Kõik seadmed peavad kuuluma Klassi A kus teised klassid siis omakorda täiendavad esimest.</p>
<ul>
<li><strong>Klass A</strong> seadmed toetavad kahepoolset andmesideühendust seadme ja lüüsi vahel. Seade saab võrku saada oma sõnumeid igal ajal. Peale saatmist on kaks ajaakent kui seade on valmis võtma vastu sõnumeid võrgust. Sõnumeid saab vastu võtta ainult ühel korral kahest võimalikust.</li>
<li><strong>Klass B</strong> seadmed laiendavad Klass A seadme võimalusi kasutades ajastatud aknaid andmete vastuvõtmiseks serverist. Sisuliselt tähendab see, et seadmed kuulavad perioodiliselt kas serveril on neile midagi saata.</li>
<li><strong>Klass C</strong> seadmed laiendavad Klass A seadme võimalusi suudavad samal ajal andmeid vastu võtta kuni nad andmeid saadavad. Võrreldes Klass A seadmetega on selline kommunikatsioonilahendus kordades energiamahukam.</li>
</ul>
<p>Igal seadmel võrgus on 64-bitine unikaalne identifikaator (DevEUI ja AppEUI). Seadme ühendumisel võrku saab ta omale dünaamiline 32-bitise aadressi (DevAddr). LoRaWAN võrgus on kasutusel 128-bitised AES turvavõtmed.</p>
<ul>
<li>Rakenduse turvavõti on teada ainult seadmele ja rakendusele</li>
<li>Seadme ühendumisel võrku genereeritakse rakenduse sessiooni võti ja võrgu sessiooni võti. Kui võrgu sessiooni võtit jagatakse võrgus, siis rakenduse sessiooni võti on salajane.</li>
</ul>
<p>Rohkem infot LoRa WAN kohta leaite <a href="https://www.thethingsnetwork.org/docs/lorawan/">www.thethingsnetwork.com</a> lehel. Ülalolev lühitutvustus põhineb osaliselt samal allikal.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
