Բովանդակություն:

Դիտարկիչով վերահսկվող Roomba ռոբոտը Raspberry Pi Model 3 A+: 6 քայլով (նկարներով)
Դիտարկիչով վերահսկվող Roomba ռոբոտը Raspberry Pi Model 3 A+: 6 քայլով (նկարներով)

Video: Դիտարկիչով վերահսկվող Roomba ռոբոտը Raspberry Pi Model 3 A+: 6 քայլով (նկարներով)

Video: Դիտարկիչով վերահսկվող Roomba ռոբոտը Raspberry Pi Model 3 A+: 6 քայլով (նկարներով)
Video: Ինչո՞ւ է ձախողվում COVID-19-ի դեմ պայքարը. պատճառներ 2024, Նոյեմբեր
Anonim
Դիտարկիչով վերահսկվող Roomba ռոբոտը Raspberry Pi Model 3 A+ - ով
Դիտարկիչով վերահսկվող Roomba ռոբոտը Raspberry Pi Model 3 A+ - ով
Դիտարկիչով վերահսկվող Roomba ռոբոտը Raspberry Pi Model 3 A+ - ով
Դիտարկիչով վերահսկվող Roomba ռոբոտը Raspberry Pi Model 3 A+ - ով

Ակնարկ

Այս Instructable- ը կկենտրոնանա, թե ինչպես մահացած Roomba- ին տալ նոր ուղեղ (Raspberry Pi), աչքեր (Webcam) և վեբ դիտարկիչից ամեն ինչ վերահսկելու միջոց:

Կան շատ Roomba հաքեր, որոնք թույլ են տալիս վերահսկել սերիական ինտերֆեյսի միջոցով: Ինձ այնքան բախտ չի վիճակվել հանդիպել Roomba- ին, որն ունի ընթացիկ որոնվածը կամ աշխատող մայր տախտակ: Կամ Roomba- ն շատ հին է, կամ Roomba- ն մահացած է: Այս նախագծի համար օգտագործած Roomba- ն գտա տեղական մանրածախ առևտրի աղբարկղում ՝ 5 դոլարով: Այն դեռ ուներ արժանապատիվ մարտկոց, բայց մեռած մայր տախտակ: (Ես գտա նաև տեսախցիկը նույն խնայողությունների խանութում ՝ մոտ 5 դոլարով): Օրիգինալ Roomba- ից ես օգտագործում եմ շարժիչները, շասսին և մարտկոցը: Այս նախագծի համար պարտադիր չէ Roomba օգտագործել: Եթե ցանկանում եք, կարող եք օգտագործել տարբեր շարժիչներ, անիվներ և շասսի: Ես պարզապես նախընտրում եմ աղբի մի կտոր դարձնել օգտագործելի բանի:

Այս կառուցվածքի համար ես օգտագործեցի Raspberry Pi Model 3 A+ և Riorand շարժիչի վերահսկիչ: Ես օգտագործում եմ Dexter Industries Browser Controlled Robot- ի կոդը, որը ես փոփոխել եմ: Dexter Industries- ի տարբերակը ստեղծում է Pi- ն որպես ցանցային սերվեր, որը թույլ է տալիս վերահսկել իրենց ռոբոտը (brick pi հարթակ) հաճախորդի այլ համակարգչով աշխատող html ֆայլից:

Ես փոխել եմ GPIO կապում օգտագործված ծածկագիրը և ավելացրել եմ, որ Pi- ն կարող է անջատվել, երբ կոճակը սեղմվում է / երբ փախուստի բանալին սեղմվում է բրաուզերում: Ես նաև որոշ փոփոխություններ կատարեցի կառավարման վեբ էջում ՝ թույլ տալով դիտել շարժման հոսք iframe- ի միջոցով ՝ միաժամանակ վերահսկելով ռոբոտին մեկ էջում: Ես Pi- ն ստեղծեցի ստատիկ IP- ով ՝ հաճախորդի ֆայլը հյուրընկալելու համար, որպեսզի կարողանամ միանալ ՝ օգտագործելով իմ ցանցի ցանկացած համակարգիչ կամ սարք:

Ես այստեղ փաստագրում եմ գործընթացը `հույս ունենալով ցույց տալ, թե ինչպես ստեղծել պարզ, էժան բազային ռոբոտ:

Օգտագործված մասեր

Raspberry Pi 3 A+ (Adafruit Link) 30 դոլար

Riorand Dual Motor Driver Controller H-Bridge (Amazon Link) 22 դոլար

12 Վ մարտկոց շարժիչների համար (Amazon Link) 19 դոլար

5V մարտկոց Raspberry Pi- ի համար (Amazon Link) 10 դոլար

8 ԳԲ Micro SD քարտ (Amazon Link) $ 5

Jumper Wires (Amazon Link) 7 դոլար

Roomba 500 սերիա

. Բոլորն ընդամենը 100 դոլարից պակաս:

Քայլ 1: Տեղադրեք Raspbian և տեղադրեք ստատիկ IP հասցե

Տեղադրեք Raspbian և տեղադրեք ստատիկ IP հասցե
Տեղադրեք Raspbian և տեղադրեք ստատիկ IP հասցե

Ես օգտագործեցի Raspbian Stretch Lite- ը: Ես աշխատասեղանի կարիք չեմ տեսել, բայց եթե նախընտրում եք, կարող եք տեղադրել աշխատասեղանի տարբերակը:

Ես պատրաստվում եմ ենթադրել, որ դուք արդեն գիտեք, թե ինչպես տեղադրել Raspbian- ը: Եթե օգնության կարիք ունեք, կարող եք գտնել Raspberry Pi Foundation- ի ուղեցույցը այստեղ:

Երբ Raspbian- ը գործարկվի, մուտք գործեք և գործարկեք raspi-config ծրագիրը:

pi@raspberrypi: su $ sudo raspi-config

Կարգավորեք ձեր WiFi կապը raspi-config- ում

Ընտրել

2 Networkանցի ընտրանքներ

Ընտրել

N2 Wi-Fi

Ընտրեք երկիր, մուտքագրեք ձեր SSID- ը և մուտքագրեք ձեր անցաբառը

SSH- ի տեղադրում raspi-config- ում

Երբ ես կատարեցի սկզբնական կազմաձևը, ես SSH- ի միջոցով ամեն ինչ անգլուխ կարգաբերեցի: (Դուք կարող եք բաց թողնել սա, եթե օգտագործում եք մոնիտոր: Ինձ համար ավելի հեշտ էր փոփոխություններ կատարել ծածկագրում ՝ առանց ռոբոտին կանգնեցնելու և այն մոնիտորի մեջ միացնելու):

Վերադառնալ raspi-config հիմնական ընտրացանկին

Ընտրել

5 Ինտերֆեյսերի ընտրանքներ

Ընտրել

P2 SSH

Ընտրել

Այո

Վերադառնալով raspi-config հիմնական ընտրացանկին, ընտրեք

Հաստատեք, որ միացված եք ձեր ցանցին

pi@raspberrypi: ~ $ ifconfig

Դուք պետք է ստանաք նման ելք: (Նկատի ունեցեք IP հասցեն. Ձեզ կարող է դա անհրաժեշտ լինել ավելի ուշ: օր. 192.168.1.18)

wlan0: դրոշներ = 4163 mtu 1500

inet 192.168.1.18 ցանցային դիմակ 255.255.255.0 հեռարձակում 192.168.1.255 inet6 fe80:: c74f: 42ec: 8cd3: 2fda նախածանց 64 շրջանակ 0x20 եթեր b8: 27: եբ: 6a: a4: 95 txqueuelen 1000 (Ethernet) RX փաթեթներ 44396 բայթ 5.5 MiB) RX սխալներ 0 նվազել են 0 գերազանցում են 0 շրջանակներ 0 TX փաթեթներ 30530 բայթ 39740576 (37.8 MiB) TX սխալներ 0 նվազել են 0 գերազանցում են 0 կրիչ 0 բախումներ 0

Ստուգեք, որ կարող եք միանալ ինտերնետին:

pi@raspberrypi: ~ $ ping google.com

Դուք պետք է ստանաք նման ելք:

PING google.com (216.58.194.110) 56 (84) բայթ տվյալներ:

64 բայթ dfw06s48-in-f14.1e100.net (216.58.194.110). Icmp_seq = 1 ttl = 54 ժամանակ = 18.2 ms 64 բայթ dfw06s48-in-f14.1e100.net (216.58.194.110). Icmp_seq = 2 ttl = 54 անգամ = 19.4 մս 64 բայթ dfw06s48-in-f14.1e100.net (216.58.194.110.net): icmp_seq = 3 ttl = 54 ժամանակ = 23.6 ms 64 բայթ dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 4 ttl = 54 անգամ = 30.2 ms ^C --- google.com պինգ վիճակագրություն --- 4 փաթեթ փոխանցված, 4 ստացված, 0% փաթեթների կորուստ, ժամանակ 3004ms rtt min/avg/max/mdev = 18.209/ 22.901/30.267/4.715 ms

Ստեղծեք ստատիկ IP

Որպեսզի կարողանաք հետևողականորեն միանալ ձեր ռոբոտին ՝ օգտագործելով ձեր ցանցի նույն հասցեն, կցանկանաք ստեղծել ստատիկ IP:

Ստացեք ձեր ընթացիկ ցանցի հասցեն, օրինակ ՝ 192.168.1.18

Ես օգտագործում եմ հասցեն, որը ավտոմատ կերպով նշանակվել էր DHCP- ի կողմից, երբ Pi- ն միանում էր իմ ցանցին: Դուք կարող եք փոխել այն, ինչ ցանկանում եք, քանի դեռ այն համընկնում է ձեր ցանցի հետ և չի հակասում այլ նշանակված հասցեներին:

Բացեք dhcp.conf տեքստային խմբագրիչում: (Ես օգտագործում եմ նանո)

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

Ոլորեք ներքև դեպի #Օրինակ ստատիկ IP կազմաձևում և փոխեք հետևյալ տողերը:

#միջերես 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

Փոփոխեք ՝ ձեր ցանցին համապատասխանելու համար և հեռացրեք # -ը յուրաքանչյուր տողի սկզբում:

Օրինակ:

wlan0 ինտերֆեյս

ստատիկ ip_address = 192.168.1.18 ստատիկ երթուղիչներ = 192.168.1.1 ստատիկ տիրույթի_անուն_ սերվերներ = 192.168.1.1 8.8.8.8

Պահել և դուրս գալ:

Վերագործարկեք և միացեք Pi- ին SSH- ի միջոցով

pi@raspberrypi: su $ sudo վերագործարկում

Միացեք այլ համակարգչից ՝ օգտագործելով SSH: Windows- ի օգտվողները կարող են օգտագործել PuTTY- ը կամ Windows- ի Linux- ի ենթահամակարգը (Windows10):

ian@համակարգիչ ՝ ~ $ ssh [email protected]

Մուտքագրեք ձեր գաղտնաբառը (կանխադրվածը ազնվամորին է):

[email protected] գաղտնաբառը:

Դուք այժմ պետք է լինեք ձեր Pi- ի հրամանի հուշում:

pi@raspberrypi: ~ $

Քայլ 2: Տեղադրեք և կազմաձևեք շարժումը

Տեղադրեք և կազմաձևեք շարժումը
Տեղադրեք և կազմաձևեք շարժումը

Motion- ը ծրագիր է, որն օգտագործվում է անվտանգության տեսախցիկների / տեսախցիկների նախագծերում: Շարժումը ունի բազմաթիվ առանձնահատկություններ: Այնուամենայնիվ, մենք այն կարգավորում ենք ՝ վեբ տեսախցիկից տեսանյութը պարզապես հոսելու համար դեպի 8081 նավահանգիստ:

Փորձարկեք ձեր տեսախցիկը

Միացրեք ձեր տեսախցիկը և նշեք միացված USB սարքերը (միացումից հետո գուցե անհրաժեշտ լինի վերագործարկել):

pi@raspberrypi: ~ $ lsusb

Դուք պետք է ստանաք նման ելք: Ուշադրություն դարձրեք Logitech C210- ին:

Ավտոբուս 001 Սարքը 002: ID 046d: 0819 Logitech, Inc. Տեսախցիկ C210

Ավտոբուս 001 Սարքը 001: ID 1d6b: 0002 Linux Foundation 2.0 արմատային հանգույց

Եթե ձեր տեսախցիկը չի երևում, այն կարող է համատեղելի չլինել կամ ձեզ անհրաժեշտ լինի տեղադրել լրացուցիչ վարորդներ:

Տեղադրեք շարժում

Թարմացրեք փաթեթները:

pi@raspberrypi: su $ sudo apt-get թարմացում

Տեղադրեք շարժում:

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

Երբ Motion- ը տեղադրվի, խմբագրեք կազմաձևման ֆայլը:

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

Փոխեք հետևյալ տողերը, որպեսզի դրանք համապատասխանեն ստորև:

դեյմոնը միացված է

լայնություն 640 բարձրություն 480 շրջանակի արագություն 100 ելքային_պատկեր ՝ անջատված ffmpeg_output_movies անջատված text_right stream_port 8081 հոսքի_ որակ

Սկսեք Motion Daemon- ը Boot- ում

Բացեք/etc/default/motion ֆայլը:

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

Փոխել

start_motion_daemon = այո

Պահպանեք ֆայլը և դուրս եկեք

Վերագործարկել

pi@raspberrypi: su $ sudo վերագործարկում

Pi- ի վերագործարկումից հետո բացեք զննարկիչը և հաստատեք, որ ձեր տեսանյութը դիտվում է դիտարկիչում 8081 նավահանգստում

Օրինակ:

192.168.1.18:8081

Motion Daemon- ի անսարքությունների վերացում

Ես բախվեցի այն բանին, որ շարժման դեմոն սկսվի բեռնախցիկից, մինչդեռ ես փորձում էի տարբեր տարբերակներ motion.conf ֆայլում:

Եթե դուք շարժում սկսեք Raspian Stretch- ում շարժման դեմոնից առաջ, ապա, ամենայն հավանականությամբ, խնդիրներ կունենաք, երբ այն ավելի ուշ սկսվի բեռնաթափման ժամանակ: «Sudo motion» - ի գործարկումը ՝ առանց դաոն կազմաձևելու, նախ ստեղծում է գրացուցակը/var/log/motion ՝ առանց օգտվողին գրելու թույլտվություն տալու:

Քայլ 3: Տեղադրեք Apache և կարգավորեք վեբ կառավարման էջը

Տեղադրեք Apache և կարգավորեք վեբ կառավարման էջը
Տեղադրեք Apache և կարգավորեք վեբ կառավարման էջը

Apache- ը ռոբոտի կառավարման վեբ էջի վեբ սերվեր է: Մենք պատրաստվում ենք փոխարինել կանխադրված Apache index.html ֆայլը github- ից ներբեռնված ֆայլով: Դուք նաև կփոխեք մի քանի տող ծածկագիր ՝ շարժման տեսահոսքը ցուցադրելու և նշանակելու, թե որտեղ պետք է ուղարկվեն ռոբոտին կառավարելու հրամանները:

Տեղադրեք Apache և Git

pi@raspberrypi: su $ sudo apt -get տեղադրել apache2 git -y

Apache- ի և git- ի տեղադրումից հետո ներբեռնեք ֆայլերը:

pi@raspberrypi: ~ $ git clone

Բացեք roombarobot գրացուցակը:

pi@raspberrypi: ~ $ cd roombarobot

Փոխարինեք index.html ֆայլը/var/www/html թղթապանակում index.html ֆայլով/home/pi/roombarobot- ում

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

Խմբագրել index.html ֆայլը

Բացեք index.html ֆայլը տեքստային խմբագրիչով:

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

Տեղադրեք այս երկու տողերը

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

Փոխեք «YOURIPADDRESS» - ը ստատիկ IP հասցեին, որը դուք կարգավորել եք Քայլ 1 -ում և պահպանեք ֆայլը:

Օրինակ:

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

Մեկ այլ համակարգչի վրա բացեք զննարկիչը և մուտքագրեք ձեր Pi- ի IP հասցեն: Դուք պետք է տեսնեք կառավարման վեբ էջը, որի ձախ կողմում կա տուփ, ձեր տեսախցիկից տեսանյութեր են հոսում, իսկ աջ կողմում ՝ վեբ կառավարման կոճակները:

Քայլ 4: Կարգավորեք և փորձարկեք ծածկագիրը

Կարգավորեք և փորձարկեք ծածկագիրը
Կարգավորեք և փորձարկեք ծածկագիրը

Այս կոդը գրված է պիթոնում և պահանջում է տորնադոյի գրադարան: Կոդն օգտագործում է գրադարանը `սերվեր ստեղծելու համար` 9093 նավահանգստի վեբ ցանցերի միջոցով կառավարման կայքէջից հրամաններ լսելու համար:

Տեղադրեք PIP- ը և Tornado գրադարանը

Տեղադրեք pip

pi@raspberrypi: su $ sudo apt-get տեղադրել python-pip

Տեղադրեք tornado գրադարան

pi@raspberrypi: ~ $ sudo pip տեղադրել tornado

Սկսեք Roombabot ծրագիրը և փորձարկեք կապը

Սկսեք roombabot.py ծրագիրը

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

Վազելուց հետո տերմինալում պետք է տեսնեք «Պատրաստ է»: Բացեք կառավարման վեբ էջը դիտարկիչում և կտտացրեք միանալ: Այնուհետև կտտացրեք էջի ցանկացած ուղղորդված կոճակ: Կարող եք նաև օգտագործել ստեղնաշարի սլաքների ստեղները:

Նման տերմինալում դուք պետք է տեսնեք ելք:

Պատրաստ է

կապը բացվեց… կապը բացվեց… ստացվեց ՝ u 8 Գործարկում Առաջ կապը բացվեց… ստացվեց. l 6 Շրջվեց Ձախ կապը բացվեց… ստացվեց: d 2 Գործարկեց Հակադարձ կապը բացվեց… ստացվեց. r 4 Աջ թեքում

Սեղմեք ctrl+c ծրագիրը դադարեցնելու համար:

Երբ ավարտեք Pi- ի հզորությունը փորձարկելը:

pi@raspberrypi: su $ sudo poweroff

Վրիպակներ

Ես նկատել եմ կառավարման վեբ էջի անջատման կոճակի խնդիր: Երբեմն անջատման կոճակը ոչինչ չի անում, երբ այն կտտացվում կամ թակվում է: Ես չեմ կարողացել պարզել, թե ինչն է դա պատճառում, բայց կա մի լուծում: Եթե ցանկանում եք անջատել ռոբոտը, և անջատման կոճակը չի աշխատում, վերաբեռնեք էջը, կտտացրեք / հպեք միացման կոճակին, այնուհետև կտտացրեք / հպեք անջատման կոճակին: Այն պետք է անջատվի:

Քայլ 5: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

Ինչպես արդեն նշվեց, այս նախագծի համար պարտադիր չէ Roomba օգտագործել: Երկու շարժիչ, երկու անիվ և շրջանակ ունեցող ցանկացած բան կաշխատի: Ես վերցրեցի Roomba- ն և հանեցի ամեն ինչ, բացի անիվի մոդուլներից և մարտկոցից:

Անիվի մոդուլներ

Roomba- ի անիվներն ու շարժիչները միասին տեղակայված են շարժական մոդուլում: Յուրաքանչյուր մոդուլ ունի կապույտ արտաքին պատյան, որը պարունակում է շարժիչը, փոխանցման տուփը, անիվը, կախոցի զսպանակը և միջերեսային տախտակը:

Ինտերֆեյսի տախտակ

Յուրաքանչյուր ինտերֆեյսի տախտակ ունի վեց լար, որոնք անցնում են դրան: Գոյություն ունեն երկու լարեր (Կարմիր [+], Սև [-]), որոնք պտտեցնում են շարժիչը, մեկ հաղորդալար ՝ սրահի էֆեկտի սենսորի համար, մեկ մետաղալար ՝ անիվի անկման անջատիչի համար, մեկ 5 Վ լար և մեկ GND մետաղալար ՝ սենսորը սնուցելու համար: Ինտերֆեյսի տախտակին մուտք գործելու համար դուք պետք է անջատեք մոդուլը: Ես ամեն ինչ ետ հանեցի շարժիչին և նոր [+] և [-] լարեր կպցրի շարժիչին (տես լուսանկարները): Ձեզանից է կախված ՝ ցանկանու՞մ եք պահպանել տվիչները, թե ոչ:

Կասեցման աղբյուրներ

Երբ հեռացնում եք վակուումային հատվածը, Roomba- ի քաշը նետվում է: Եթե դուք չեք հեռացնում աղբյուրները, Roomba- ն նստած կլինի անկյան տակ: Սկզբում ես դրանք հանեցի, բայց հետո նորից ավելացրի, երբ գտա, որ դժվարանում եմ գորգը գլորել: Springսպանակը հետ դնելով ՝ խնդիրը լուծվեց:

Շարժիչների միացում Motor Controller- ին

Շարժիչներն ուղղված են միմյանցից: Դա նշանակում է, որ Roomba- ն առաջ տանելու համար մեկ շարժիչը պետք է պտտվի առաջ, իսկ մյուսը ՝ հետ: Ես այնքան էլ չէի մտածում այս մասին, մինչև որ ամեն ինչ լարեցի: Ես ավարտեցի պարզապես կոդը գրել այն մասին, թե ինչպես եմ սկզբում միացրել շարժիչները: Սա ուրախալի պատահար էր, քանի որ երբ Raspberry Pi- ն միանում/անջատվում է, GPIO կապում լարման ելք կա: Ինչպես ես կարգավորում եմ ամեն ինչ, Roomba- ն պտտվում է մինչև Raspberry Pi- ի գործարկումը (մոտ երեսուն վայրկյան) և պտտվում է անջատումից հետո մինչև հոսանքի անջատումը: Եթե այլ կերպ լարված լիներ, այն պոտենցիալ կերպով կշրջվեր առաջ / հետ, ինչը նյարդայնացնող կլիներ: Ես նախատեսում եմ, ի վերջո, դա շտկել շարժիչի վերահսկիչի պարզ անջատիչով:

Շարժիչներն ու մարտկոցը միացրեք շարժիչի վերահսկիչին

Հզորություն - - - - - - - - - - - - - - - - 12V [+] - - - - - - - - - - - - - Ռոմբա մարտկոց [+]

Շարժիչ 2- - - - - - - - - - - - - - - - Սև- - - - - - - - - - - - - - ձախ շարժիչ [-] շարժիչ 2- - - - - - - - - - - - - - - Կարմիր- - - - - - - - - - - - - - - - Ձախ շարժիչ [+] Շարժիչ 1- - - - - - - - - - - - - - - - Սև - - - - - - - - - - - - - - Աջ շարժիչ [-] Շարժիչ 1- - - - - - - - - - - - - - - - կարմիր - - - - - - - - - - - - - - աջ շարժիչ [+] GND- - - - - - - - - - - - - - - - - - 12V [-] - - - - - - - - - - - - - - - Ռոմբայի մարտկոց [-]

Շարժիչի վերահսկիչի միացում Raspberry Pi- ին

Motor Controller Pins Wire Color (տես լուսանկարները) Ազնվամորի Pi կապում

GND- - - - - - - - - - - - - - - - - - Սև - - - - - - - - - - - - - GND PWM 2- - - - - - - - - - - - - - - - կապույտ - - - - - - - - - - - - - - GPIO 18 DIR 2- - - - - - - - - - - - - - - - - - կանաչ - - - - - - - - - - - - -GPIO 23 PWM 1- - - - - - - - - - - - - - - - - դեղին - - - - - - - - - - - - - - GPIO 24 DIR 1- - - - - - - - - - - - - - - - - Նարնջագույն - - - - - - - - - - - - - -GPIO 25 5V - - - - - - - - - - - - - - - - - - կարմիր - - - - - - - - - - - - - - -5 Վ

Էլեկտրոնիկայի տեղադրում

Շատ բան չկա, որ ամեն ինչ համատեղում է: Ես սենյակը հանեցի շասսիից: Հեռացնելով ծածկը, դուք հեշտությամբ կարող եք կտրել գոյություն ունեցող պլաստմասե փակուղիները և անցքեր փորել էլեկտրոնիկայի տեղադրման համար: Կան գոյություն ունեցող նավահանգիստներ շարժիչներից մալուխներ վարելու համար: Եթե դուք օգտագործում եք Roomba մարտկոցը, մարտկոցի տերմինալներին մուտք գործելու համար արդեն կա անջատում:

Մարտկոցներ

Ես առանձին մարտկոցներ օգտագործեցի Raspberry Pi- ի և շարժիչի վերահսկիչի համար: Pi- ի մարտկոցը ընդամենը 5 Վ մարտկոց է, որն օգտագործվում է բջջային հեռախոսների հզորացման համար: Շարժիչային վերահսկիչի համար ես օգտագործել եմ Roomba- ի օրիգինալ մարտկոցը, որն ուղեկցվել է դրանով: Մարտկոցի տերմինալները պիտակավորված չեն, ուստի ամենալավն այն է, որ լարումը ստուգեք վոլտմետրով, նախքան այն միացնելով շարժիչի վերահսկիչին: Roomba մարտկոցին լարերը ամրացնելու համար ես օգտագործեցի չորս նեոդիմի մագնիս (տես լուսանկարները): Ես մագնիսներից երկուսը կպցրի լարերին, իսկ մյուս երկուսը կպցրի մարտկոցի տերմինալներին: Sոդումը ապամագնիսացնում է մագնիսները: Այնուամենայնիվ, արտաքին ծածկույթը դեռ կարող է կցվել տերմինալների մագնիսներին և անցկացնել էլեկտրաէներգիա: Սա մարտկոցը միացնելն ու անջատելը դարձնում է տորթի կտոր:

Փորձարկում

Երբ ամեն ինչ միասին ունենաք, ստուգեք, որ ամեն ինչ ճիշտ է միացված, ձեր ռոբոտին հենեք ինչ -որ բանի վրա (այնպես, որ այն չի գլորվում) և միացրեք այն:

Մուտք գործեք և սկսեք roombabot.py ծրագիրը

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

Գնացեք վեբ կառավարման էջ և փորձարկեք այն: Եթե ամեն ինչ ճիշտ է միացված, անիվները պետք է պտտվեն համապատասխան ուղղությամբ, երբ կոճակները սեղմվում են / սլաքների ստեղները սեղմվում են (մի մոռացեք սեղմել միացնել):

Քայլ 6. Գործարկել Python ծածկագիրը Boot / Finishing Up

Գործարկել Python Code- ը Boot / Finishing Up- ում
Գործարկել Python Code- ը Boot / Finishing Up- ում
Գործարկել Python Code- ը Boot / Finishing Up- ում
Գործարկել Python Code- ը Boot / Finishing Up- ում

Վերջին բանը, որ մենք պետք է անենք, դա Raspbian- ին ասել, որ սկսի python ծրագիրը boot- ով: Դա անելու համար մենք պատրաստվում ենք սցենար կազմել և ժամանակացույց անել, որ այն գործի վերագործարկման ժամանակ ՝ օգտագործելով crontab:

Ստեղծեք Script

Pi օգտվողների գրացուցակում ստեղծեք նոր սցենարային ֆայլ ՝ startrobot.sh անունով

pi@raspberrypi: su $ sudo nano startrobot.sh

Պատճենեք հետևյալ տողերը ֆայլում

#!/bin/sh

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

Պահպանեք ֆայլը և դուրս եկեք

Ստեղծեք startrobot.sh ֆայլը գործարկելի

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

Փորձարկեք (դադարեցնելու համար սեղմեք ctrl + c)

pi@raspberrypi: ~ $ sh startrobot.sh

Խմբագրել crontab ֆայլը

pi@raspberrypi: ~ $ sudo crontab -e

Ֆայլի ներքևում ավելացրեք հետևյալ տողը

# m h dom mon dow հրաման

@reboot sh /home/pi/startrobot.sh

Պահել և դուրս գալ

Roombabot.py ծրագիրը այժմ պետք է սկսվի, երբ Pi- ն վերագործարկվի կամ հոսանքը միացված լինի:

Ավարտելով վեր

Այս պահին դուք պետք է ունենաք ֆունկցիոնալ ռոբոտ, որը կարող եք կառավարել ՝ օգտագործելով զննարկիչը ձեր ցանցի ցանկացած սարքից: Ես սա մի փոքր ավելի առաջ եմ տարել ՝ VPN- ի սկզբնական կառուցումից և տեղադրումից ի վեր, որպեսզի կարողանամ մուտք գործել ռոբոտ, երբ տնից բացակայեմ: Ես մտադիր եմ ապագայում կատարել որոշ լրացուցիչ փոփոխություններ: Ես նախատեսում եմ այն դարձնել ինքնավար և, հնարավոր է, հետևել շարժմանը, մինչդեռ դեռ կարող եմ վերահսկողություն վերցնել, երբ ուզում եմ:

Խորհուրդ ենք տալիս: