Turinys:

Naršyklės valdomas „Roomba“robotas su „Raspberry Pi“modeliu 3 A+: 6 žingsniai (su nuotraukomis)
Naršyklės valdomas „Roomba“robotas su „Raspberry Pi“modeliu 3 A+: 6 žingsniai (su nuotraukomis)

Video: Naršyklės valdomas „Roomba“robotas su „Raspberry Pi“modeliu 3 A+: 6 žingsniai (su nuotraukomis)

Video: Naršyklės valdomas „Roomba“robotas su „Raspberry Pi“modeliu 3 A+: 6 žingsniai (su nuotraukomis)
Video: Interneto naršyklės android telefonuose 2024, Lapkritis
Anonim
Naršyklės valdomas „Roomba“robotas su „Raspberry Pi Model 3 A+“
Naršyklės valdomas „Roomba“robotas su „Raspberry Pi Model 3 A+“
Naršyklės valdomas „Roomba“robotas su „Raspberry Pi Model 3 A+“
Naršyklės valdomas „Roomba“robotas su „Raspberry Pi Model 3 A+“

Apžvalga

Šioje instrukcijoje pagrindinis dėmesys bus skiriamas mirusiai Roombai suteikti naujas smegenis (Raspberry Pi), akis (internetinė kamera) ir būdą, kaip viską valdyti naudojant žiniatinklio naršyklę.

Yra daug „Roomba“įsilaužimų, kuriuos galima valdyti naudojant serijinę sąsają. Man nepasisekė sutikti „Roomba“, kurioje yra dabartinė programinė įranga arba veikianti pagrindinė plokštė. Arba „Roomba“yra per sena, arba „Roomba“yra mirusi. „Roomba“, kurį naudoju šiam projektui, radau vietinėje taupių prekių parduotuvėje už 5 USD. Jis vis dar turėjo neblogą bateriją, bet neveikiančią pagrindinę plokštę. (Aš taip pat radau internetinę kamerą toje pačioje dėvėtų prekių parduotuvėje už maždaug 5 USD). Viskas, ką naudoju iš originalios „Roomba“, yra varikliai, važiuoklė ir akumuliatorius. Šiam projektui jums nereikia naudoti „Roomba“. Jei norite, galite naudoti skirtingus variklius, ratus ir važiuoklę. Man tiesiog norėtųsi, kad šiukšlių gabalas taptų naudingu.

Šiai konstrukcijai naudojau „Raspberry Pi Model 3 A+“ir „Riorand“variklio valdiklį. Aš naudoju kodą iš „Dexter Industries“naršyklės valdomo roboto, kurį pakeičiau. „Dexter Industries“versija nustato „Pi“kaip žiniatinklio lizdo serverį, leidžiantį valdyti jų robotą (plytų pi platformą) iš kliento html failo, kuriame veikia kitas kompiuteris.

Aš pakeičiau kodą naudodamas GPIO kaiščius ir pridėjau būdą, kaip „Pi“išsijungs, kai paspaudžiamas mygtukas / kai naršyklėje paspaudžiamas pabėgimo klavišas. Taip pat padariau keletą pakeitimų valdymo tinklalapyje, kad būtų galima peržiūrėti judesio srautą per „iframe“, o visą robotą valdyti viename puslapyje. Aš nustatiau „Pi“su statiniu IP, kad priglobtų kliento failą, kad galėčiau prisijungti naudodami bet kurį savo tinklo kompiuterį ar įrenginį.

Aš čia dokumentuoju procesą, tikėdamasis parodyti, kaip sukurti paprastą, nebrangų bazinį robotą.

Naudotos dalys

„Raspberry Pi 3 A+“(„Adafruit Link“) 30 USD

„Riorand“dviejų variklių vairuotojo valdiklis „H-Bridge“(„Amazon Link“) 22 USD

12 V variklių baterija („Amazon Link“) 19 USD

5 V baterija „Raspberry Pi“(„Amazon Link“) 10 USD

8 GB „Micro SD“kortelė („Amazon Link“) 5 USD

„Jumper Wires“(„Amazon Link“) 7 USD

„Roomba 500“serija

. Viskas kartu kiek mažiau nei 100 USD.

1 veiksmas: įdiekite „Raspbian“ir nustatykite statinį IP adresą

Įdiekite „Raspbian“ir nustatykite statinį IP adresą
Įdiekite „Raspbian“ir nustatykite statinį IP adresą

Naudojau Raspbian Stretch Lite. Nematau darbastalio poreikio, bet jei norite, galite įdiegti darbalaukio versiją.

Manau, kad jūs jau žinote, kaip įdiegti „Raspbian“. Jei jums reikia pagalbos, Raspberry Pi Foundation vadovą rasite čia.

Paleidę „Raspbian“, prisijunkite ir paleiskite raspi-config programą.

pi@raspberrypi: ~ $ sudo raspi-config

Nustatykite „WiFi“ryšį raspi-config

Pasirinkite

2 Tinklo parinktys

Pasirinkite

N2 „Wi-Fi“

Pasirinkite šalį, įveskite savo SSID ir įveskite savo slaptafrazę

Nustatykite SSH raspi-config

Kai padariau pradinę konfigūraciją, aš naudoju SSH, kad nustatyčiau viską be galvos. (Galite praleisti tai, jei naudojate monitorių. Man buvo lengviau pakeisti kodą, nesustabdžius roboto ir prijungus jį prie monitoriaus.)

Grįžkite į pagrindinį raspi-config meniu

Pasirinkite

5 sąsajos parinktys

Pasirinkite

P2 SSH

Pasirinkite

Taip

Grįžę į pagrindinį raspi-config meniu pasirinkite

Patikrinkite, ar esate prisijungę prie savo tinklo

pi@raspberrypi: ~ $ ifconfig

Turėtumėte gauti panašų rezultatą. (Atkreipkite dėmesį į IP adresą; jums gali prireikti vėliau. Pvz., 192.168.1.18)

wlan0: vėliavos = 4163 mtu 1500

inet 192.168.1.18 tinklo kaukė 255.255.255.0 transliacija 192.168.1.255 inet6 fe80:: c74f: 42ec: 8cd3: 2fda priešdėlis 64 scaleid 0x20 eteris b8: 27: eb: 6a: a4: 95 txqueuelen 1000 (Ethernet) RX paketai 44396 baitai 5847726 (5.5 MiB) RX klaidos 0 sumažėjo 0 viršijimų 0 kadrų 0 TX paketai 30530 baitų 39740576 (37,8 MiB) TX klaidos 0 sumažėjo 0 viršijimai 0 vežėjas 0 susidūrimų 0

Patikrinkite, ar galite pasiekti internetą.

pi@raspberrypi: ~ $ ping google.com

Turėtumėte gauti panašų rezultatą.

PING google.com (216.58.194.110) 56 (84) baitai duomenų.

64 baitai iš dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 1 ttl = 54 laikas = 18,2 ms 64 baitai iš dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 2 ttl = 54 laikas = 19,4 ms 64 baitai iš dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 3 ttl = 54 laikas = 23,6 ms 64 baitai iš dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 4 ttl = 54 laikas = 30,2 ms ^C --- google.com ping statistika --- 4 perduoti paketai, 4 gauti, 0% paketo praradimas, laikas 3004 ms rtt min/avg/max/mdev = 18.209/ 22,901/30,267/4,715 ms

Nustatykite statinį IP

Kad galėtumėte nuolat prisijungti prie savo roboto naudodami tą patį tinklo adresą, norėsite nustatyti statinį IP.

Gaukite dabartinį tinklo adresą, pvz., 192.168.1.18

Aš naudoju adresą, kurį automatiškai priskyrė DHCP, kai „Pi“prisijungė prie mano tinklo. Tai galite pakeisti į tai, kas jums patinka, jei tik ji atitinka jūsų tinklą ir neprieštarauja jokiems kitiems priskirtiems adresams.

Teksto redaktoriuje atidarykite dhcp.conf. (Naudoju nano)

pi@raspberrypi: ~ $ sudo nano /etc/dhcpcd.conf

Slinkite žemyn iki #Example statinė IP konfigūracija ir pakeiskite šias eilutes.

#sąsaja eth0

#static ip_address = 192.168.11.13 #static routers = 192.168.11.1 #static domain_name_servers = 192.168.11.1 8.8.8.8

Pakeiskite, kad atitiktų jūsų tinklą, ir kiekvienos eilutės pradžioje pašalinkite #.

Pavyzdys:

sąsaja wlan0

static ip_address = 192.168.1.18 statiniai maršrutizatoriai = 192.168.1.1 statinis domeno_vardo_serveriai = 192.168.1.1 8.8.8.8

Išsaugoti ir išeiti.

Perkraukite ir prisijunkite prie „Pi“per SSH

pi@raspberrypi: ~ $ sudo perkraukite

Prisijunkite iš kito kompiuterio naudodami SSH. „Windows“vartotojai gali naudoti „PuTTY“arba „Windows“posistemę, skirtą „Linux“(„Windows10“).

ian@kompiuteris: ~ $ ssh [email protected]

Įveskite slaptažodį (numatytasis yra aviečių).

[email protected] slaptažodis:

Dabar turėtumėte būti savo Pi komandinėje eilutėje.

pi@raspberrypi: ~ $

2 veiksmas: įdiekite ir sukonfigūruokite judesį

Įdiekite ir sukonfigūruokite judesį
Įdiekite ir sukonfigūruokite judesį

„Motion“yra programa, naudojama daugelyje apsaugos kamerų / internetinių kamerų projektų. Judėjimas turi daug funkcijų. Tačiau mes nustatome, kad tiesiog transliuotume vaizdo įrašą iš žiniatinklio kameros į 8081 prievadą.

Išbandykite savo internetinę kamerą

Prijunkite savo internetinę kamerą ir išvardykite prijungtus USB įrenginius (prisijungus gali tekti iš naujo paleisti).

pi@raspberrypi: ~ $ lsusb

Turėtumėte gauti panašų rezultatą. Atkreipkite dėmesį į „Logitech C210“.

Autobusas 001 Įrenginys 002: ID 046d: 0819 „Logitech, Inc.“žiniatinklio kamera C210

001 magistralė Įrenginys 001: ID 1d6b: 0002 „Linux Foundation 2.0“šakninis centras

Jei fotoaparatas nerodomas, jis gali būti nesuderinamas arba gali tekti įdiegti papildomas tvarkykles.

Įdiekite „Motion“

Atnaujinkite paketus.

pi@raspberrypi: ~ $ sudo apt-get update

Įdiekite „Motion“.

pi@raspberrypi: ~ $ sudo apt -get install motion -y

Įdiegę „Motion“, redaguokite konfigūracijos failą.

pi@raspberrypi: ~ $ sudo nano /etc/motion/motion.conf

Pakeiskite toliau pateiktas eilutes, kad jos atitiktų toliau pateiktas.

demonas įjungtas

plotis 640 aukštis 480 kadrų dažnis 100 išvesties_fotografijos išjungtos ffmpeg_output_movies off text_right stream_port 8081 stream_quality 100 stream_localhost off webcontrol_localhost off

Paleiskite „Motion Daemon“įkrovos metu

Atidarykite failą/etc/default/motion.

pi@raspberrypi: ~ $ sudo nano/etc/default/motion

Pakeisti į

start_motion_daemon = taip

Išsaugokite failą ir išeikite

Perkraukite

pi@raspberrypi: ~ $ sudo perkraukite

Kai „Pi“iš naujo paleidžiamas, atidarykite naršyklę ir patikrinkite, ar turite vaizdo transliaciją į 8081 prievado naršyklę

Pavyzdys:

192.168.1.18:8081

„Motion Daemon“trikčių šalinimas

Išbandžiau įvairias failo „motion.conf“parinktis, kai pradėjau paleisti judesio demoną paleidžiant.

Jei pradėsite judėti prieš „Raspian Stretch“judėjimo demoną, greičiausiai susidursite su problemomis, kad vėliau jis prasidėtų įkrovos metu. Vykdant „sudo motion“, nesukonfigūravus demono, jis pirmiausia sukuria katalogą/var/log/motion nesuteikdamas naudotojui rašymo leidimo.

3 veiksmas: įdiekite „Apache“ir nustatykite žiniatinklio valdymo puslapį

Įdiekite „Apache“ir nustatykite žiniatinklio valdymo puslapį
Įdiekite „Apache“ir nustatykite žiniatinklio valdymo puslapį

„Apache“yra roboto valdymo tinklalapio žiniatinklio serveris. Mes pakeisime numatytąjį „Apache index.html“failą į failą, atsisiųstą iš „github“. Taip pat pakeisite kelias kodo eilutes, kad būtų rodomas judesio vaizdo srautas, ir priskiriate, kur siųsti komandas, skirtas robotui valdyti.

Įdiekite „Apache“ir „Git“

pi@raspberrypi: ~ $ sudo apt -get install apache2 git -y

Įdiegę apache ir git atsisiųskite failus.

pi@raspberrypi: ~ $ git klonas

Atidarykite „roombarobot“katalogą.

pi@raspberrypi: ~ $ cd roombarobot

Pakeiskite failą index.html aplanke/var/www/html į failą index.html, esantį/home/pi/roombarobot

pi@raspberrypi: ~/roombarobot $ sudo cp index.html/var/www/html

Redaguokite failą index.html

Atidarykite failą index.html naudodami teksto rengyklę.

pi@raspberrypi: ~/roombarobot $ sudo nano /var/www/html/index.html

Raskite šias dvi eilutes

var host = "ws: // JŪSŲ ADRESAS: 9093/ws";

Pakeiskite „YOURIPADDRESS“į statinį IP adresą, kurį nustatėte atlikdami 1 veiksmą, ir išsaugokite failą.

Pavyzdys:

var host = "ws: //192.168.1.18: 9093/ws";

Kitame kompiuteryje atidarykite naršyklę ir įveskite „Pi“IP adresą. Turėtumėte matyti valdymo tinklalapį su langeliu kairėje, vaizdo transliaciją iš savo kameros ir žiniatinklio valdymo mygtukus dešinėje.

4 žingsnis: nustatykite ir išbandykite kodą

Nustatykite ir išbandykite kodą
Nustatykite ir išbandykite kodą

Šis kodas parašytas python ir jam reikalinga tornado biblioteka. Kodas naudoja biblioteką, kad nustatytų serverį, kuris klausytų komandų iš valdymo tinklalapio per 9093 prievado žiniatinklio lizdus.

Įdiekite PIP ir „Tornado“biblioteką

Įdiekite pip

pi@raspberrypi: ~ $ sudo apt-get install python-pip

Įdiekite tornado biblioteką

pi@raspberrypi: ~ $ sudo pip install tornado

Paleiskite „Roombabot“programą ir išbandykite ryšį

Paleiskite „roombabot.py“programą

pi@raspberrypi: ~ $ sudo python /home/pi/roombarobot/roombabot.py

Kai paleisite, terminale turėtumėte pamatyti „Ready“. Naršyklėje atidarykite valdymo tinklalapį ir spustelėkite prisijungti. Tada spustelėkite bet kurį kryptinį puslapio mygtuką. Taip pat galite naudoti klaviatūros rodyklių klavišus.

Terminale turėtumėte pamatyti išvestį, panašią į šią.

Paruošta

ryšys atidarytas… ryšys atidarytas… gautas: u 8 Veikiamas ryšys į priekį atidarytas… gautas: l 6 Pasukimas į kairę jungtis atidaryta… gautas: d 2 Veikia atbulinis ryšys atidarytas … gautas: r 4 Pasukimas į dešinę

Norėdami sustabdyti programą, paspauskite ctrl+c.

Baigę išbandyti „Pi“maitinimą.

pi@raspberrypi: ~ $ sudo išjungimas

Klaidų

Pastebėjau valdymo tinklalapio išjungimo mygtuko problemą. Kartais išjungimo mygtukas nieko nedaro spustelėjus ar palietus. Man nepavyko išsiaiškinti, kas tai sukelia, bet yra sprendimas. Jei norite išjungti robotą ir išjungimo mygtukas neveikia, iš naujo įkelkite puslapį, spustelėkite / bakstelėkite prisijungimo mygtuką, tada spustelėkite / bakstelėkite išjungimo mygtuką. Jis turėtų išsijungti.

5 žingsnis: Surinkimas

Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas

Kaip minėta anksčiau, šiam projektui nereikia naudoti „Roomba“. Veiktų viskas, kas turi du variklius, du ratus ir rėmą. Išardžiau „Roomba“ir išėmiau viską, išskyrus ratų modulius ir akumuliatorių.

Ratų moduliai

„Roomba“ratai ir varikliai yra kartu nuimamame modulyje. Kiekvienas modulis turi mėlyną išorinį korpusą, kuriame yra variklis, pavarų dėžė, ratas, pakabos spyruoklė ir sąsajos plokštė.

Sąsajos lenta

Kiekvienoje sąsajos plokštėje yra šeši laidai. Yra du laidai (raudona [+], juoda [-]), sukantys variklį, vienas duomenų laidas, skirtas salės efekto jutikliui, vienas laidas rato kritimo jungikliui, vienas 5 V laidas ir vienas GND laidas jutikliui maitinti. Norėdami pasiekti sąsajos plokštę, turėsite išardyti modulį. Nuėmiau viską atgal į variklį ir lituosiu naujus [+] ir [-] laidus prie variklio (žr. Nuotraukas). Tik nuo jūsų priklauso, ar norite išsaugoti jutiklius, ar ne.

Pakabos spyruoklės

Nuėmus vakuuminę dalį, „Roomba“svoris nukris. Jei nepašalinsite spyruoklių, „Roomba“sėdės kampu. Iš pradžių juos pašalinau, bet tada vėl pridėjau, kai radau, kad sunku apvirsti kilimą. Užvedus spyruoklę problema išspręsta.

Variklių prijungimas prie variklio valdiklio

Varikliai nukreipti vienas nuo kito. Tai reiškia, kad norint varyti „Roomba“į priekį, vienas variklis turės suktis į priekį, o kitas - atgal. Aš daug apie tai negalvojau, kol viską sutvarkiau. Galų gale aš tiesiog parašiau kodą, kaip iš pradžių prijungiau variklius. Tai buvo laiminga nelaimė, nes kiekvieną kartą, kai „Raspberry Pi“įjungiamas/išjungiamas, GPIO kaiščiai išvedami į įtampą. Kaip aš turiu prijungti dalykus, „Roomba“sukasi tol, kol „Raspberry Pi“neįsijungia (apie trisdešimt sekundžių) ir sukasi, kai išjungiama, kol bus atjungtas maitinimas. Jei laidas būtų prijungtas kitaip, jis galėtų riedėti į priekį / atgal, o tai erzintų. Galų gale planuoju tai išspręsti paprastu variklio valdiklio jungikliu.

Variklių ir akumuliatoriaus prijungimas prie variklio valdiklio

Maitinimas - - - - - - - - - - - - - - - - 12V [+] - - - - - - - - - - - - - „Roomba“baterija [+]

Variklis 2- - - - - - - - - - - - - - - - Juodas - - - - - - - - - - - - - - Kairysis variklis [-] Variklis 2- - - - - - - - - - - - - - - - Raudona- - - - - - - - - - - - - - - Kairysis variklis [+] Variklis 1- - - - - - - - - - - - - - - Juodas - - - - - - - - - - - - - - Dešinysis variklis [-] 1 variklis - - - - - - - - - - - - - - - - Raudonas - - - - - - - - - - - - - - Dešinysis variklis [+] GND- - - - - - - - - - - - - - - - - 12V [-] - - - - - - - - - - - - -Roomba baterija [-]

Variklio valdiklio prijungimas prie „Raspberry Pi“

Variklio valdiklio kaiščių vielos spalva (žr. Nuotraukas) „Raspberry Pi“kaiščiai

GND- - - - - - - - - - - - - - - - - Juoda - - - - - - - - - - - - - - - GND PWM 2- - - - - - - - - - - - - - - - - - - - mėlyna - - - - - - - - - - - - - -GPIO 18 DIR 2- - - - - - - - - - - - - - - - - Žalia - - - - - - - - - - - - - - -GPIO 23 PWM 1- - - - - - - - - - - - - - - Geltona - - - - - - - - - - - - -GPIO 24 DIR 1- - - - - - - - - - - - - - - - oranžinė - - - - - - - - - - - - -GPIO 25 5V - - - - - - - - - - - - - - - - - - Raudona - - - - - - - - - - - - - - -5V

Elektronikos montavimas

Nelabai daug reikia viską sudėti. Nubraukiau „roomba“važiuoklę. Nuėmę dangtelį, galite lengvai nukirpti esamas plastikines atramas ir gręžti skyles, kad pritvirtintumėte elektroniką. Yra esamų prievadų kabeliams iš variklių įvesti. Jei naudojate atsarginę „Roomba“bateriją, jau yra išjungimo prieiga prie akumuliatoriaus gnybtų.

Baterijos

„Raspberry Pi“ir variklio valdikliui naudojau atskiras baterijas. „Pi“baterija yra tik 5 V baterija, naudojama mobiliesiems telefonams padidinti. Variklio valdikliui naudojau originalią „Roomba“bateriją, kuri buvo pridedama. Akumuliatoriaus gnybtai nėra paženklinti, todėl geriausia patikrinti įtampą voltmetru prieš prijungiant prie variklio valdiklio. Norėdami prijungti laidus prie „Roomba“akumuliatoriaus, naudojau keturis neodimio magnetus (žr. Nuotraukas). Lituodavau du magnetus prie laidų, o kitus du prilipdavau prie akumuliatoriaus gnybtų. Lituoti magnetai išmagnetina. Tačiau išorėje esanti danga vis dar gali prisitvirtinti prie gnybtų magnetų ir praleisti elektrą. Dėl to akumuliatoriaus prijungimas ir atjungimas yra pyragas.

Testavimas

Kai viskas bus suderinta, patikrinkite, ar viskas tinkamai prijungta, atremkite robotą į kažką (kad jis nenuslystų) ir įjunkite.

Prisijunkite ir paleiskite „roombabot.py“programą

pi@raspberrypi: ~ $ sudo python /home/pi/roombarobot/roombabot.py

Eikite į žiniatinklio valdymo puslapį ir išbandykite. Jei viskas tinkamai prijungta, ratai turėtų suktis atitinkama kryptimi, kai paspaudžiami mygtukai / paspaudžiami rodyklių klavišai (nepamirškite spustelėti prisijungti).

6 veiksmas: paleiskite „Python“kodą įkrovos metu / baigdami

Python kodo paleidimas paleidžiant / baigiant
Python kodo paleidimas paleidžiant / baigiant
Python kodo paleidimas paleidžiant / baigiant
Python kodo paleidimas paleidžiant / baigiant

Paskutinis dalykas, kurį turime padaryti, yra liepti „Raspbian“paleisti „python“programą paleidžiant. Norėdami tai padaryti, mes sudarysime scenarijų ir suplanuosime, kad jis būtų paleistas iš naujo, naudojant „crontab“.

Sukurkite scenarijų

Pi vartotojo kataloge sukurkite naują scenarijaus failą, pavadintą startrobot.sh

pi@raspberrypi: ~ $ sudo nano startrobot.sh

Nukopijuokite šias eilutes į failą

#!/bin/sh

#startrobot.sh cd /cd /home /pi /roombarobot sudo python roombabot.py cd /

Išsaugokite failą ir išeikite

Padarykite failą startrobot.sh vykdomąjį

pi@raspberrypi: ~ $ sudo chmod 755 startrobot.sh

Išbandykite (paspauskite ctrl + c, kad sustabdytumėte)

pi@raspberrypi: ~ $ sh startrobot.sh

Redaguokite „crontab“failą

pi@raspberrypi: ~ $ sudo crontab -e

Failo apačioje pridėkite šią eilutę

# m h dom mon dow komanda

@reboot sh /home/pi/startrobot.sh

Išsaugoti ir išeiti

Programa roombabot.py dabar turėtų prasidėti, kai „Pi“bus paleistas iš naujo arba įjungtas ciklas.

Užbaigimas

Šiuo metu turėtumėte turėti funkcionalų robotą, kurį galite valdyti naudodami naršyklę iš bet kurio tinklo įrenginio. Aš padariau tai šiek tiek toliau nuo to laiko, kai pradinis VPN kūrimas ir konfigūravimas, kad galėčiau pasiekti robotą būdamas toli nuo namų. Ateityje ketinu atlikti keletą papildomų pakeitimų. Aš planuoju padaryti jį autonomišku ir galbūt sekti judėjimą, vis dar galėdamas perimti valdymą, kai noriu.

Rekomenduojamas: