Բովանդակություն:
- Քայլ 1: Պահանջվում է սարքավորում
- Քայլ 2: Շասսիի հավաքում
- Քայլ 3: Էլեկտրոնիկայի տեղադրում
- Քայլ 4: Ավելացնել վեբ -տեսախցիկ
- Քայլ 5: Ամրագրեք ամեն ինչ
- Քայլ 6: RPI- ի կարգավորում
- Քայլ 7: Կարգավորեք RPI սերիայի նավահանգիստը
- Քայլ 8: Տեղադրեք Python մոդուլներ
- Քայլ 9. RoboClaw- ի տեղադրում
- Քայլ 10. Տեղադրեք Rover ծրագիրը/ֆայլերը
- Քայլ 11: Բոտը գործարկելը
- Քայլ 12. Մուտք գործեք Bot Control էջ
- Քայլ 13: Python/Flask Code
- Քայլ 14: Այլ սարքավորումների օգտագործումը
Video: Վեբ վերահսկվող Rover. 14 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Ռոբոտների կառուցումն ու խաղը իմ հիմնական մեղավոր հաճույքն է կյանքում: Մյուսները գոլֆ են խաղում կամ դահուկներ են խաղում, բայց ես ռոբոտներ եմ կառուցում (քանի որ ես չեմ կարող գոլֆ խաղալ կամ դահուկներ վարել:-): Ես գտնում եմ, որ դա հանգստացնող և զվարճալի է: Իմ բոտերի մեծ մասը պատրաստելու համար ես օգտագործում եմ շասսիի հավաքածուներ: Կոմպլեկտների օգտագործումը ինձ օգնում է անել այն, ինչ ինձ դուր է գալիս ավելի շատ ՝ ծրագրային ապահովմամբ և էլեկտրոնիկայով, ինչպես նաև ավելի լավ շասսի է դարձնում իմ ամբողջ բութ մատը:
Այս Instructable- ում մենք կանդրադառնանք, թե ինչ է անհրաժեշտ պարզ, բայց ուժեղ Wifi/վեբ վերահսկվող ռովեր պատրաստելու համար: Օգտագործված շասսին Actobotics Gooseneck է: Ես ընտրեցի այն իր չափի, ընդլայնման ունակության և արժեքի համար, բայց դուք կարող եք օգտագործել ձեր ընտրած ցանկացած այլ շասսի:
Նման նախագծի համար մեզ հարկավոր կլինի լավ մեկ տախտակ ունեցող համակարգիչ, և այս բոտի համար ես ընտրեցի օգտագործել Linux- ի վրա հիմնված Raspberry Pi (RPI) համակարգիչը: RPI- ն (և Linux- ը) մեզ տալիս է կոդավորման բազմաթիվ տարբերակներ, և Python- ը կօգտագործվի կոդավորման կողմի համար: Վեբ ինտերֆեյսի համար ես օգտագործում եմ Flask, Python- ի համար թեթև վեբ շրջանակ:
Շարժիչները վարելու համար ես ընտրեցի RoboClaw 2x5a- ն: Այն թույլ է տալիս պարզ սերիական հաղորդակցություն այն պատվիրելու համար և լավ է աշխատում RPI- ի և Gooseneck- ի շարժիչների հետ:
Ի վերջո, այն ունի տեսախցիկ ՝ POV տիպի տեսաազդեցության համար ՝ այն հեռակա վարելու համար: Յուրաքանչյուր թեմայի ավելի մանրամասն կանդրադառնամ ավելի ուշ:
Քայլ 1: Պահանջվում է սարքավորում
- Actobotics Gooesneck շասսի կամ ձեր նախընտրած համապատասխան փոխարինող
- Ազնվամորի Պի ՝ ձեր ընտրությամբ (կամ կլոն) - այս բոտում օգտագործվում է RPI մոդել B, բայց առնվազն երկու USB պորտ ունեցող ցանկացածը կաշխատի
- Ստանդարտ Servo ափսե B x1
- 90 ° Մեկ անկյունային ալիքի փակագիծ x1
- RoboClaw 2x5a շարժիչի վարորդ
- S3003 կամ նմանատիպ ստանդարտ չափսի սերվո
- Փոքր տախտակ կամ մինի տախտակ
- Իգականից իգական jumper լարերը
- Արականից իգական ցատկող լարեր
- Վեբ տեսախցիկ (ըստ ցանկության) - ես օգտագործում եմ Logitech C110, և ահա RPI- ի համար աջակցվող տեսախցիկների ցուցակը
- 5v-6v էներգիայի աղբյուր սերվո էներգիայի համար
- 7.2v-11.1v մարտկոց `շարժիչի շարժիչի սնուցման համար
- 5v 2600mah (կամ ավելի բարձր) USB հզորության բանկ RPI- ի համար
- USB Wifi ադապտեր
Իմ բոտի վրա ես օգտագործում եմ 4 դյույմանոց անիվներ ՝ այն մի փոքր ավելի համատարած-փակ դարձնելու համար: Այս տարբերակի համար ձեզ հարկավոր է.
- 4 "Dանր անիվ x2
- 4 մմ տրամագծով պտուտակային հանգույց (0,770 դյույմ) x2
Քայլ 2: Շասսիի հավաքում
Նախ հավաքեք շասսին ՝ հետևելով շասսիի կամ տեսագրության մեջ ներառված հրահանգներին: Ավարտելուց հետո դուք պետք է ունենաք պատկերի նման մի բան: ՈEՇԱԴՐՈԹՅՈՆ. Պարանոցի հատվածը հավաքելիս պարզապես թողեք ամրացման ամրակը:
Իմ բոտում ես որոշեցի փոխարինել անիվները, որոնցով եկել է շասսին ՝ 4 դյույմանոց ծանր անիվների համար: Սա պարտադիր չէ և անհրաժեշտ չէ, եթե դուք չեք ցանկանում նույնն անել:
Քայլ 3: Էլեկտրոնիկայի տեղադրում
Gooseneck- ը շատ տեղ ունի և ձեր էլեկտրոնիկայի տեղադրման տարբերակներ: Ես ձեզ տալիս եմ այս նկարները որպես ուղեցույց, բայց դուք կարող եք ընտրել, թե ինչպես կցանկանայիք ամբողջը շարադրել: Տախտակը և մարտկոցները տեղադրելու համար կարող եք օգտագործել անջատիչներ, երկկողմանի ժապավեն, Velcro կամ servo-tape:
Քայլ 4: Ավելացնել վեբ -տեսախցիկ
Վերցրեք 90 աստիճանի փակագիծը, թեթև սերվո հանգույցը և.3125 պտուտակներից չորս (4) այս քայլի համար.
- Վերցրեք servo հանգույցը և տեղադրեք այն փակագծի մի կողմում և ամրացրեք դրանք նկարում պատկերված.2125 «պտուտակներով:
- Հաջորդը տեղադրեք servo- ն servo փակագծի մեջ
- Սերվոյի եղջյուրով ամրացրեք 90 աստիճանի փակագիծը սերվոսի ողնաշարի վրա և դրանք միացնելու համար օգտագործեք եղջյուրի պտուտակը, որը եկել է սերվոյի հետ:
- Այժմ տեղադրեք Servo- ն փակագծում `մնացած պտուտակներով սագի վզիկի վերևում
- Տեղադրեք տեսախցիկը կայծակաճարմանդներով կամ երկկողմանի ժապավենով `90 աստիճանի փակագծի վրա
Անհրաժեշտության դեպքում օգտագործեք նկարները ուղեցույցների համար:
Քայլ 5: Ամրագրեք ամեն ինչ
Այս ռոբոտի համար էլեկտրագծերը բավականին նեղ են:
Շարժիչներ.
Oldոդիչը միացնում է երկու շարժիչներին, եթե դա արդեն չեք արել
Ռոբոտների առջևը (վերջը ՝ սագի վզիկով) ՝ ձեր կողմը նայած.
- Ձախ շարժիչի վրա շարժիչի լարերը միացրեք M1A և M1B ալիքին
- Միացրեք շարժիչի լարերը աջ շարժիչի վրա M2A և M2B ալիքներին
Հողային (GND) միացումներ.
- Միացրեք RoboClaw- ի վրա հիմնված մեկ քորոց գետնին ցատկող տախտակին: RoboClaw- ի գրունտային գիծը մոտ է կենտրոնին (տես նկարը)
- RPI- ի PIN 6 -ը միացրեք jumper տախտակին: Տեսեք RPI վերնագրի նկարը ՝ քորոցների առաջադրանքների համար:
- Միացրեք GND- ն servo մարտկոցի տուփից `jumper տախտակի կապումներից մեկին:
- Անցնող թել անցեք ցատկող տախտակից դեպի servos GND մետաղալար:
RPI դեպի RoboClaw:
Միացրեք RPI GPIO14 TXD կապը RoboClaw S1 կապին
Ուժ:
- Միացրեք POS հաղորդալարը servo մարտկոցից դեպի servos POS հաղորդալար
- Շարժիչի մարտկոցից միացրեք POS հաղորդալարը RoboClaw շարժիչի հզորության մուտքի տերմինալի POS (+) - ին: GND տերմինալը առայժմ անջատված կթողնենք:
Քայլ 6: RPI- ի կարգավորում
Ենթադրում եմ, որ այստեղ օգտագործողը որոշ գիտի Linux- ի և RPI- ի մասին: Ես չեմ լուսաբանում, թե ինչպես տեղադրել կամ միանալ մեկին: Եթե դրա համար օգնության կարիք ունեք, ապա օգտագործեք ստորև ներկայացված էջերը:
Ձեր RPI կարգավորումը ստանալու համար դիտեք հետևյալ էջերը.
- RPI հիմնական կարգավորումը
- RPI Արագ մեկնարկի ուղեցույց
- NOOBS- ի տեղադրման գիլդիա
Ընդհանուր ցատկող էջերի համար RPI- ի հիմնական էջը և eLinux էջերը հիանալի վայրեր են սկսելու համար:
Տե՛ս այս հղումը ՝ RPI ընդհանուր Wifi կարգավորման համար:
Եթե մտադիր եք ինչ -որ տեսախցիկ կամ վեբ -տեսախցիկ օգտագործել բոտում, նայեք այս էջերին ՝ հիմնական անհրաժեշտ ֆայլերը ստանալու համար:
- RPI տեսախցիկի տեղադրում
- eLinix RPI տեսախցիկի տեղադրում
Հոսքային տեսանյութ.
Կան մի քանի եղանակներ, որոնք հնարավորություն են տալիս վիդեո հոսք աշխատել RPI- ով, բայց իմ նախընտրած մեթոդը Motion- ի օգտագործումն է:
Ձեր RPI- ում այն տեղադրելու համար գործարկեք հետևյալը ՝ sudo apt-get install motion
Այս խրատական գործիքը գերազանցում է այն նաև հոսքի համար կարգավորելը:
Քայլ 7: Կարգավորեք RPI սերիայի նավահանգիստը
Մենք պետք է անջատենք Linux- ի վահանակի ռեժիմը RX և TX- ն օգտագործելու համար, քանի որ ցանկանում ենք այս նավահանգստից խոսել RoboClaw շարժիչի վերահսկիչի հետ: Դա անելու համար կարող եք օգտագործել այս մեթոդը կամ այս գործիքը: Ընտրությունը ձերն է մեթոդի վրա, քանի որ նրանք երկուսն էլ նույնն են անում ի վերջո:
Քայլ 8: Տեղադրեք Python մոդուլներ
Ձեզ հարկավոր կլինի RPI- ի վրա տեղադրված python, ինչպես նաև python փաթեթի տեղադրող խողովակ:
Pip- ը տեղադրելու համար կատարեք հետևյալը.
- sudo apt-get տեղադրել python-setuptools
- sudo easy_install pip
Հետո.
- sudo pip տեղադրման շիշ
- sudo pip տեղադրել pyserial
- sudo pip տեղադրել RPIO
Սա կլինի կոդի գործարկման համար անհրաժեշտ բոլոր մոդուլները:
Քայլ 9. RoboClaw- ի տեղադրում
Ես ունեմ ռոբոտի կոդը, որը խոսում է RoboClaw- ի հետ Ստանդարտ սերիական ռեժիմում ՝ 19200 baud:
RoboClaw- ը դրա համար կարգավորելու համար կատարեք հետևյալը.
- Կտտացրեք RoboClaw- ի «MODE» կոճակին
- Հպեք սահմանված կոճակին, մինչև LED- ն ուշացումների միջև 5 (հինգ) անգամ չթարթվի
- Պահելու համար սեղմեք «LIPO» կոճակը
- Հաջորդը, սեղմեք «SET» կոճակը, մինչև ուշացումների միջև LED- ը չթարթվի 3 (երեք) անգամ
- Պահելու համար սեղմեք LIPO կոճակը
Դա այն է `շարժիչի վերահսկիչը տեղադրելու համար: Անհրաժեշտության դեպքում լրացուցիչ տեղեկությունների համար տես վերը նշված pdf- ն:
Քայլ 10. Տեղադրեք Rover ծրագիրը/ֆայլերը
Ներբեռնեք և պատճենեք rover.zip ֆայլը ձեր RPI- ին ձեր pi օգտվողի գրացուցակում:
Եթե աշխատում եք Linux- ով կամ Mac- ով, ապա դա անելու համար կարող եք օգտագործել «scp» ՝
scp ~/location/of/the/file/rover.zip pi@your_rpi_ip:/
Windows- ի համար կարող եք ներբեռնել և օգտագործել pscp, այնուհետև անել հետևյալը.
pscp /location/of/the/file/rover.zip pi@your_rpi_ip:/
Երբ zipfile- ը պատճենվի RPI- ին, մուտք գործեք այն որպես pi օգտվող:
Այժմ գործարկեք.
unzip rover.zip
Սա ֆայլերը կբացահայտի «rover» անունով պանակում և այդ թղթապանակի տակ կունենա հետևյալը.
- restrover.py (ռոբոտի պիթոնի ծածկագիրը)
- ստատիկ (պահում է պատկերի ֆայլերը կառավարման էջի կոճակների համար)
- կաղապարներ (պահում է index.htlm ֆայլը, կառավարման վեբ էջը)
Եթե վեբ տեսախցիկ եք օգտագործում, փոփոխեք տողը ձևանմուշի թղթապանակի index.html ֆայլի ներքևի մասում: Փոխեք URL- ը IFRAME տողում `ձեր տեսանյութի հոսքի src URL- ին համապատասխանելու համար:
Քայլ 11: Բոտը գործարկելը
Միացրեք USB հոսանքը RPI- ին:
Բոտի ծածկագիրը սկսելու համար մուտք գործեք որպես pi օգտվող և գործարկեք.
- cd ռովեր
- sudo python restrover.py
Եթե ամեն ինչ կարգին էր, ապա այս քայլում պետք է տեսնեք պատկերի նման էկրան
Եթե տեսնում եք որևէ սխալ կամ խնդիր, դուք պետք է շտկեք դրանք առաջ գնալուց առաջ:
Այժմ միացրեք GND (-) մետաղալարը RoboClaw շարժիչի հզորության մուտքի NEG (-) տերմինալին:
Քայլ 12. Մուտք գործեք Bot Control էջ
Ռոբոտի պիթոնի սցենարը գործարկելուց հետո միացրեք RoboClaw- ը և այնուհետև նավարկեք դեպի ձեր RPI- ի ip- ն ՝
your_rpi_ip
Դուք պետք է տեսնեք, որ Վեբ կառավարման էջը հայտնվի, ինչպես պատկերներում: Եթե ոչ, ստուգեք ձեր RPI ելքային տերմինալը և փնտրեք որևէ սխալ և ուղղեք դրանք:
Էջում հայտնվելուց հետո պատրաստ եք վերահսկել բոտը:
Ռոբոտը կսկսվի «Med run» պարամետրով և Միջին արագությամբ:
Բոտը կարող է կառավարվել էջի կոճակներով կամ ստեղնաշարի ստեղներով:
Բանալիներն են.
- w - առաջ
- z - հակառակ/հետընթաց
- ա - երկար ձախ շրջադարձ
- s - երկար աջ շրջադարձ
- q - կարճ ձախ շրջադարձ
- ե - կարճ աջ շրջադարձ
- 1 - ձախ տեսախցիկ է մնացել
- 2 - թավայի տեսախցիկ աջ
- 3 - թավա լիովին ձախ
- 4 - թավա լիարժեք աջ
- / - տան/ կենտրոնի տեսախցիկ
- h - կանգառ/կանգառ ռոբոտ
Ուղարկված հրամանների միջև կա կես վայրկյան ուշացման բուֆեր: Ես դա արեցի, որպեսզի վերացնեմ անցանկալի կրկնվող հրամանները: Դուք, իհարկե, կարող եք այն հեռացնել ծածկագրից, եթե ցանկանում եք (index.html- ում)
Մնացած վերահսկողությունները և դրանց վերահսկումը պետք է լինեն բացատրական:
Քայլ 13: Python/Flask Code
Այս բոտը օգտագործում է Python և Flask վեբ շրջանակները: Եթե հետաքրքրված եք, կարող եք ավելին իմանալ Flask- ի մասին:
Flask հավելվածից և սովորական Python սցենարից մեծ տարբերությունը @app.route դասի/մեթոդ է, որն օգտագործվում է URI բեռնաթափման համար: Բացի դրանից, մեծ մասամբ դա բավականին սովորական Python է:
#!/usr/bin/env պիթոն
# # Wifi/Web -Rover Rover # # Գրված է Սքոթ Բիսլիի կողմից - 2015 # # Օգտագործում է RPIO, pyserial և Flask # ներմուծման ժամանակի ներմուծման սերիա RPIO- ից PWM ներմուծում տափաշիշից, մատուցել_մոդել, հարցման ծրագիր = Ֆոլսկ (_name_, static_url_path = ") # Միացեք հաղորդակցման նավահանգստին ՝ Roboclaw շարժիչի վերահսկիչի հետ խոսելու համար. # Փոխեք այստեղ բաուդ արագությունը, եթե այն տարբերվում է 19200 roboclaw = սերիայից: Սերիալ ('/dev/ttyAMA0', 19200) բացառությամբ IOError: print ("Comm port գտնված է ") sys.exit (0) # Արագության և շարժիչի կառավարման փոփոխականներ last_direction = -1 speed_offset = 84 turn_tm_offset = 0.166 run_time = 0.750 # Servo չեզոք դիրք (տուն) servo_pos = 1250 servo = PWM. Servo () servo.set_servo (18, servo_pos) # Մի փոքր հանգստանալու ժամանակը որոշելու համար: քուն (3) # # # URI կարգավորիչներ. բոտերի բոլոր գործողությունները կատարվում են այստեղ # # ուղարկեք բոտերի կառավարման էջը (գլխավոր էջը) @app.route ("/") def index (): վերադարձնել render_template ('index.html', name = Ոչ մեկը) @app.route ("/forward") def forward (): global last_direction, run_ti ինձ տպել «Առաջ» go_forward () last_direction = 0 # քուն 100ms + run_time time.sleep (0.100 + run_time) # Եթե ոչ շարունակական, ապա հետաձգել հետաձգումից հետո, եթե run_time> 0: last_direction = -1 halt () վերադարձնել «ok» @ app.route ("/backward") def backward (): global last_direction, run_time print "Backward" go_backward () last_direction = 1 # sleep 100ms + run_time time.sleep (0.100 + run_time) # Եթե ոչ շարունակական, ապա կանգ առնել ուշացումից հետո եթե run_time> 0: last_direction = -1 halt () վերադարձնել «ok» @app.route ("/left") def left (): global last_direction, turn_tm_offset print "Left" go_left () last_direction = -1 # sleep @1 /2 երկրորդ անգամ. Քուն (0.500 - turn_tm_offset) # կանգ առնել () time.sleep (0.100) վերադարձնել «ok» @app.route ("/right") def right (): global last_direction, turn_tm_offset print "Right" go_right () # sleep @1/2 second time.sleep (0.500 - turn_tm_offset) last_direction = -1 # stop stop () time.sleep (0.100) վերադարձնել «ok» @app.route ("/ltforward") def ltforward () ՝ գլոբալ last_direction, turn_t m_offset print "Left forward turn" go_left () # sleep @1/8 second time.sleep (0.250 - (turn_tm_offset / 2)) last_direction = -1 # stop stop () time.sleep (0.100) return "ok" @app: stop halt () time.sleep (0.100) վերադարձնել «ok» @app.route ("/stop") def stop (): global last_direction print "Stop" stop () last_direction = -1 # sleep 100ms time.sleep (0.100) վերադարձնել «ok» @app.route ("/panlt") def panlf (): գլոբալ servo_pos տպել "Panlt" servo_pos -= 100 եթե servo_pos 2500: servo_pos = 2500 servo.set_servo (18, servo_pos) # քնել 150ms ժամանակ: քնել (0.150) վերադարձ «լավ» @app.route ("/home") def home (). գլոբալ servo_pos տպագիր "Home" servo_pos = 1250 servo.set_servo (18, servo_pos) # քուն 150ms ժամանակ: քուն (0.150) վերադարձ "ok" @app.route ("/panfull_lt") def panfull_lt (): գլոբալ servo_pos տպագիր "Pan full l eft "servo_pos = 500 servo.set_servo (18, servo_pos) # քուն 150ms time.sleep (0.150) վերադարձնել" ok " @app.route ("/panfull_rt ") def panfull_rt (). global servo_pos print" Pan full right "servo_pos = 2500 servo.set_servo (18, servo_pos) # քուն 150ms time.sleep (0.150) վերադարձնել «ok» @app.route ("/speed_low") def speed_low (): global speed_offset, last_direction, turn_tm_offset speed_offset = 42 turn_tm_offset = 0.001 # Թարմացրեք ընթացիկ ուղղությունը ՝ նոր արագություն ստանալու համար, եթե last_direction == 0: go_forward () if last_direction == 1: go_backward () # sleep 150ms time.sleep (0.150) վերադարձնել «ok» @app.route ("/speed_mid") def speed_mid (): գլոբալ speed_offset, last_direction, turn_tm_offset speed_offset = 84 turn_tm_offset = 0.166 # Թարմացրեք ընթացիկ ուղղությունը ՝ նոր արագություն ստանալու համար last_direction == 0: go_forward () if last_direction == 1: go_backward () # քուն 150ms ժամանակ. քուն (0.150) վերադարձնել «ok» @app.route ("/speed_hi") def speed_hi (). գլոբալ speed_offset, last_direction, turn_tm_offset speed_offset = 126 tur n_tm_offset = 0.332 # Թարմացրեք ընթացիկ ուղղությունը ՝ նոր արագություն ստանալու համար, եթե last_direction == 0: go_forward () if last_direction == 1: go_backward () # sleep 150ms time.sleep (0.150) return "ok" @app.route ("/շարունակական ") def Continuous (): global run_time print" Continuous run "run_time = 0 # sleep 100ms time.sleep (0.100) return" ok " @app.route ("/mid_run ") def mid_run (): global run_time print" Mid վազում "run_time = 0.750 halt () # sleep 100ms time.sleep (0.100) վերադարձնել" ok " @app.route ("/short_time ") def short_time (): global run_time print" Short run "run_time = 0.300 stop () # քնել 100ms time.sleep (0.100) վերադարձնել «լավ» # # Շարժիչային գործառույթները # def go_forward (). գլոբալ արագության_ջշգրտում, եթե արագությունը_շեղվի! = 42: roboclaw.write (chr (1 + speed_offset)) roboclaw.write (chr (128 + speed_offset)) այլ ՝ roboclaw.write (chr (127 - speed_offset)) roboclaw.write (chr (255 - speed_offset)) def go_backward (): global speed_offset if speed_offset! = 42: roboclaw.write (chr (127 - speed_offset)) roboclaw.wri te (chr (255 - speed_offset)) այլ ՝ roboclaw.write (chr (1 + speed_offset)) roboclaw.write (chr (128 + speed_offset)) def go_left (): global speed_offset if speed_offset! = 42: roboclaw.write (chr (127 - speed_offset)) roboclaw.write (chr (128 + speed_offset)) else: roboclaw.write (chr (1 + speed_offset)) roboclaw.write (chr (255 - speed_offset)) def go_right (): global speed_offset if speed_offset! = 42: roboclaw.write (chr (1 + speed_offset)) roboclaw.write (chr (255 - speed_offset)) else: roboclaw.write (chr (127 - speed_offset)) roboclaw.write (chr (128 + speed_offset)) def halt (): roboclaw.write (chr (0)) if _name_ == "_main_": app.run (host = '0.0.0.0', port = 80, debug = True)
Եթե դուք չեք ցանկանում կամ կարիք ունեք Flask- ի վրիպազերծման մասին տեղեկությունների, ապա app.run տողում կարգաբերումը սահմանեք «կեղծ»:
եթե _name_ == "_ հիմնական_":
app.run (host = '0.0.0.0', port = 80, debug = False)
Կարող եք նաև փոխել նավահանգիստը, որը Flask http սերվերը լսում է այստեղ:
Քայլ 14: Այլ սարքավորումների օգտագործումը
Եթե ցանկանում եք օգտագործել այլ սարքավորումներ, ինչպես SBC- ի այլ տեսակի (մեկ տախտակի համակարգիչ), ապա Python- ի և Flask- ի այլ տախտակներում գործարկելու փոքր խնդիրներ կունենաք, ինչպիսիք են Beagle Bone- ը, PCDuino- ն և այլն … Դուք պետք է փոխեք կոդը GPIO- ին համապատասխանելու համար: դասավորել և օգտագործել նոր տախտակի սերվո շարժիչ հնարավորությունները:
Մեկ այլ տիպի շարժիչով վարորդ օգտագործելու համար պարզապես անհրաժեշտ է փոփոխել go_forward, go_backward, go_left, go_right և stop գործառույթները ՝ կատարելու այն, ինչ անհրաժեշտ է փոխարինող շարժիչ վարորդին, որպեսզի շարժիչը կատարի այդ հատուկ գործառույթը:
Խորհուրդ ենք տալիս:
Վեբ կայք/WiFi վերահսկվող LED ժապավեն ազնվամորու Pi- ով. 9 քայլ (նկարներով)
Վեբ կայք/WiFi վերահսկվող LED ժապավեն ազնվամորու Pi- ով. Նախապատմություն. Ես դեռահաս եմ և վերջին մի քանի տարիների ընթացքում նախագծում և ծրագրավորում եմ փոքր էլեկտրոնիկայի նախագծեր ՝ ռոբոտաշինության մրցումներին մասնակցելու հետ մեկտեղ: Վերջերս ես աշխատում էի աշխատասեղանի տեղադրումը թարմացնելու վրա, և որոշեցի, որ դա հաճելի հավելում է
Վեբ-միացված SMART LED անիմացիոն ժամացույց ՝ վեբ վրա հիմնված կառավարման վահանակով, Serverամային սերվերի համաժամացում ՝ 11 քայլ (նկարներով)
Վեբ-միացված SMART LED անիմացիոն ժամացույց ՝ վեբ վրա հիմնված կառավարման վահանակով, Time Server Synchronized: Այս ժամացույցի պատմությունը հեռու է գնում ՝ ավելի քան 30 տարի: Հայրս այս գաղափարի առաջատարն էր, երբ ես ընդամենը 10 տարեկան էի, LED- ի հեղափոխությունից շատ առաջ: Իսկական
Վեբ վերահսկվող Վալենտին. 8 քայլ (նկարներով)
Վեբ վերահսկվող Վալենտին. Softwareրագրաշարի և ապարատային այս խառնուրդի միջոցով դուք կարող եք վառել սրտով զարդարված գիշերային լույս ցանկացած վայրից `ինտերնետ հասանելիությամբ: Այսպիսով, անկախ նրանից, թե դուք հիշում եք աշխատավայրում, սրճարանում, տանը կամ ձեր (վեբ միացված) բջջային հեռախոսով, կարող եք ձեր վալենտինին ասել, որ դուք
Վեբ վերահսկվող հսկողության տեսախցիկ `8 քայլ (նկարներով)
Վեբ վերահսկվող հսկողության տեսախցիկ. Այս աշխատանքի նպատակն է ցույց տալ, թե ինչպես կարելի է կառուցել հսկողության համակարգ վեբ էջի ինտերֆեյսով: Տեսախցիկը կարող է շրջվել միջերեսի միջով ուղղահայաց կամ հորիզոնական ուղղությամբ, բայց միայն այն տարածքում, որը թույլ կտա սահմանային տվիչները: Շարունակությունը
Վեբ վերահսկվող Arduino LED: 5 քայլ (նկարներով)
Վեբ վերահսկվող Arduino LED. Այս հրահանգը ցույց է տալիս, թե ինչպես կարելի է կառուցել վեբ միացված եռագույն լուսադիոդ ՝ հիմնված Arduino- ի և WIZnet Ethernet վահանի վրա ՝ վերահսկելի ցանկացած վեբ դիտարկիչից: Քանի որ LED- ն ցուցադրվում է Arduino գույնով աշխատող պարզ RESTful վեբ ծառայության միջոցով