{"id":1482,"date":"2022-05-04T08:12:29","date_gmt":"2022-05-04T08:12:29","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/?post_type=chapter&#038;p=1482"},"modified":"2022-06-02T23:22:35","modified_gmt":"2022-06-02T23:22:35","slug":"raspberry-pi-liikumisandur-ja-ultraheliandur","status":"web-only","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/chapter\/raspberry-pi-liikumisandur-ja-ultraheliandur\/","title":{"raw":"Raspberry Pi liikumisandur ja ultraheliandur","rendered":"Raspberry Pi liikumisandur ja ultraheliandur"},"content":{"raw":"T\u00e4nases tunnis tutvume kahe anduriga: liikumisanduriga ja ultrahelianduriga. PIR ehk inglise keeles <em>passive infrared sensor\u00a0<\/em>on elektrooniline andur, mis m\u00f5\u00f5dab ifrapuna valgust, mis tuleb selle l\u00e4hedastest objektidest. Liikmuisandureid kasutatakse tihti turvas\u00fcsteemides v\u00f5i liikumise peale aktiveeruvate tulede jaoks. Ultraheliandur on \u00fcks lihtsamaid andureid kauguse m\u00f5\u00f5tmiseks. Ultraheliandurid saadavad v\u00e4lja k\u00f5rge sagedusega helisignaali, mis ei ole inimk\u00f5rvale kuuldav ning seej\u00e4rel ootab, et heli tagasi j\u00f5uaks. Kuna heli liikumiskiirus toatemperatuuril \u00f5hus on ligikaudu 343 m\/s siis teame vastavalt sellele, kui kaua l\u00e4heb aega ultrahelil andurisse tagasi j\u00f5udmiseks kui kaugel vastav objekt asub. Ultraheliandureid kasutatakse tihitpeale robootikas ning n\u00e4iteks autodes, et aidata juhti parkimisel.\r\n<h2>1. Liikmisandur<\/h2>\r\nLiikumisanduri peal on katteks Fresneli l\u00e4\u00e4ts. Liikumisandurilt tasub enne selle \u00fchendamist l\u00e4\u00e4ts eemaldada, et saaksime aru millised n\u00f5elad mille jaoks kasutusel on. Kui eemaldame katte siis n\u00e4eme kolme kirja: VCC, OUT ja GND.\r\n\r\n<img class=\"alignnone size-medium wp-image-1485\" style=\"font-size: 1em\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115736-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" \/> <img class=\"alignnone size-medium wp-image-1484\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115710-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" \/>\r\n\r\n\u00dchendame liikumisanduri Raspberry Pi-ga nii, et \u00fchendame VCC n\u00f5ela Raspberry Pi peal olevasse 5V n\u00f5ela. GND n\u00f5ela \u00fchendame \u00fcksk\u00f5ik millisesse Raspberry Pi maandusn\u00f5ela ning OUT n\u00f5ela \u00fchendame \u00fcksk\u00f5ik millisesse GPIO n\u00f5ela. Kui sul ei ole juhet, mis oleks m\u00f5lemalt poolt emase otsaga siis kasuta makettplaati n\u00f6 vahel\u00fclina. Alloleval skeemil on m\u00e4rgitud \u00e4ra 5V, Ground ehk maandus ja GPIO numbritega.\r\n\r\n[caption id=\"attachment_1488\" align=\"alignnone\" width=\"800\"]<img class=\"wp-image-1488 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/R-Pi-4-GPIO-Pinout.jpg\" alt=\"\" width=\"800\" height=\"596\" \/> https:\/\/www.etechnophiles.com\/raspberry-pi-4-gpio-pinout-specifications-and-schematic\/[\/caption]\r\n\r\nKui andur on Raspberry Pi-ga \u00fchendatud siis tuleb meil see programmeerida. Esmalt programmeerime Raspberry Pi nii, et ta annaks meile m\u00e4rku v\u00e4lja tr\u00fckkimisega, et liikumist on n\u00e4htud. Raspberry Pi-l on liikumisanduri jaoks eraldi teek nimega gpiozero, kust meil tuleb programmi laadida MotionSensori moodul.\r\n\r\nKui see on tehtud siis vaata kontrolli \u00fcle millise GPIO n\u00f5elaga (millise numbriga) sa liikumisanduri \u00fclendasid. Seej\u00e4rel saame kasutada koodirida, kus loome uue objekti liikumisanduri jaoks n\u00e4iteks, kui liikumisandur on \u00fchendatud neljandasse GPIO n\u00f5ela oleks selleks: <code>liikumisAndur = MotionSensor(4)<\/code>.\r\n\r\nSeej\u00e4rel saame liikumisandurile anda k\u00e4su, et ta ootaks kuni liikumist on n\u00e4htud k\u00e4suga: <code>liikumisAndur.wait_for_motion()<\/code>. Sarnaselt sellele saame liikumisandurilt k\u00fcsida ka, et ta ootaks kuni liikumist enam ei ole. Seda saab saavutada k\u00e4suga: <code>liikumisAndur.wait_for_no_motion()<\/code>. Nende teadmistega saame luua sellise programmi, mis tr\u00fckib v\u00e4lja, kui liikumisandur on liikumist n\u00e4inud.\r\n\r\nN\u00fc\u00fcd proovime luua programmi, mis oleks rohkem nagu turvakaamera ehk ta t\u00f6\u00f6taks pidevalt, \u00f6\u00f6p\u00e4evaringselt. M\u00f5tle, kuidas saaksid t\u00e4iendada oma programmi nii, et ta t\u00f6\u00f6taks l\u00f5putult? Vihje: tuleks kasutada l\u00f5putut ts\u00fcklit.\r\n<h2>2. Ultraheliandur<\/h2>\r\nJ\u00e4rgnevalt kasetame Raspberry Pi ultraheliandurit. Selle jaoks \u00fchenda esmalt lahti liikumisanduri ning valmistume ette ultrahelianduri. Esmalt tutvume anduri endaga. Andur meenutab n\u00e4iteks roboti silmi ning selle peal on kaks sisuliselt k\u00f5larit, mis ultraheli edastab ning vastuv\u00f5tja. Lisaks sellele on anduril loomulikult ka neli n\u00f5ela, milleks on: VCC ehk 5V toiteallika n\u00f5el, Trig ehk <em>Trigger Pulse Input<\/em>, mis vastutab selle eest, et saada info millal saata v\u00e4lja ultraheli laine, Echo ehk <em>Echo Pulse Output<\/em>, mis vastutab andurist saadud info Raspberry Pi-le edastamise eest ning l\u00f5puks GND ehk maandus.\r\n\r\nJ\u00e4rgnevalt proovime Raspberry Pi ja ultrahelianduri omavahel \u00fchendada, selle jaoks eemlda Raspberry Pi esmalt vooluv\u00f5rgust ning alles siis proovi seda \u00fchendada. \u00dchendamisel l\u00e4heb meil tarvis makettplaati, mitmeid juhtmeid ning \u00fchte 1k\u03a9 ja \u00fchte 2k\u03a9 takistit. 1k\u03a9 takisti on joonisel kujutatud vertikaalses asendis, ning sellel on punane must ja pruun triip. 2k\u03a9 takisti on kujutatud horisontaalselt ning sellel on punane, must ja punane triip.\r\n\r\n\u00dchendame Raspberry Pi ultrahelianduriga j\u00e4rgmisel:\r\n\r\nKui oled ultrahelianduri Raspberry Pi-ga \u00fchendanud siis j\u00e4rgnevalt proovime selle programmeerida nii, et see m\u00f5\u00f5daks objekti kaugust ning edastaks meile saadud tulemuse.\r\n\r\nEsmalt lisame programmi meile vaja minevad teegid, milleks on: <code>GPIO<\/code> ja <code>time<\/code>. Seda teeme nii:\r\n\r\n<img class=\"alignnone wp-image-1544 size-large\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220603_021045-1-1024x768.jpg\" alt=\"\" width=\"1024\" height=\"768\" \/>\r\n\r\n<code>import RPi.GPIO as GPIO\u00a0<\/code>\r\n\r\n<code>import time<\/code>\r\n\r\nSeej\u00e4rel m\u00e4\u00e4rame GPIO re\u017eiimi BCM peale nii: <code>GPIO.setmode(GPIO.BCM)<\/code>\r\n\r\nNing m\u00e4\u00e4rame ka kaks muutujat vastavalt ultrahelianduri n\u00f5elte j\u00e4rgi:\r\n\r\n<code>TRIG = 23<\/code>\r\n\r\n<code>ECHO = 24<\/code>\r\n\r\nSeej\u00e4rel m\u00e4\u00e4rame GPIO sisend ja v\u00e4ljundid nii:\r\n\r\n<code>GPIO.setup(TRIG, GPIO.OUT)<\/code>\r\n\r\n<code>GPIO.setup(ECHO, GPIO.IN)<\/code>\r\n\r\nJ\u00e4rgnevalt seame TRIG n\u00f5ela GPIO 1 ehk <code>True<\/code> peale ehk saadame selle l\u00e4bi ultraheli lained nii: <code>GPIO.output(TRIG, True)<\/code>. Seej\u00e4rel ootame 0.00001 sekundit ehk saadame selle aja jooksul 8 40kHz helilainet nii: <code>time.sleep(0.00001)<\/code>. Ning l\u00fclitame TRIG n\u00f5ela v\u00e4lja: <code>GPIO.output(TRIG, False)<\/code>\r\n\r\nSeej\u00e4rel m\u00f5\u00f5dame aega kaua l\u00e4heb, et ultrahelilained andurisse tagasi j\u00f5uavad. Selle jaoks loome kirjutame kodi, mis salvestab algus- ja l\u00f5puaja hetkeda vahel, kus ultrahelilaine ei ole tagasi j\u00f5udnud selle ajani kuni see on.\r\n\r\nKood v\u00f5iks v\u00e4lja n\u00e4ha n\u00e4iteks j\u00e4rgmine:\r\n\r\n<code>while(GPIO.input(ECHO)==0):<\/code>\r\n\r\n<code>\u00a0 \u00a0 start = time.time()<\/code>\r\n\r\n<code>while(GPIO.input(ECHO)==1):<\/code>\r\n\r\n<code>\u00a0 \u00a0 end = time.time()<\/code>\r\n\r\n<code>kestus = end - start<\/code>\r\n\r\nViimane muutuja, mille me l\u00f5ime salvestas aja kahe signaali vahel. J\u00e4rgnevalt peame aja konverteerima kauguseks. Teame, et kiirus = distants \/ ajaga. Heli kiirus on 343 m\/s ehk 34300 cm\/s. Kuna ultraheli signaal l\u00e4bis tee edasi ja tagasi objekti vahel siis peame aja jagama kahega. Teisendades saame, et distants = ajakulu * 17150. Seega kirjutame koodirea: <code>distants = round((kestus * 17150),<\/code> 2).\r\n\r\nViimaseks sammuks tr\u00fcki tulemus ekraanile. Kas toimis?","rendered":"<p>T\u00e4nases tunnis tutvume kahe anduriga: liikumisanduriga ja ultrahelianduriga. PIR ehk inglise keeles <em>passive infrared sensor\u00a0<\/em>on elektrooniline andur, mis m\u00f5\u00f5dab ifrapuna valgust, mis tuleb selle l\u00e4hedastest objektidest. Liikmuisandureid kasutatakse tihti turvas\u00fcsteemides v\u00f5i liikumise peale aktiveeruvate tulede jaoks. Ultraheliandur on \u00fcks lihtsamaid andureid kauguse m\u00f5\u00f5tmiseks. Ultraheliandurid saadavad v\u00e4lja k\u00f5rge sagedusega helisignaali, mis ei ole inimk\u00f5rvale kuuldav ning seej\u00e4rel ootab, et heli tagasi j\u00f5uaks. Kuna heli liikumiskiirus toatemperatuuril \u00f5hus on ligikaudu 343 m\/s siis teame vastavalt sellele, kui kaua l\u00e4heb aega ultrahelil andurisse tagasi j\u00f5udmiseks kui kaugel vastav objekt asub. Ultraheliandureid kasutatakse tihitpeale robootikas ning n\u00e4iteks autodes, et aidata juhti parkimisel.<\/p>\n<h2>1. Liikmisandur<\/h2>\n<p>Liikumisanduri peal on katteks Fresneli l\u00e4\u00e4ts. Liikumisandurilt tasub enne selle \u00fchendamist l\u00e4\u00e4ts eemaldada, et saaksime aru millised n\u00f5elad mille jaoks kasutusel on. Kui eemaldame katte siis n\u00e4eme kolme kirja: VCC, OUT ja GND.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1485\" style=\"font-size: 1em\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115736-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115736-300x225.jpg 300w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115736-1024x768.jpg 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115736-768x576.jpg 768w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115736-1536x1152.jpg 1536w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115736-2048x1536.jpg 2048w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115736-65x49.jpg 65w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115736-225x169.jpg 225w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115736-350x263.jpg 350w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1484\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115710-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115710-300x225.jpg 300w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115710-1024x768.jpg 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115710-768x576.jpg 768w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115710-1536x1152.jpg 1536w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115710-2048x1536.jpg 2048w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115710-65x49.jpg 65w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115710-225x169.jpg 225w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220504_115710-350x263.jpg 350w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>\u00dchendame liikumisanduri Raspberry Pi-ga nii, et \u00fchendame VCC n\u00f5ela Raspberry Pi peal olevasse 5V n\u00f5ela. GND n\u00f5ela \u00fchendame \u00fcksk\u00f5ik millisesse Raspberry Pi maandusn\u00f5ela ning OUT n\u00f5ela \u00fchendame \u00fcksk\u00f5ik millisesse GPIO n\u00f5ela. Kui sul ei ole juhet, mis oleks m\u00f5lemalt poolt emase otsaga siis kasuta makettplaati n\u00f6 vahel\u00fclina. Alloleval skeemil on m\u00e4rgitud \u00e4ra 5V, Ground ehk maandus ja GPIO numbritega.<\/p>\n<figure id=\"attachment_1488\" aria-describedby=\"caption-attachment-1488\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1488 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/R-Pi-4-GPIO-Pinout.jpg\" alt=\"\" width=\"800\" height=\"596\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/R-Pi-4-GPIO-Pinout.jpg 800w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/R-Pi-4-GPIO-Pinout-300x224.jpg 300w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/R-Pi-4-GPIO-Pinout-768x572.jpg 768w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/R-Pi-4-GPIO-Pinout-65x48.jpg 65w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/R-Pi-4-GPIO-Pinout-225x168.jpg 225w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/R-Pi-4-GPIO-Pinout-350x261.jpg 350w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-1488\" class=\"wp-caption-text\">https:\/\/www.etechnophiles.com\/raspberry-pi-4-gpio-pinout-specifications-and-schematic\/<\/figcaption><\/figure>\n<p>Kui andur on Raspberry Pi-ga \u00fchendatud siis tuleb meil see programmeerida. Esmalt programmeerime Raspberry Pi nii, et ta annaks meile m\u00e4rku v\u00e4lja tr\u00fckkimisega, et liikumist on n\u00e4htud. Raspberry Pi-l on liikumisanduri jaoks eraldi teek nimega gpiozero, kust meil tuleb programmi laadida MotionSensori moodul.<\/p>\n<p>Kui see on tehtud siis vaata kontrolli \u00fcle millise GPIO n\u00f5elaga (millise numbriga) sa liikumisanduri \u00fclendasid. Seej\u00e4rel saame kasutada koodirida, kus loome uue objekti liikumisanduri jaoks n\u00e4iteks, kui liikumisandur on \u00fchendatud neljandasse GPIO n\u00f5ela oleks selleks: <code>liikumisAndur = MotionSensor(4)<\/code>.<\/p>\n<p>Seej\u00e4rel saame liikumisandurile anda k\u00e4su, et ta ootaks kuni liikumist on n\u00e4htud k\u00e4suga: <code>liikumisAndur.wait_for_motion()<\/code>. Sarnaselt sellele saame liikumisandurilt k\u00fcsida ka, et ta ootaks kuni liikumist enam ei ole. Seda saab saavutada k\u00e4suga: <code>liikumisAndur.wait_for_no_motion()<\/code>. Nende teadmistega saame luua sellise programmi, mis tr\u00fckib v\u00e4lja, kui liikumisandur on liikumist n\u00e4inud.<\/p>\n<p>N\u00fc\u00fcd proovime luua programmi, mis oleks rohkem nagu turvakaamera ehk ta t\u00f6\u00f6taks pidevalt, \u00f6\u00f6p\u00e4evaringselt. M\u00f5tle, kuidas saaksid t\u00e4iendada oma programmi nii, et ta t\u00f6\u00f6taks l\u00f5putult? Vihje: tuleks kasutada l\u00f5putut ts\u00fcklit.<\/p>\n<h2>2. Ultraheliandur<\/h2>\n<p>J\u00e4rgnevalt kasetame Raspberry Pi ultraheliandurit. Selle jaoks \u00fchenda esmalt lahti liikumisanduri ning valmistume ette ultrahelianduri. Esmalt tutvume anduri endaga. Andur meenutab n\u00e4iteks roboti silmi ning selle peal on kaks sisuliselt k\u00f5larit, mis ultraheli edastab ning vastuv\u00f5tja. Lisaks sellele on anduril loomulikult ka neli n\u00f5ela, milleks on: VCC ehk 5V toiteallika n\u00f5el, Trig ehk <em>Trigger Pulse Input<\/em>, mis vastutab selle eest, et saada info millal saata v\u00e4lja ultraheli laine, Echo ehk <em>Echo Pulse Output<\/em>, mis vastutab andurist saadud info Raspberry Pi-le edastamise eest ning l\u00f5puks GND ehk maandus.<\/p>\n<p>J\u00e4rgnevalt proovime Raspberry Pi ja ultrahelianduri omavahel \u00fchendada, selle jaoks eemlda Raspberry Pi esmalt vooluv\u00f5rgust ning alles siis proovi seda \u00fchendada. \u00dchendamisel l\u00e4heb meil tarvis makettplaati, mitmeid juhtmeid ning \u00fchte 1k\u03a9 ja \u00fchte 2k\u03a9 takistit. 1k\u03a9 takisti on joonisel kujutatud vertikaalses asendis, ning sellel on punane must ja pruun triip. 2k\u03a9 takisti on kujutatud horisontaalselt ning sellel on punane, must ja punane triip.<\/p>\n<p>\u00dchendame Raspberry Pi ultrahelianduriga j\u00e4rgmisel:<\/p>\n<p>Kui oled ultrahelianduri Raspberry Pi-ga \u00fchendanud siis j\u00e4rgnevalt proovime selle programmeerida nii, et see m\u00f5\u00f5daks objekti kaugust ning edastaks meile saadud tulemuse.<\/p>\n<p>Esmalt lisame programmi meile vaja minevad teegid, milleks on: <code>GPIO<\/code> ja <code>time<\/code>. Seda teeme nii:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1544 size-large\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220603_021045-1-1024x768.jpg\" alt=\"\" width=\"1024\" height=\"768\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220603_021045-1-1024x768.jpg 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220603_021045-1-300x225.jpg 300w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220603_021045-1-768x576.jpg 768w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220603_021045-1-1536x1152.jpg 1536w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220603_021045-1-2048x1536.jpg 2048w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220603_021045-1-65x49.jpg 65w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220603_021045-1-225x169.jpg 225w, https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-content\/uploads\/sites\/21\/2022\/05\/20220603_021045-1-350x263.jpg 350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><code>import RPi.GPIO as GPIO\u00a0<\/code><\/p>\n<p><code>import time<\/code><\/p>\n<p>Seej\u00e4rel m\u00e4\u00e4rame GPIO re\u017eiimi BCM peale nii: <code>GPIO.setmode(GPIO.BCM)<\/code><\/p>\n<p>Ning m\u00e4\u00e4rame ka kaks muutujat vastavalt ultrahelianduri n\u00f5elte j\u00e4rgi:<\/p>\n<p><code>TRIG = 23<\/code><\/p>\n<p><code>ECHO = 24<\/code><\/p>\n<p>Seej\u00e4rel m\u00e4\u00e4rame GPIO sisend ja v\u00e4ljundid nii:<\/p>\n<p><code>GPIO.setup(TRIG, GPIO.OUT)<\/code><\/p>\n<p><code>GPIO.setup(ECHO, GPIO.IN)<\/code><\/p>\n<p>J\u00e4rgnevalt seame TRIG n\u00f5ela GPIO 1 ehk <code>True<\/code> peale ehk saadame selle l\u00e4bi ultraheli lained nii: <code>GPIO.output(TRIG, True)<\/code>. Seej\u00e4rel ootame 0.00001 sekundit ehk saadame selle aja jooksul 8 40kHz helilainet nii: <code>time.sleep(0.00001)<\/code>. Ning l\u00fclitame TRIG n\u00f5ela v\u00e4lja: <code>GPIO.output(TRIG, False)<\/code><\/p>\n<p>Seej\u00e4rel m\u00f5\u00f5dame aega kaua l\u00e4heb, et ultrahelilained andurisse tagasi j\u00f5uavad. Selle jaoks loome kirjutame kodi, mis salvestab algus- ja l\u00f5puaja hetkeda vahel, kus ultrahelilaine ei ole tagasi j\u00f5udnud selle ajani kuni see on.<\/p>\n<p>Kood v\u00f5iks v\u00e4lja n\u00e4ha n\u00e4iteks j\u00e4rgmine:<\/p>\n<p><code>while(GPIO.input(ECHO)==0):<\/code><\/p>\n<p><code>\u00a0 \u00a0 start = time.time()<\/code><\/p>\n<p><code>while(GPIO.input(ECHO)==1):<\/code><\/p>\n<p><code>\u00a0 \u00a0 end = time.time()<\/code><\/p>\n<p><code>kestus = end - start<\/code><\/p>\n<p>Viimane muutuja, mille me l\u00f5ime salvestas aja kahe signaali vahel. J\u00e4rgnevalt peame aja konverteerima kauguseks. Teame, et kiirus = distants \/ ajaga. Heli kiirus on 343 m\/s ehk 34300 cm\/s. Kuna ultraheli signaal l\u00e4bis tee edasi ja tagasi objekti vahel siis peame aja jagama kahega. Teisendades saame, et distants = ajakulu * 17150. Seega kirjutame koodirea: <code>distants = round((kestus * 17150),<\/code> 2).<\/p>\n<p>Viimaseks sammuks tr\u00fcki tulemus ekraanile. Kas toimis?<\/p>\n","protected":false},"author":34,"menu_order":5,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-1482","chapter","type-chapter","status-web-only","hentry"],"part":1419,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapters\/1482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/wp\/v2\/users\/34"}],"version-history":[{"count":19,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapters\/1482\/revisions"}],"predecessor-version":[{"id":1546,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapters\/1482\/revisions\/1546"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/parts\/1419"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapters\/1482\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/wp\/v2\/media?parent=1482"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/pressbooks\/v2\/chapter-type?post=1482"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/wp\/v2\/contributor?post=1482"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/lisamoodulid\/wp-json\/wp\/v2\/license?post=1482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}