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

Ինֆրակարմիր ռադիոլոկացիոն սարք Arduino- ով `6 քայլ
Ինֆրակարմիր ռադիոլոկացիոն սարք Arduino- ով `6 քայլ

Video: Ինֆրակարմիր ռադիոլոկացիոն սարք Arduino- ով `6 քայլ

Video: Ինֆրակարմիր ռադիոլոկացիոն սարք Arduino- ով `6 քայլ
Video: Ռուսաստանի MiG-31 Foxhound: Mach 3.0 Monster Supersonic մարդասպան 2024, Նոյեմբեր
Anonim
Image
Image

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

Իմ նպատակն է դրանով ստեղծել շատ պարզ և էժան LIDAR համակարգ և ներդնել քարտեզագրման սարք:

Պարագաներ

  • Arduino (ես օգտագործել եմ Maple Mini)
  • Կտրուկ հեռավորության սենսոր (ես օգտագործել եմ Sharp GP2Y0A02YK0F)
  • Միկրո սերվո (9 գ)
  • Հացաթուղթ, լարեր
  • Լրացուցիչ ՝ 4.7k Resistor, 100nF կոնդենսատոր

Քայլ 1. Ուլտրաձայնային VS ինֆրակարմիր ցուցիչ

Սխեմատիկ
Սխեմատիկ

Ուլտրաձայնային և ինֆրակարմիր հեռավորության տվիչների միջև հիմնական տարբերությունն այն է, որ ուլտրաձայնային տվիչը չափում է հեռավորությունը ավելի լայն տիրույթում: Հետևաբար, այն ի վիճակի չէ ճշգրիտ տեղորոշել խոչընդոտի դիրքը: Դա նշանակում է, որ այն չափում է ամենամոտ օբյեկտի հեռավորությունը, որը գտնվում է ~ +-30 ° անկյունային տիրույթի ներսում:

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

Քայլ 2: Սխեմատիկ

Սխեմատիկ
Սխեմատիկ
Սխեմատիկ
Սխեմատիկ

Շատ պարզ է մասերի միջև կապ հաստատելը: Ընտրեք PWM ելք և անալոգային մուտք ձեր Arduino տախտակի վրա և միացրեք Servo և Sharp հեռավորության տվիչները այդ կապումներին: Այս նպատակով ես օգտագործել եմ հետևյալ քորոցները.

  • PA0: Անալոգային մուտքագրում Սուր հեռավորության տվիչի համար
  • PA9: PWM ելք Servo- ի համար

Երբեմն Sharp IR սենսորը կարող է ունենալ աղմկոտ ելք, հետևաբար, դրա վրա պետք է տեղադրեք պարզ Low Pass զտիչ: Անալոգային քորոցի վրա աղմուկը նվազեցնելու համար ես օգտագործել եմ 4.7k դիմադրություն և 100nF կոնդենսատոր: Բացի այդ, ես նաև զտեցի ծածկագրում չափված արժեքը ՝ այն մի քանի անգամ կարդալով և հաշվարկելով միջինը:

Քայլ 3. Սենսորային բնութագրական

Սենսոր Բնութագրական
Սենսոր Բնութագրական
Սենսոր Բնութագրական
Սենսոր Բնութագրական

Unfortunatelyավոք, օգտագործված ինֆրակարմիր հեռավորության տվիչը ունի ոչ գծային բնութագիր: Դա նշանակում է, որ հեռավորությունը ստանալու համար բավական չէ չափված ADC արժեքը բազմապատկել հաստատուն արժեքով և դրան ավելացնել մեկ այլ հաստատուն արժեք:

Չնայած սենսորի տվյալների թերթիկն ապահովում է բնութագիրը, ես նախընտրում եմ այն ինքս չափել կոնկրետ նախագծում (դա կարող է կախված լինել օգտագործվող լարումից): Դրա համար ես չափված ADC արժեքից և հեռավորությունից զույգեր պատրաստեցի յուրաքանչյուր 10 սմ -ի համար: (Իմ տվիչը կարողացավ չափել ճիշտ հեռավորությունը 12 սմ -ից):

Ես օգտագործել եմ այս զույգերը ծածկագրում ՝ գծային միջերեսման միջոցով ճիշտ հեռավորություն ստանալու համար:

Փաստաթղթի վերջում դուք կգտնեք պարզ Arduino կոդ ՝ բնութագրիչ չափման ընթացքում ADC արժեքը չափելու համար:

Քայլ 4: Սերիական հաղորդակցություն

Սերիական հաղորդակցություն
Սերիական հաղորդակցություն

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

Այս պրոկոտոլը հնարավորություն է տալիս ընդհանուր ձևով սահմանել հաղորդագրությունների տարբեր տեսակներ: Այս նախագծում ես օգտագործեցի հաղորդագրությունների 2 տեսակ.

  • Պարամետրեր. Օգտագործվում է Arduino- ում սահմանված պարամետրեր համակարգչային հավելվածին ուղարկելու համար, ինչպիսիք են առավելագույն հեռավորությունը և փուլում խոչընդոտների քանակը:
  • Խոչընդոտ. Օգտագործվում է հայտնաբերված խոչընդոտ ուղարկելու համար: Այն որոշվում է սերվոյի անկյունով և չափված հեռավորությամբ: X-y դիրքը կհաշվարկվի համակարգչի կիրառմամբ:

Քայլ 5: Qt դիմում

Qt դիմում
Qt դիմում

Arduino- ի հետ շփվելու և ռադարի նման չափված կետերը գծելու համար ես Qt (C ++) համակարգչային ծրագիր եմ պատրաստել: Այն ստանում է որոշ պարամետրեր (սահմանված է Arduino- ով) և չափված հեռավորության կետերը:

Կարող եք ներբեռնել նաև ծրագիրը և դրա սկզբնաղբյուրը:

Քայլ 6: Arduino կոդ

Կոդի վերևում կարող եք որոշ պարամետրեր հարմարեցնել մակրոներով:

Նկատի ունեցեք, որ եթե փոխեք Sharp հեռավորության տվիչի բնութագիրը, դուք պետք է փոփոխեք distAdcMap զանգվածի արժեքները:

  • InfraRadar.c: Ռադիոլոկացիոն կոդ: Պատճենեք և տեղադրեք ձեր Arduino նախագծում:
  • InfraRadarMeasurement.c: Բնութագրական չափման կոդ: Պատճենեք և տեղադրեք ձեր Arduino նախագծում: Օգտագործեք Serial Console ՝ ADC արժեքները ստուգելու համար:

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