Мазмұны:

Arduino көмегімен инфрақызыл радар: 6 қадам
Arduino көмегімен инфрақызыл радар: 6 қадам

Бейне: Arduino көмегімен инфрақызыл радар: 6 қадам

Бейне: Arduino көмегімен инфрақызыл радар: 6 қадам
Бейне: Blink LED with Arduino UNO and IR sensor at Home | DIY projects | 2024, Қараша
Anonim
Image
Image

Бұл шағын жобада мен сізге Arduino көмегімен үйде қарапайым радарды қалай құруға болатынын көрсеткім келеді. Интернетте көптеген ұқсас жобалар бар, бірақ олардың барлығы қашықтықты өлшеу үшін ультрадыбыстық сенсорды қолданады. Бұл жобада мен қашықтықты өлшеу үшін инфрақызыл сенсорды қолданамын.

Менің мақсатым - онымен өте қарапайым және арзан LIDAR жүйесін құру және картографиялық құрылғыны енгізу.

Жабдықтар

  • Arduino (мен Maple Mini қолдандым)
  • Айқын қашықтық сенсоры (мен Sharp GP2Y0A02YK0F қолдандым)
  • Микросерво (9г)
  • Нан тақтасы, сымдар
  • Қосымша: 4.7k резистор, 100nF конденсатор

1 -қадам: ультрадыбыстық VS инфрақызыл сенсор

Схемалық
Схемалық

Ультрадыбыстық және инфрақызыл сенсорлардың негізгі айырмашылығы - ультрадыбыстық сенсор қашықтықты кеңірек диапазонда өлшейді. Сондықтан ол кедергінің орнын дәл анықтай алмайды. Бұл ~ +30 ° бұрыш диапазонында орналасқан ең жақын объектінің қашықтығын өлшейтінін білдіреді.

Әрине, бұл Sharp сенсоры жақсы дегенді білдірмейді. Кейде бұл қасиет өте пайдалы болуы мүмкін (мысалы, дрондар жерден биіктікті өлшеу үшін қолданылады). Дұрыс таңдау сіздің жобаңыздың талаптарына байланысты.

2 -қадам: схемалық

Схемалық
Схемалық
Схемалық
Схемалық

Бөлшектер арасындағы байланысты орнату өте қарапайым. Arduino тақтасында PWM шығысы мен аналогтық кірісті таңдап, осы түйреуіштерге Servo және Sharp қашықтық сенсорларын қосыңыз. Мен бұл үшін келесі түйреуіштерді қолдандым:

  • PA0: Sharp қашықтық сенсоры үшін аналогтық кіріс
  • PA9: Servo үшін PWM шығысы

Кейде Sharp IR сенсоры шу шығаруы мүмкін, сондықтан оған қарапайым төмен сүзгі қою керек. Мен аналогтық істікшенің шуын азайту үшін 4.7k резистор мен 100nF конденсаторды қолдандым. Сонымен қатар, мен кодтағы өлшенген мәнді бірнеше рет оқып, орташа мәнді есептеп сүздім.

3 -қадам: сенсордың сипаттамасы

Сенсорға тән
Сенсорға тән
Сенсорға тән
Сенсорға тән

Өкінішке орай, қолданылатын инфрақызыл қашықтық сенсоры сызықты емес сипаттамаларға ие. Бұл қашықтықты алу үшін өлшенген ADC мәнін тұрақты мәнге көбейту және оған басқа тұрақты мәнді қосу жеткіліксіз екенін білдіреді.

Сенсордың деректер кестесі сипаттаманы қамтамасыз етсе де, мен оны белгілі бір жобада өлшегенді жөн көремін (ол қолданылатын кернеуге байланысты болуы мүмкін). Ол үшін мен әрбір 10 см үшін өлшенген ADC мәні мен қашықтығынан жұптар жасадым. (Менің сенсорым 12 см -ден дұрыс қашықтықты өлшей алды).

Мен бұл жұптарды сызықтық интерполяциямен дұрыс қашықтықты алу үшін қолдандым.

Құжаттың соңында ADC мәнін өлшеу үшін қарапайым Arduino кодын табасыз.

4 -қадам: сериялық байланыс

Сериялық байланыс
Сериялық байланыс

Мен өлшенген бұрыштық қашықтықтың мәндерін дербес компьютерге жіберу үшін сериялық байланысты қолдандым. Мен бірнеше байтты және әр түрлі хабарламаларды жіберуім керек болғандықтан, мен қарапайым байланыс хаттамасын жасадым.

Бұл прокотол әр түрлі хабар түрлерін жалпы түрде анықтауға мүмкіндік береді. Бұл жобада мен 2 хабар түрін қолдандым:

  • Параметрлер: Ардуинода максималды қашықтық пен кедергілер саны сияқты анықталған ДК қосымшасына параметрлерді жіберу үшін қолданылады.
  • Кедергілер: анықталған кедергіні жіберу үшін қолданылады. Ол серво бұрышымен және өлшенетін қашықтықпен анықталады. X-y позициясы ДК қосымшасы бойынша есептеледі.

5 -қадам: Qt қосымшасы

Qt қосымшасы
Qt қосымшасы

Arduino -мен байланыс орнату және өлшенетін нүктелерді радар сияқты салу үшін мен Qt (C ++) компьютерлік қосымшасын жасадым. Ол кейбір параметрлерді (Arduino -да анықталған) және өлшенген қашықтық нүктелерін алады.

Сіз қосымшаны және оның бастапқы кодын жүктей аласыз.

6 -қадам: Arduino бастапқы коды

Сіз макростармен кодтың жоғарғы жағындағы кейбір параметрлерді реттей аласыз.

Назар аударыңыз, егер сіз Sharp қашықтық сенсорының сипаттамасын өзгертсеңіз, distAdcMap массивінің мәндерін өзгертуіңіз керек!

  • InfraRadar.c: радар коды. Оны көшіріп, Arduino жобасына қойыңыз.
  • InfraRadarMeasurement.c: сипаттамалық өлшеу коды. Оны көшіріп, Arduino жобасына қойыңыз. ADC мәндерін тексеру үшін сериялық консольді пайдаланыңыз.

Ұсынылған: