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

TinyLiDAR Pi- ի վրա ?: 9 քայլ (նկարներով)
TinyLiDAR Pi- ի վրա ?: 9 քայլ (նկարներով)

Video: TinyLiDAR Pi- ի վրա ?: 9 քայլ (նկարներով)

Video: TinyLiDAR Pi- ի վրա ?: 9 քայլ (նկարներով)
Video: tinyLiDAR DIY ParkingAssist 2024, Հոկտեմբեր
Anonim
TinyLiDAR- ը Pi- ի վրա?
TinyLiDAR- ը Pi- ի վրա?

Կրկին ողջույն!

Դե հիմա, երբ որակի ժամանակ անցկացրիր tinyLiDAR- ի և քո Arduino- ի հետ. Գուցե քո Raspberry Pi- ն քեզ մի փոքր միայնակ զգա;)

Pi- ն I2C պորտ ունի, չէ՞: Ուրեմն ինչու չկապել այն և չփորձել այնտեղ: Լավ ծրագիր է, բայց եթե արդեն փորձել եք, երևի նկատել եք, որ տվյալները մի փոքր տարօրինակ են թվում:

Այո, pi- ն արդեն կառուցել է 1.8K քաշքշուկներ, այնպես որ դուք ստիպված կլինեք կտրել I2C բարձիկները tinyLiDAR- ի վրա ՝ 4.7K քաշքշուկները միացումից դուրս բերելու համար: Մանրամասների համար տե՛ս տեղեկատու ձեռնարկը: Բայց դա տարօրինակ տվյալների պատճառը չէ:

Դա պայմանավորված է նրանով, որ pi- ի I2C ավտոբուսը ճշգրտորեն չի համապատասխանում տեխնիկական պայմաններին: Այսպես է եղել այն պահից, երբ pi- ն առաջին անգամ ներդրվեց Broadcom չիպերի հավաքածուի շնորհիվ: Նրանք ի սկզբանե պատշաճ կերպով չեն աջակցում I2C գործառույթին, որը կոչվում է «ժամացույցի ձգում»:

Այս h/w սխալի մասին ավելին կարող եք կարդալ այստեղ:

Քայլ 1: Ի՞նչ է ժամացույցի ձգումը:

Ի՞նչ է ժամացույցի ձգումը
Ի՞նչ է ժամացույցի ձգումը

Ինչպես գիտեք, I2C ավտոբուսը բաղկացած է 3 լարերից: Սրանք ժամացույցի (SCL), տվյալների (SDA) և ընդհանուր հիմքերի համար են: Clockամացույցի և տվյալների տողերը բաց հավաքիչ/բաց արտահոսքի տիպի են, ինչը նշանակում է, որ դրանք տրամաբանական բարձրություն հաղորդելու համար անհրաժեշտ են ձգման դիմադրիչներ, որոնք միացված են դրական մատակարարման ռելսին: Տրամաբանությունը ցածր լինելու համար ավտոբուսում գտնվող ցանկացած սարք կարող է գիծը ներքև քաշել դեպի ընդհանուր հիմք:

I2C ստանդարտի համաձայն ՝ Master սարքն այն է, ով ապահովում է SCL գծի ժամացույցի ազդանշանը, բայց եթե այս արագությունը շատ արագ է, ապա Slave սարքին թույլատրվում է այն դանդաղեցնել ՝ պարզապես պահելով ժամացույցի գիծը, մինչև պատրաստ լինի գործելու տեղեկատվության հետ: Սա այն է, ինչ մենք անվանում ենք «ժամացույցի ձգում»:

Պաշտոնապես, ժամացույցի ձգումը I2C ստանդարտում նշվում էր որպես կամընտիր հատկություն, բայց դա շատ տարածված հատկություն է, որն անհրաժեշտ է «խելացի» ստրուկների մեծամասնության համար, որոնց սենսորային տվյալներ տրամադրելու համար լրացուցիչ ժամանակ է անհրաժեշտ և այլն:

Քայլ 2. Մի փոքր օգնություն թռչող խոզերից

Այս I2C ժ/վ սխալը լուծելու համար մենք գտանք մի գեղեցիկ փոքրիկ անվճար գրադարան, որը կոչվում է «խոզուկ»: Դա շատ սիրված, արագ և թեթև գրադարան է, որը գրված է C- ով: Այն աշխատում է որպես Raspberry Pi- ի ֆոնային դևոն և թույլ է տալիս մեզ վերահսկել I2C- ն, ինչպես նաև ցանկացած GPIO- ն ՝ հեշտությամբ python- ից: Գրադարանը I2C նավահանգիստներին ավելի նման է GPIO- ի և դրանով իսկ շրջանցել է I2C ժամացույցի ձգվող սխալը: Ինչպես pi- ի բոլոր ծրագրակազմը, այնպես էլ pigpio գրադարանը պարզապես մի պարզ «ընդգրկում» է, ուստի եկեք գնանք:

Քայլ 3: TL; DR տարբերակ

Տեղադրեք PiEnable SSH- ը Putty- ի հետ մուտք գործելու համար Տեղադրեք pigpio գրադարանը Ստացեք փոքրիկ LiDAR zip ֆայլ Բացեք և գործարկեք Putty- ից

Լրացուցիչ:

Կարգավորեք SublimeText- ը WinSCP- ով

Քայլ 4: Տեղադրում

Տեղադրում
Տեղադրում

Մեր Raspberry Pi 3 -ի համար մենք օգտագործում էինք ստանդարտ New Out of Box Software (NOOBS Lite v2.4) օպերացիոն համակարգը: Այն պարունակում է մեզ համար արդեն տեղադրված Python- ի լռելյայն տարբերակ, որը պատրաստ է կոդավորելու համար: ՕՀ -ն կարող եք ներբեռնել այստեղից:

Միկրո SD քարտի վրա տեղադրվելուց հետո դուք պետք է միացնեք ստեղնաշար և մոնիտոր, որպեսզի առաջին անգամ մուտք գործեք pi:

Մականուն: pi Գաղտնաբառ: ազնվամորի

Այնուհետև կարող եք սկսել անվտանգ shell սերվեր (SSH) այս հրամաններով.

sudo systemctl միացնել sshsudo systemctl սկսել ssh

Հաջորդը մեզ պետք կգա ձեր ցանցի pi հասցեն, որպեսզի կարողանանք մուտք գործել PuTTY: Սա ստանալու համար պարզապես մուտքագրեք.

հյուրընկալողի անունը -I

Եվ փնտրեք IPv4 ձևաչափի հասցե (մեր տեղադրման համար այն էր ՝ 192.168.0.27)

Վերոնշյալ քայլերը pi- ին թույլ կտան գործարկել «անգլուխ», ինչը նշանակում է, որ ձեզ այլևս պետք չէ այս ստեղնաշարի վրա մուտքագրել, և այլևս տեսահսկման կարիք չկա: Հետագայում մենք մուտք կգործենք ցանցի միջոցով ՝ ապահով SSH կապի միջոցով: Վերոնշյալ հրամանը առաջացնում է SSH սերվերի ինքնաբերաբար գործարկում ամեն անգամ, երբ pi- ն միացված է: Սա հարմար է մեզ համար, մինչ մենք կոդավորում ենք, բայց դա կարող է անվտանգության ռիսկ լինել ավելի ուշ (պարանոիդ լինելը լավ է), այնպես որ, երբ պատրաստ լինեք, կարող եք անջատել այս ավտոմատ գործարկման SSH գործառույթը ՝ օգտագործելով այս հրամանը.

sudo systemctl անջատել ssh- ը

Այս հրամանը պետք է մուտքագրվի, իհարկե, pi- ին միացված ստեղնաշարի վրա:

PuTTY- ը տերմինալ ծրագիր է, որը պահանջվում է համակարգչից pi- ին հրամաններ տալ, այնպես որ այստեղից պետք է գրեք վերջին օրինակը:

Տեղադրեք և գործարկեք PuTTY: Դուք պետք է մուտքագրեք IP հասցեն վերևից ՝ Host Name- ի մուտքում և օգտագործեք կանխադրված SSH կարգավորումները: Տվեք նիստին ձեր ուզած ցանկացած անուն և սեղմեք պահպանել: Այնուհետև սեղմեք բեռը և սեղմեք OPEN ՝ նիստ սկսելու համար:

Այն պետք է ձեզ հասցնի pi- ի մուտքի էկրանին: Օգտագործեք ձեր նույն օգտվողի անունն ու գաղտնաբառը, որոնք նախկինում օգտագործել եք:

Քայլ 5: Տեղադրեք Pigpio

Այժմ, միակ բանը, որ մենք պետք է տեղադրենք սրանից հետո, կլինի pigpio գրադարանը, և մենք կարող ենք դա անել ՝ օգտագործելով հետևյալ հրամանները:

Հուշում. Դուք կարող եք պարզապես պատճենել [ctrl+c] և տեղադրել [մկնիկի աջ սեղմում] այս և ցանկացած այլ հրամաններ PuTTY տերմինալում

sudo apt-get թարմացում

sudo apt-get տեղադրել pigpio python-pigpio python3-pigpio

Քայլ 6: Լրացուցիչ. Dev համակարգի կարգավորում

Լրացուցիչ. Dev համակարգի կարգավորում
Լրացուցիչ. Dev համակարգի կարգավորում

Այսպիսով, ահա հուշում, որը կարող է օգնել որոշ ժամանակ խնայել ձեր ծածկագրերի մշակման աշխարհում: Մենք իսկապես ատում ենք unix- ի վրա հիմնված տեքստային խմբագիրներին: Օգտվողի միջերեսը սովորաբար անշնորհք է, իսկ տառատեսակները ծծում են: GNU nano- ն գրեթե տանելի է, բայց ոչ մեկն այնքան զտված չէ, որքան SublimeText- ը, որը կարող եք ներբեռնել այստեղից

Մենք ունենք պատուհանների վրա հիմնված զարգացման միջավայր և սիրում ենք հնարավորության դեպքում օգտագործել այս տեքստային խմբագրիչը: Այսպիսով, խորհուրդն այն է, որ դուք ստեղծեք ձեր համակարգը, որպեսզի կարողանաք օգտագործել այս մասնագիտական տեքստային խմբագրիչը ձեր Windows պատուհանների աշխատասեղանին `ուղղակիորեն ծածկելու ձեր անգլուխ pi- ին:

Ինչպե՞ս: Օգտագործելով WinSCP անունով անվճար ծրագիր, որը կարող եք ներբեռնել այստեղից

Քայլ 7: WinSCP- ի տեղադրում

WinSCP- ի տեղադրում
WinSCP- ի տեղադրում
WinSCP- ի տեղադրում
WinSCP- ի տեղադրում

WinSCP- ը ֆայլերի փոխանցման անվտանգ ծրագիր է, որը տալիս է ձեր rpi- ում առկա ֆայլերի գրաֆիկական ներկայացում, ինչպես այն, ինչ տեսնում եք ֆայլերի կառավարիչում ձեր Windows համակարգչի վրա:

Այսպիսով, առաջ գնացեք և տեղադրեք վերը նշված երկու ծրագրերը նույնպես հիմա:

Հաջորդը, դուք պետք է մի քանի ճշգրտումներ կատարեք, որպեսզի դրանք բոլորը ճիշտ աշխատեն:

WinSCP- ի համար կարող եք սեղմել NEW Site- ի վրա: Մենք կօգտագործենք լռելյայն SFTP կարգավորումները, և ձեզ հարկավոր է միայն մուտքագրել ձեր pi- ի IP հասցեն (Հոստի անվան համար) և մուտքի անունը (Օգտվողի անվան համար): Եթե ցանկանում եք, կարող եք գաղտնաբառը դատարկ թողնել. Ամեն անգամ մուտք գործելիս այն ձեզ հուշում է գաղտնաբառի մասին:

Հաջորդը, կտտացրեք Ընդլայնված կոճակին, այնուհետև ձախ կողմում կտտացրեք Environment Shell- ի կարգավորումները: Աջ կողմում փոխեք «Լռելյայն» կետը դեպի «sudo su -» տարբերակը: Սա թույլ կտա փոփոխություններ գրել ձեր pi- ում ՝ առանց թույլտվության սխալների, երբ SublimeText- ից պահում եք:

WinSCP- ում SublimeText- ը դարձրեք կանխադրված խմբագիր

Դա անելու համար կտտացրեք WinSCP Մուտքի կարգավորումների էկրանի Գործիքներ կոճակին, որտեղից սկսել եք Ձեր NewSite երկխոսությունը: Երկու էկրանի նկարահանումները ցույց են տալիս, թե ինչպես է դա կազմաձևված, բայց հիմնականում դուք կտտացրեք խմբագիրների նախապատվությունը կազմաձևելու և Ավելացրեք խմբագիր, որը կլինի արտաքին խմբագիր: Այնուհետև կարող եք դիտել.exe ֆայլը, որտեղ այս խմբագիրը գտնվում է ձեր համակարգչում:

Քայլ 8. (W) Կոդի ձեռքբերում

w) ստանալ օրենսգիրքը
w) ստանալ օրենսգիրքը

Ավարտելուց հետո շարունակեք և մուտք գործեք WinSCP և PuTTY- ով:

Այժմ մենք արդեն պատրաստ ենք, կարող ենք սկսել մեր tinyLiDAR կոդը:

Ձեր տան/պի գրացուցակի տակ կազմեք tinyLiDAR անունով գրացուցակ:

Դուք կարող եք դա անել ՝ WinSCP էկրանի աջ կողմում աջ սեղմելով և ընտրելով Նոր / գրացուցակ:

Այժմ PuTTY տերմինալում կարող եք մուտքագրել

cd t

և կտտացրեք ներդիրին ՝ թույլ տալու համար այն ինքնալրացնել ձեր հրամանը ՝ tinyLiDAR գրացուցակին հասնելու համար:

Մի անգամ այստեղ մուտքագրեք հետևյալը.

wget

ֆայլերը անմիջապես մեր սերվերից ստանալու համար: Այնուհետեւ մենք կարող ենք դրանք բացել ՝ մուտքագրելով

unzip r

և սեղմեք ներդիրը ՝ անունը նորից ինքնալրացնելու համար

Այն գործարկելու համար պարզապես մուտքագրեք

python tlgui.py

Եվ ձեր tinyLiDAR- ը կարձագանքի pi- ի ձեր յուրաքանչյուր հրամանին:)

Քայլ 9: Նշում ապագա հաքերների համար

Շարունակեք և հայացք գցեք գլխարկի տակ ՝ կրկնակի սեղմելով WinSCP- ի կոդային ֆայլերից որևէ մեկի վրա: Նրանք են.py ընդլայնում ունեցողները: Ֆայլերը պետք է բացվեն SublimeText- ում անմիջապես ձեր համակարգչի վրա: Փոխեք այն, ինչ ձեզ դուր է գալիս, այնուհետև սեղմեք Save: Ձեր փոփոխությունները կպահվեն անմիջապես ձեր pi- ում:

Պատրաստ լինելուց հետո այն նորից գործարկեք ՝ օգտագործելով վերջին սլաքի ստեղնը վերջին մուտքագրված հրամանի համար կամ պարզապես նորից մուտքագրեք այն և սեղմեք enter:

python tlgui.py

Դուք կարող եք նկատել, որ Terminal GUI- ի դասավորությունը մի փոքր ավելի գեղեցիկ տեսք ունի, քան Arduino- ի տարբերակը: Դա պայմանավորված է նրանով, որ PuTTY- ն աջակցում է unicode- ի նիշերին, ուստի մենք կարողացանք օգտագործել լրացուցիչ ցուցիչի կառավարման նիշեր ՝ այն ավելի նուրբ տեսք ունենալու համար:

Այստեղ կա նաև լրացուցիչ հրաման (համեմատած Arduino տարբերակի հետ), որը «dc» է շարունակական ընթերցման գործառույթի համար: Փորձեք այն և տեսեք, թե ինչ եք կարծում:

Վերջ!

Շնորհակալություն կարդալու համար և վայելեք pi- ի վրա կոտրելը:)

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