
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48



Կրկին բարեւ, Ատո՞ւմ եք, որ ձեր ռոբոտը բախվում է ամեն ինչի: Սա կլուծի այդ խնդիրը: 8 ձայնային տվիչներով սա բարդ է թվում … բայց իրականում ես դա շատ հեշտ դարձրեցի: Ես փորձում եմ տեղադրել նախագծեր, որոնք կօգնեն ձեզ սովորել Arduino- ի մասին և ցույց տալ «տուփից դուրս» հասկացությունը: Այս գրառումը կօգնի ձեզ հասկանալ 595 փոխարկումը, pro-minis- ը ՝ որպես ծրագրավորվող սենսոր և իրական ժամանակի հետադարձ կապի մեծ օգտագործումը: Եթե Arduino- ն Ձեզ դուր է գալիս որպես «պատճենեք և տեղադրեք և միացրեք», կարող եք պարզապես բաց թողնել սա:
Ես սիրում եմ օգտագործել pro-minis: Նրանք մոտ $ 2.50 են, աշխատում են որպես ամբողջովին փչված, իսկ վերնագրերի տեղադրումը դրանք դարձնում է շատ ճկուն: Օգտագործվում է որպես սենսորային միկրո, կարող եք նրան «անել այն, ինչ ցանկանում եք», այլ ոչ թե այն, ինչ թելադրում է գնված սենսորը: I2C- ի միջոցով, օգտագործելով ընդամենը 2 լար, դրանք կարող են կապված լինել մեկ գծի վրա: Այսպիսով, անցեք MEGA- ի վրայով, կարող եմ ունենալ 4 միկրոավտոբուս, որոնք աշխատում են կոդի 4 առանձին տողերով `միևնույն ժամանակ, ընդամենը $ 10.00: Այստեղ ես օգտագործում եմ մինի ՝ ձայնային տվիչները 595 -ով բացելու և իրական ժամանակում առաջնորդվող հեռավորությունը ցուցադրելու համար: Այնուհետև պարզապես կիսեք 8 բիթ տվյալները մայր տախտակին: Սա հանում է բեռը մայր տախտակից և շատ պարզ է դարձնում նրա ծածկագիրը:
Ձայնային տվիչների խնդիր կա… տեսողական հետադարձ կապ չկա: Դուք երբեք չգիտեք ՝ սենսորը պարզապես մեռած քաշ է, թե՞ աշխատում է: Կարծում եմ, ով երբևէ «BLINK» - ով է հանդես եկել, ավելի խելացի է, քան Էյնշտայնը: ՄԻԱՅՆ առաջնորդեց և մի ամբողջ տեղեկատվություն փոխանցվում է թարթելով: Այսպիսով, ձայնային տվիչին անհրաժեշտ է հետադարձ կապ: Այստեղ ես օգտագործեցի մի շարք լուսարձակներ `յուրաքանչյուր սենսորին վերահսկելու համար: Դրանք ձեզ պետք չեն, պարզապես տվիչներն առանց լուսարձակների պատրաստեք: Բայց PCB- ի վրա լուսարձակներ ունենալը օգտակար է:
Քայլ 1. Կատարեք PCB




պատրաստել PCB և բնակեցնել: Ո CAՇԱԴՐՈԹՅՈ …Ն … Ես սխալ թույլ տվեցի PCB- ի վրա 4 փին միացումներում, որպեսզի ձայնային տվիչները միացվեն: ECHO- ն և TRIGGER Vcc- ը և հիմքերը պատրաստվում էին միանալ համակարգչին: Միակցիչների համար բավականաչափ տեղ չկա, այնպես որ ես պարզապես PCB- ն պատրաստել եմ քորոցներով: Այսպիսով, դուք կարող եք մետաղալարեր միացնել PCB- ին և միացնել իրական ձայնային տվիչներին: Ինչ վերաբերում է լուսարձակին, ես ներսի եզրին դրեցի դեղին, իսկ դրսից `կարմիր: սա օգնում է ձեզ տեսնել հեռավորության վրա, եթե տվիչները ճիշտ են չափում:
Սա իմ կողմից երբևէ պատրաստած FEW 2side հատ համակարգիչներից մեկն է: Ես նախընտրում եմ 2 եա մեկ կողքով պատրաստել և թռիչք վարել: Բայց լուսադիոդային էկրանը ձեռք բերելու համար անհրաժեշտ է առնվազն վերին հատ հատ: Ներբեռնման մեջ ես առանձնացրեցի դասավորությունը:
PCB- ն կողմնակի մինի համար է ՝ A4-A5 եզրային վերնագրի ներսում: Ամեն դեպքում, պարզապես միացրեք A4-A5- ը Master A4-A5- ին: Մի մոռացեք նաև Vcc- ի և Grounds- ի մասին:
Քայլ 2: ՇԱՏ ՍԽԱԼՆԵՐ

Հիմա իմ սխալների համար … Ես փորձեցի միանգամից թրթռալ Triggers- ը (բոլորը կապված են միասին) և այս տեսակը լավ աշխատեց, բայց որոշ փոխազդեցություններ տեղի ունեցան: Այսպիսով, այժմ բոլոր ECHOS- ը անցնում են միկրո (8), իսկ TRIGGERS- ը սահմանվում է 595 -ով: Եվս երեք կապում (3): Ինչ վերաբերում է led- երին, ապա մուլտիպլեքսավորումը չի աշխատի: Յուրաքանչյուր led- ի համար ձեզ անհրաժեշտ է լրիվ միացված ժամանակ: Սա նշանակում է, որ յուրաքանչյուր 7 տողից յուրաքանչյուր տող պետք է ունենա իր 595 -ը: 595 -ը թարմացնելուց հետո լուսարձակները մնում են լուսավորված մինչև հաջորդ թարմացումը: Որտեղ led- ի բազմապատկումը միայն լույսեր է տալիս այդ վայրկյանի տասներորդը: Սա լավ է աշխատում իմ ընթերցողների համար և դրա համար անհրաժեշտ է միկրո: Sonամանակ չկա 8 ձայնային տվիչների սկանավորման և հեռավորությունների չափման համար: Փորձեցի և ստացա շատ վատ արդյունքներ: LED- ների բազմապատկումը կնշանակի նաև տող + սյունակի ցանց, իսկ դա նշանակում է PCB- ում 64+ հոսք:
Ես օգտագործել եմ 595 -ից ընդամենը 7 ելք PCB- ի խառնաշփոթի պատճառով: Հեռավորության վրա դուք չեք կարող ասել, արդյոք կա 7 կամ 8 լուսադիոդ միայն նրանց շարժման մեջ: Դուք կարող եք գայթակղվել կապել բոլոր լուսարձակները մեկ ռեզիստորի հետ, և դա աշխատում է, բայց զանգվածի պայծառությունը փոխվում է թույլ լուսարձակների քանակի հետ: Այսպիսով, մեկ LED- ի դիմաց մեկ դիմադրություն լավագույնն է: Ես պարզապես սիրում եմ 595-ը, բայց եթե նրանք պարզապես տեղափոխեն Vcc և 0-out կապում կամ կատարեն 18 փին ic միևնույն կողմի ԲՈԼՈՐ ելքներով … բոլոր ութ ելքերը միացնելն այնքան հեշտ կլիներ: Բայց հետո այն չէր վաճառվի 30 ցենտից պակաս:
Քայլ 3. ԼԵՌՆԱՅԻՆ ՍՆԵՍՈՐՆԵՐ




Սուրճի կափարիչին կպցրեք ձայնային տվիչներ: արական խցիկը պետք է թեքվի դեպի ներս յուրաքանչյուր սենսորի վրա: Սա ավելի լավ է աշխատում, եթե միաժամանակ թեքում եք մեկ կապում: Ես օգտագործեցի 2 կողային փրփուր ժապավեն, որպեսզի թրթռումն ավելի քիչ լինի: Իմ տվիչները չափազանց մոտ են, և նրանց անհրաժեշտ է 1/4 դյույմ տարածություն ՝ PCB- ին ավելի լավ համընկնելու համար: Ես նախկինում օգտագործել եմ ձայնային տվիչներ, և երբեմն մեկը չի կարողանում ճշգրիտ չափել, և դա պետք է նկատի ունենալ: Այնպես որ, դրանք մի՛ կպցրեք մշտապես:
Այն նաև օգնում է յուրաքանչյուրի վրա արագ հեռավորության թեստ անցկացնել դրանք օգտագործելուց առաջ: Ես ստանում եմ մոտ մեկ սենսոր ՝ 20 -րդ խմբաքանակի վատ ընթերցմամբ: Վատ չէ իմ վճարած գնի համար:
Քայլ 4: HARD WIRE

Մտածեցի, որ համակարգչից մինչև վարդակներ տեղ կլինի
ձայնային քորոցներ, բայց ես դուրս եկա սենյակից: Այսպիսով, ես միացրի pcb- ի ծայրը և պարզապես արձագանք և ձգան լարեր արեցի կանացի խցիկներով (8eaa): Ես միացրեցի սենսորների 8ea Vcc և 8ea հիմքերը, այնպես որ դա նրանց համար ընդամենը 2 միացում արեց PCB- ին:
8 սենսորով և 8 595-ով uno կամ pro-mini- ը չի կարող դա միացնել: Այս նախագծի շրջանակներում պետք է լինի 5 վ կարգավորվող աղբյուր: Իմ ռոբոտը մարտկոցներից ունի պարզ 7805 @ 1amp: Սա կապված է բոլոր 5v Vcc- ի հետ բոլոր սարքերի համար: 7805 -ը ընկնում է մոտ վոլտ, այնպես որ այն սնուցելու համար անհրաժեշտ է առնվազն 6,5 վոլտ: Դա 2 լիթիումի մարտկոց է 3.3 վ լարման դեպքում: Իմ ռոբոտը հին նիկադներ ունի օգտագործված փորվածքների տուփերից և 8 նիկադ աշխատում է տիպիկ չինական 12 վ շարժիչով շարժիչով ՝ 20 դոլար տանկի շասսիով:
Քայլ 5: Ներբեռնեք SONIC SKETCH

Ներբեռնեք ուրվագիծը և տեղադրեք: Խոսելու շատ եղանակներ կան
մեկ այլ uno, բայց ես սիրում եմ I2c- ն: շփոթությունը հասցեագրումն է և տիրոջը/ ստրուկին: Ինչպես սենսորների մեծ մասի դեպքում (2 -րդ մինի համարեք որպես սենսոր), դուք դիմում եք սենսորին և խնդրում x քանակությամբ բայթ: նույն բանը այստեղ: Երկրորդ մինիում դուք մի կողմ եք դնում x քանակությամբ բայթ, որը ցանկանում եք ուղարկել: Խառնաշփոթն այն է, որ անունները նշանակություն չունեն: Դա կօգնի ձեզ հիշել, եթե կիսեք անունները: Այսպիսով, ուրվագծում ես ուղարկում եմ ձայնային հեռավորության 8 չափումները սմ -ով ՝ որպես sendR1, sendR2, sendR3, sendR4, sendL1, sendL2, sendL3, sendL4: Տվյալների դեպքում վարպետը պարզապես ստանում է 8 բայթ, և դուք կարող եք այդ բայթերը անվանել այն, ինչ ցանկանում եք: Ես դրանք կարդացի որպես gotR1, gotR2, got….. Բայթերի ուղարկված կարգը նույնն է: Այսպիսով, բայթ A, B, C….. մի կարծեք, որ անունը փոխելով ձեզ կտան տարբեր տվյալներ: Եվ մյուս բռնելը, դուք կարող եք ստանալ միայն այն տվյալները, որոնք ասվում է, որ ուղարկվեն: Այսպիսով, եթե ցանկանում եք այլ տվյալներ, դուք պետք է փոխեք և՛ տիրոջ, և՛ ստրուկի:
Քայլ 6: ԿԱՊ

Կարող եք բաց թողնել սա, եթե գիտեք, թե ինչպես ստեղծել 2 Uno ՝ միմյանց հետ խոսելու համար: Վերջում ես ունեմ որոշ մանրուքներ: Դյուրին դարձնելու համար ես կանվանեմ M1 ռոբոտի բազայի uno- ն և ձայնային տվիչը `S2: Միացրեք Vcc, հիմք, A4, A5 միմյանց:
S2- ի ուրվագծում այն սկսվում է #ներառել
Այնուհետեւ ստեղծեք ուղարկելու համար 8 բայթ: բայթ R1, բայթ R2, բայթ L1 և այլն: Uno- ն 8 բիթանոց միկրո է, այնպես որ նրանք ուղարկում են 1 բայթ միաժամանակ ՝ օգտագործելով «բայթ» ՝ փոխարենը «ինտ» -ի փոխարեն:
'Setup ()' ավելացնել 'Wire.begin (հասցե)' սա I2c- ին ասում է, թե սա ինչ սարք է: Հասցեն սովորաբար ցանկացած թիվ է, որը Ձեզ դուր է գալիս 4 - 200 -ի սահմաններում: մեկ բայտի չափ: Այստեղ ես օգտագործել եմ 10. թիվը: Այսպիսով, այս S2 սենսորի հետ խոսելու համար վարպետը պետք է զանգի Wire.request- ից (10, 8): Սա հասցե 10 -ն է, իսկ 8 -ը `քանի բայթ է պահանջվում: Նաև «setup ()» - ում ավելացրեք Wire.onRequest (isr anyName): Երբ M1- ը կանչում է հարցումը, S2 սենսորը արձագանքում է ընդհատմանը: Սա պարզապես գործառույթն անվանում է anyName: Այսպիսով, այս anyName գործառույթը պետք է ստեղծվի: Նայեք էսքիզին և տեսեք 'sendThis () գործառույթը: Այստեղ է, որ բայթերն իրականում ուղարկվում են M1: Միայն բայթերն են գնում և ՈՉ անունները և ուղարկված կարգով: Այստեղից է սկսվում ուղարկվող տվյալների չափը և քանակը: Բայթերի այս հեշտ ձևաչափում ուղարկելը և ստանալը պետք է համապատասխանեն: Այստեղ ուղարկվել է 8 և ստացվել է 8 բայթ: Ֆունկցիա կանչելու համար մեկ նշում է պահանջում (): Ինչպես հետաձգումը (), millis (), Serial.print (): ISR (ծառայության ընդհատման ռեժիմ) օգտագործելիս գործառույթը կանչելը իջեցնում է () - ը: Այսպիսով, Wire.onRequest (sendThis) ոչ Wire.onRequest (sendThis ()):
Այն խառնաշփոթը, որ ես ունեի, տիրոջ/ստրուկի բանն էր: Սկզբում ես կարծում էի, որ վարպետը ԲՈԼՈՐ վարպետն է: Բայց ուրվագծի շրջանակում կարող եք փոխել վարպետը/ստրուկը `պահանջելու այլ միկրոներից կամ ուղարկելու այլ միկրոների: Քանի դեռ հետևել եք վերը նշված հիմնական ձևաչափին: Հիշեք… Դուք կիսում եք ՄԻԱՅՆ նշանակված տվյալները:
Երկու հատ պատից կոկիկ կտորներ: The isr ընդհատումը ընդհատում է միայն ուրվագծային գծերի միջև: Եթե դուք փակված եք «while կամ for» օղակի մեջ, ապա ոչինչ չի պատահի, մինչև օղակը դուրս չգա: Ոչ մի մեծ գործարք, քանի որ դա կարող է լինել մի քանի միկրովայրկյան, և տվյալները հին են:
Մյուս խնդիրն այն է, որ «միկրո» ներսում կա 100% սխալ սխալ հաշվարկ: 'Անկացած «դրսի» (լարերի) հաղորդակցություն ենթակա է սխալների: Կան բազմաթիվ եղանակներ ՝ ստուգելու, որ առաքված տվյալները սխալ են և համընկնում են աղբյուրի հետ: Ամենահեշտ ձևը ստուգիչ գումարն է: Պարզապես ավելացրեք ուղարկվող բայթերի (իրական արժեքների) ընդհանուր գումարները և ուղարկեք ընդհանուրները, իսկ ստացողի վերջում ավելացրեք տոտալները և տեսեք, թե արդյոք դրանք համընկնում են: Եթե դրանք համընկնում են լավ կամ նետում են այդ տվյալների հավաքածուն, եթե դրանք չեն համապատասխանում: Իհարկե, սա ներառում է ամբողջ արժեք ուղարկելը և ոչ թե բայթ: Այսպիսով, դուք պարզապես ամբողջ թիվը բաժանում եք HI բայտի և LO բայտի և ուղարկում որպես առանձին բայթ: Հետո միացրեք ընդունիչի մոտ:
ՀԵY:
int x = 5696; (ցանկացած վավեր int արժեք, առավելագույնը `65k կամ 32k բացասական)
բայթ hi = x >> 8; (22)
բայթ lo = x; (64)
ուղարկեք բայթերը և միավորեք մյուս ծայրում…
բայթ hi = Wire.read ();
բայթ lo = Wire.read ();
int newx = (hi << 8) + lo; (5696)
Քայլ 7: ՓԱԿՈՄ




Փակելու համար այս ձայնային տվիչը իրական ժամանակում մայր տախտակին տալիս է հեռավորության չմշակված տվյալներ: Սա ազատում է միկրոտն ու էսքիզը շատ ավելի բարդ է դարձնում: Միկրոն այժմ կարող է լավ որոշում կայացնել ՝ դանդաղեցնելու, շրջվելու, կանգնելու կամ հետ շրջելու համար ՝ հիմնվելով լավ տվյալների վրա ՝ պատահական գուշակությունների փոխարեն: Դիտեք bluetooth IDE- ի մասին իմ մյուս գրառումը ՝ առանց լարերի էսքիզներ վերբեռնելու և ձեր ռոբոտին անընդհատ միացնելու անհրաժեշտության ՝ ձեր ուրվագծի արագ փոփոխության համար: Շնորհակալություն սա դիտելու համար: oldmaninsc.
Խորհուրդ ենք տալիս:
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ - Քայլ առ քայլ: 4 քայլ

Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ | Քայլ առ քայլ. Այս նախագծում ես նախագծելու եմ մի պարզ Arduino մեքենայի հետադարձ կայանման սենսորային միացում ՝ օգտագործելով Arduino UNO և HC-SR04 ուլտրաձայնային տվիչ: Այս Arduino- ի վրա հիմնված Car Reverse ազդանշանային համակարգը կարող է օգտագործվել ինքնավար նավարկության, ռոբոտների ռանգի և այլ տեսականու համար
Ինչպես կատարել պարզ հետադարձ վարորդ ՝ 4 քայլ (նկարներով)

Ինչպես դարձնել պարզ հետադարձ վարորդ. Flyback տրանսֆորմատորը (FBT) հատուկ նախագծված տրանսֆորմատոր է, որի համար օգտագործվում է CRT էկրաններում: Այն ի վիճակի է արտադրել ավելի քան 50 կՎ: Այս հրահանգով ես պատրաստվում եմ հրահանգել, թե ինչպես պատրաստել պարզ հետադարձ վարորդ ՝ ուժային mosfet- ի միջոցով: Ստուգեք իմ ցանցերը
Solderdoodle Plus. Oldոդման երկաթ `հպման կառավարման միջոցով, LED հետադարձ կապ, 3D տպված պատյան և USB լիցքավորիչ` 5 քայլ (նկարներով)

Solderdoodle Plus. Oldոդման երկաթ ՝ հպման կառավարման միջոցով, LED հետադարձ կապ, 3D տպագրված պատյան և USB վերալիցքավորիչ. Խնդրում ենք սեղմել ներքև ՝ Solderdoodle Plus- ի մեր Kickstarter նախագծի էջ այցելելու համար, անլար USB լիցքավորվող տաք բազմաֆունկցիոնալ գործիք և նախապես պատվիրել արտադրական մոդել: https: //www.kickstarter.com/projects/249225636/solderdoodle-plus-cordless-usb-rechargeable-ho
Պարզ Arduino- ի վրա հիմնված Ergometer էկրան ՝ դիֆերենցիալ հետադարձ կապով. 7 քայլ (նկարներով)

Arduino- ի վրա հիմնված Ergometer էկրան ՝ դիֆերենցիալ հետադարձ կապով. Սրտամարզումը ձանձրալի է, հատկապես, փակ տարածքներում մարզվելիս: Գոյություն ունեցող մի քանի նախագծեր փորձում են մեղմել դա ՝ կատարելով զվարճալի իրեր, օրինակ ՝ էրգոմետրը միացնելով խաղային վահանակին կամ նույնիսկ մոդելավորելով իրական հեծանիվ վարելը VR- ով: Հուզիչ, ինչպես
IR- ի վրա հիմնված արագաչափից հետադարձ համակարգի միջոցով շարժիչի RPM- ի ինքնավար վերահսկում. 5 քայլ (նկարներով)

IR- ի վրա հիմնված արագաչափից հետադարձ համակարգի օգտագործմամբ շարժիչի RPM- ի ինքնավար վերահսկողություն. Միշտ անհրաժեշտ է գործընթացների ավտոմատացման անհրաժեշտություն, լինի դա պարզ/հրեշավոր: Այս նախագիծը կատարելու գաղափարը ես գտա մի պարզ մարտահրավերից, որին ես բախվեցի գտնելու ժամանակ: մեր փոքր կտոր հողը ջրելու/ոռոգելու մեթոդներ: Ընթացիկ մատակարարման գծի խնդիրը