Агуулгын хүснэгт:

Робот дагах дэвшилтэт шугам: 22 алхам (зурагтай)
Робот дагах дэвшилтэт шугам: 22 алхам (зурагтай)

Видео: Робот дагах дэвшилтэт шугам: 22 алхам (зурагтай)

Видео: Робот дагах дэвшилтэт шугам: 22 алхам (зурагтай)
Видео: КАК НАСТРОИТЬ L4D2 2024, Долдугаар сарын
Anonim
Image
Image
Прототип бичих - Perfboard
Прототип бичих - Perfboard

Энэ бол миний бүтээсэн бөгөөд нэлээд удаан хугацаанд ажиллаж байсан Teensy 3.6 ба QTRX шугамын мэдрэгч дээр суурилсан роботын дараах дэвшилтэт шугам юм. Миний өмнөх роботыг дагаж байсан дизайн, гүйцэтгэлд зарим томоохон сайжруулалт хийсэн. Роботын хурд, хариу үйлдэл сайжирсан. Ерөнхий бүтэц нь авсаархан, хөнгөн. Бүрэлдэхүүн хэсгүүдийг дугуйны тэнхлэгт ойрхон байрлуулсан бөгөөд ингэснээр өнцгийн импульсийг бууруулна. Өндөр хүчин чадалтай бичил металл арааны мотор нь хангалттай эргүүлэх хүчийг өгдөг бөгөөд хөнгөн цагаан зангилааны силикон дугуй нь өндөр хурдтай маш их шаардлагатай зүтгүүрийг санал болгодог. Бамбай ба дугуйны кодлогч нь роботын байрлал, чиглэлийг тодорхойлох боломжийг олгодог. Teensyview -ийг самбар дээр суулгасны дараа холбогдох бүх мэдээллийг дүрслэн харуулах боломжтой бөгөөд програмын чухал параметрүүдийг товчлуур ашиглан шинэчилж болно.

Энэхүү роботыг бүтээж эхлэхийн тулд танд дараах хангамж хэрэгтэй болно (мөн танд маш их цаг хугацаа, тэвчээр хэрэгтэй болно).

Хангамж

Электроник

  • Teensy 3.6 Хөгжлийн зөвлөл
  • Хөдөлгөөн мэдрэгч бүхий тулгуур бамбай
  • Sparkfun TeensyView
  • Pololu QTRX-MD-16A тусгал мэдрэгчийн массив
  • 15х20 см хэмжээтэй хоёр талт ПХБ-ийн загвар
  • Pololu Step-Up/Step-Down Voltage Regulator S9V11F3S5
  • Pololu Тохируулах 4-5-20V хүчдэл зохицуулагч U3V70A
  • MP12 6V 1580 эрг / мин хурдтай мотор нь кодлогчтой (x2)
  • DRV8833 Хос моторт драйвер тээвэрлэгч (x2)
  • 3.7V, 750mAh Li-Po батерей
  • ON/OFF унтраалга
  • Электролитийн конденсатор 470uF
  • Электролитийн конденсатор 1000uF (x2)
  • Керамик конденсатор 0.1uF (x5)
  • Товчлуур (x3)
  • 10мм Ногоон LED (x2)

Техник хангамж

  • Атом силикон дугуй 37x34mm (x2)
  • 3/8 инчийн металл бөмбөлөг бүхий Пололу бөмбөг цутгамал
  • N20 хөдөлгүүрийн бэхэлгээ (x2)
  • Боолт ба самар

Кабель ба холбогч

  • 24AWG уян хатан утас
  • 24 зүү FFC -ээс DIP тасархай ба FFC кабель (А хэлбэр, 150мм урттай)
  • Дугуй эмэгтэй зүү толгой
  • Дугуй эмэгтэй зүү толгой урт терминал
  • Баруун өнцөгт хос эгнээний эмэгтэй толгой
  • Баруун өнцөгт хос эгнээний эрэгтэй толгой
  • Эрэгтэй зүү толгой
  • Эрэгтэй зүү зүү толгой

Багаж хэрэгсэл

  • Мультиметр
  • Гагнуурын төмөр
  • Гагнуурын утас
  • Утас хуулагч
  • Утас таслагч

Алхам 1: Системийн тойм

Өмнө нь өөрөө тэнцвэржүүлдэг робот зохион бүтээсэнтэй адил энэ робот нь бүтцийн зориулалтаар үйлчилдэг, самбар дээр суурилуулсан хагарах самбаруудын нэгдэл юм.

Роботын гол системийг доор харуулав.

Микроконтроллер: 32 бит 180MHz ARM Cortex-M4 процессортой Teensy 3.6 хөгжлийн самбар.

Шугамын мэдрэгч: Pololu-ийн QTRX-MD-16A 16 сувгийн аналог гаралтын шугамын мэдрэгчийн массив нь дунд нягтралтай (8мм-ийн давирхай).

Хөтөч: 6V, 1580 эрг / мин, өндөр хүчирхэг бичил металл арааны мотор, соронзон дугуй кодлогчтой, хөнгөн цагаан зангилаан дээр суурилуулсан силикон дугуйтай.

Одометр: Соронзон дугуйт кодлогч хосолсон координат ба зайг тооцоолох боломжтой.

Чиглэл мэдрэгч: Роботын байрлал, чиглэлийг тооцоолох хөдөлгөөн мэдрэгч бүхий тулгуур бамбай.

Цахилгаан хангамж: 3.7V, 750mAh липо батерей нь тэжээлийн эх үүсвэр болно. 3.3V дээш/доош зохицуулагч нь микроконтроллер, мэдрэгч, дэлгэцийн төхөөрөмжийг ажиллуулдаг. Тохируулах боломжтой зохицуулагч нь хоёр хөдөлгүүрийг тэжээдэг.

Хэрэглэгчийн интерфэйс: Мэдээллийг харуулах Teensyview. Хэрэглэгчийн оролтыг хүлээн авах гурван товчлуур. Ажиллаж байх үеийн байдлыг харуулах зориулалттай 10 мм диаметртэй хоёр өнгийн ногоон LED.

Алхам 2: Прототип хийж эхэлье

Image
Image

Бид дээр дурдсан хэлхээг perfboard дээр хэрэгжүүлэх болно. Бид эхлээд толгойгоо гагнах замаар таслах самбараа бэлэн байлгах ёстой. Видео нь ямар толгойг ямар хагарах самбар дээр гагнах ёстой талаар санаа өгөх болно.

Толгойг таслах самбар дээр гагнсны дараа Teensyview ба товчлуурыг Teensy дээр байрлуул.

Алхам 3: Прототип бичих - Perfboard

Прототип бичих - Perfboard
Прототип бичих - Perfboard

15x20 см хэмжээтэй хоёр талтай перфортоны загварыг авч, зурган дээр үзүүлсэн шиг хил хязгаарыг байнгын маркераар тэмдэглээрэй. Цагаан дугуйлангаар тэмдэглэгдсэн байршилд мэдрэгчийн массив, цутгамал дугуй, бичил металлын арааны моторыг суурилуулах M2 хэмжээтэй нүх өрөмдөнө. Хожим нь бид бүх бүрэлдэхүүн хэсгүүдийг гагнах, туршиж үзээд хилийн дагуу самбарыг таслах болно.

Бид загвар зохион бүтээх ажлыг цаасан самбар дээрх толгойн зүү, залгуурыг гагнах замаар эхлүүлэх болно. Хэсэгчилсэн самбарыг дараа нь эдгээр толгой хэсэгт оруулах болно. Цонхны самбар дээрх толгойн байрлалыг сайтар анхаарч үзээрэй. Бид толгойн схемд үндэслэн бүх утсыг холбох болно.

Алхам 4: Прототип хийх - Prop Shield

Prototyping - Prop Shield
Prototyping - Prop Shield
Prototyping - Prop Shield
Prototyping - Prop Shield
Prototyping - Prop Shield
Prototyping - Prop Shield
Prototyping - Prop Shield
Prototyping - Prop Shield

Бид эхлээд тулгуур бамбай руу холболтыг гагнах болно. Бид зөвхөн тулгуур бамбайны хөдөлгөөн мэдрэгчийг ашиглаж байгаа тул 3V болон тулгуур бамбайны газардуулгаас гадна зөвхөн SCL, SDA, IRQ зүүг холбох шаардлагатай.

Холболт дууссаны дараа Teensy болон prop shield -ийг оруулаад энд дурдсан алхмуудыг дагаж хөдөлгөөн мэдрэгчийг тохируулаарай.

Алхам 5: Прототип хийх - Эрчим хүч ба газар

Прототип бичих - хүч ба газар
Прототип бичих - хүч ба газар

Зураг дээр үндэслэн бүх цахилгаан болон газардуулгын холболтыг гагнах. Бүх таслах самбарыг байрлуулж, мултиметр ашиглан тасралтгүй байдлыг хангана. Самбар дээрх өөр өөр хүчдэлийн түвшинг шалгана уу.

  • Li-po гаралтын хүчдэл (ихэвчлэн 3V ба 4.2V хооронд)
  • Зохицуулагчийн гаралтын хүчдэл (3.3V)
  • Зохицуулагчийн гаралтын хүчдэлийг тохируулах боломжтой (6V хүртэл тохируулсан)

Алхам 6: Прототип хийх - Мотор жолооч тээвэрлэгч

Прототип хийх - Мотор жолооч тээвэрлэгч
Прототип хийх - Мотор жолооч тээвэрлэгч
Прототип хийх - Мотор жолооч тээвэрлэгч
Прототип хийх - Мотор жолооч тээвэрлэгч
Прототип хийх - Мотор жолооч тээвэрлэгч
Прототип хийх - Мотор жолооч тээвэрлэгч

DRV8833 хос моторт драйвер тээвэрлэгч самбар нь нэг сувагт 1.2А тасралтгүй ба 2А оргил гүйдлийг дамжуулах боломжтой. Бид нэг моторыг жолоодохын тулд хоёр сувгийг зэрэгцээ холбоно. Доорх алхамуудыг дагаж холболтыг гагнана.

  • Зураг дээр үзүүлсэн шиг мотор жолоочийн зөөгчийн хоёр оролт ба хоёр гаралтыг зэрэгцүүлээрэй.
  • Оролтын хяналтын утсыг мотор драйвертай холбоно уу.
  • 1000uF электролитийн конденсатор ба 0.1uF керамик конденсаторыг хоёр тээвэрлэгч хавтангийн Vin ба Gnd терминалуудад холбоно.
  • 0.1uF керамик конденсаторыг мотор драйверын гаралтын терминал дээр холбоно уу.

Алхам 7: Прототип бичих - шугамын мэдрэгчийн массивын толгой

Прототип бичих - шугамын мэдрэгчийн массивын толгой
Прототип бичих - шугамын мэдрэгчийн массивын толгой
Прототип бичих - шугамын мэдрэгчийн массивын толгой
Прототип бичих - шугамын мэдрэгчийн массивын толгой
Прототип бичих - шугамын мэдрэгчийн массивын толгой
Прототип бичих - шугамын мэдрэгчийн массивын толгой
Прототип бичих - шугамын мэдрэгчийн массивын толгой
Прототип бичих - шугамын мэдрэгчийн массивын толгой

Teensy 3.6 нь ADC0 ба ADC1 гэсэн хоёр ADC -тэй бөгөөд тэдгээр нь 25 хүртээмжтэй тээглүүрээр үржигддэг. Бид хоёр ADC -ээс хүссэн хоёр тээглүүрт нэгэн зэрэг хандах боломжтой. Бид найман шугамын мэдрэгчийг тус бүрийг ADC0 ба ADC1 холбоно. Тэгш тооны мэдрэгчийг ADC1 -д, сондгой тооны мэдрэгчийг ADC0 -д холбох болно. Доорх алхамуудыг дагаж холболтыг гагнана. Бид дараа нь FFC ашиглан шугамын мэдрэгчийг DIP адаптер болон кабельд холбох болно.

  • Зурагт үзүүлсэн шиг бүх тэгш мэдрэгч тээглүүрийг (16, 14, 12, 10, 8, 6, 4, 2) холбоно уу. 12 -р мэдрэгчийн зүүг холбох утсыг perfboard -ийн ар тал руу чиглүүлнэ.
  • Ялгаруулагчийн хяналтын зүү (EVEN) -ийг Teensy pin 30 руу холбоно уу.
  • Зурагт үзүүлсэн шиг бүх сондгой мэдрэгч тээглүүрийг (15, 13, 11, 9, 7, 5, 3, 1) холбоно уу.
  • Vcc ба Gnd даяар 470uF электролитийн конденсаторыг холбоно уу.

Хэрэв та самбар дээрх шугамын мэдрэгчийн зүү ба тэдгээрийн харгалзах толгойн зүүг сайтар ажиглавал шугам мэдрэгчийн дээд эгнээ нь самбар дээрх толгойн доод эгнээтэй таарч байгааг анзаарах болно. Учир нь бид хоёр эгнээний баруун өнцөг бүхий толгойнуудыг ашиглан шугамын мэдрэгчийг perfboard-той холбоход мөрүүд зөв таарах болно. Үүнийг олж тогтоох, програм дахь зүү даалгавруудыг засах нь надад нэлээд хугацаа зарцуулсан.

Алхам 8: Прототип хийх - Бичил арааны мотор ба кодлогч

Прототип хийх - Микро арааны мотор ба кодлогч
Прототип хийх - Микро арааны мотор ба кодлогч
  • N20 хөдөлгүүрийн бэхэлгээг ашиглан кодчилогч бүхий бичил металл араа моторыг засах.
  • Зураг дээр үзүүлсэн шиг мотор болон кодлогчын утсыг холбоно уу.
  • Зүүн кодлогч - Teensy pin 4 & 0
  • Баруун кодлогч - Teensy pins 9 & 27

Алхам 9: Прототип хийх - LED

Прототип хийх - LED
Прототип хийх - LED
Прототип хийх - LED
Прототип хийх - LED

Хоёр LED нь робот эргэлтийг илрүүлсэн эсэхийг илрүүлдэг. Би LED-ийг Teensy-тэй холбохын тулд 470 омын цуврал резистор ашигласан.

  • Зүүн LED анод Teensy pin 6 руу
  • Teensy pin 8 -ийн баруун LED анод

Алхам 10: Прототип хийх - таслах

Image
Image
Prototyping - Breakouts
Prototyping - Breakouts

Perfboard дээр бүх гагнуураа хийж дууссаны дараа бид perfboard дээр тэмдэглэсэн хилийн дагуу сайтар хайчилж, перфорбордын нэмэлт хэсгүүдийг арилгаж чадна. Түүнчлэн, хоёр дугуй ба цутгамал дугуйг холбоно уу.

Бүх таслах самбарыг холбогдох үүрэнд нь оруулна уу. FFC-DIP таслуурыг оруулах, QTRX-MD-16A шугамын мэдрэгчийг засахын тулд видеог үзнэ үү.

Алхам 11: Програм хангамжийн номын сангуудын тойм

Програм хангамжийн номын сангуудын тойм
Програм хангамжийн номын сангуудын тойм

Бид Teensy -ийг Arduino IDE дээр програмчлах болно. Эхлэхээсээ өмнө бидэнд зарим номын сан хэрэгтэй болно. Бидний ашиглах номын сангууд нь:

  • Кодлогч
  • Өсвөр насныхны үзэл бодол
  • EEPROM
  • ADC
  • NXPMotionSense

Мөн энэ роботыг тусгайлан бичсэн заримыг

  • Дарах товчлуур
  • LineSensor
  • Teensyview цэс
  • Мотор

Энэхүү роботод зориулагдсан номын сангуудын талаар нарийвчлан ярилцаж, дараагийн алхамуудад татаж авах боломжтой.

Алхам 12: Номын сангийн тайлбар - PushButton

Энэхүү номын сан нь Teensy -тай түлхэх товчлуурын самбарыг холбоход зориулагдсан болно. Ашигласан функцууд нь

PushButton (int leftButtonPin, int centreButtonPin, int rightButtonPin);

Энэ бүтээгчийг объект үүсгэх замаар дуудах нь түлхүүрийн товчлуурыг INPUT_PULLUP горимд тохируулдаг.

int8_t waitForButtonPress (хүчингүй);

Энэ функц нь товчлуурыг дарж суллах хүртэл хүлээгээд түлхүүр кодыг буцаана.

int8_t getSingleButtonPress (хүчингүй);

Энэ функц нь товчлуур дарж суллах эсэхийг шалгадаг. Хэрэв тийм бол түлхүүр кодыг буцаана, өөр тэгийг буцаана.

Алхам 13: Номын сангийн тайлбар - Шугам мэдрэгч

LineSensor бол Teensy -тай шугамын мэдрэгчийн массивыг холбох номын сан юм. Дараахь функцийг ашигладаг.

LineSensor (хүчингүй);

Объект үүсгэх замаар энэхүү бүтээгчийг дуудах нь ADC0 ба ADC1 -ийг эхлүүлж, EEPROM -ийн босго, хамгийн бага ба хамгийн их утгыг уншиж, мэдрэгчийн зүүг оролтын горимд, ялгаруулагчийн хяналтын зүүг гаралтын горимд тохируулдаг.

хүчингүй шалгалт тохируулга (uint8_t calibrationMode);

Энэ функц нь шугамын мэдрэгчийг тохируулдаг. CalibrationMode нь MIN_MAX эсвэл MEDIAN_FILTER байж болно. Энэ функцийг дараагийн алхамд нарийвчлан тайлбарласан болно.

void getSensorsAnalog (uint16_t *sensorValue, uint8_t горим);

Мэдрэгчийн массивыг аргумент болгон дамжуулсан гурван горимын аль нэгэнд уншдаг. Энэ горим нь ялгаруулагчдын төлөв бөгөөд ON, OFF, TOGGLE байж болно. TOGGLE горим нь орчны гэрлийн улмаас мэдрэгчийн тусгалыг тусгадаг. ADC0 ба ADC1 -д холбогдсон мэдрэгчийг синхроноор уншдаг.

int getLinePosition (uint16_t *sensorValue);

Шугам дээрх мэдрэгчийн массивын байрлалыг жигнэсэн дундаж аргаар тооцоолно.

uint16_t getSensorsBinary (uint16_t *sensorValue);

Мэдрэгчийн төлөв байдлын 16 битийн дүрслэлийг буцаана. Хоёртын нэг нь мэдрэгч шугамаас хэтэрсэн, хоёртын тэг нь мэдрэгч шугамаас гадуур байгааг илтгэнэ.

uint8_t countBinary (uint16_t binaryValue);

Энэ функцэд мэдрэгчийн утгын 16 битийн дүрслэлийг дамжуулснаар шугам дээрх мэдрэгчийн тоог буцаана.

void getSensorsNormalized (uint16_t *sensorValue, uint8_t горим);

Мэдрэгчийн утгыг уншиж, мэдрэгч бүрийн утгыг харгалзах мин ба хамгийн их утгад хязгаарладаг. Дараа нь мэдрэгчийн утгыг харгалзах мин -аас хамгийн их мужаас 0 -ээс 1000 хүртэлх мужид буулгадаг.

Алхам 14: Номын санг тайлбарлав - TeensyviewMenu

TeensyviewMenu бол дэлгэцийн цэсийн функцэд хандах боломжтой номын сан юм. Дараахь функцийг ашигладаг.

TeensyViewMenu (хүчингүй);

Энэхүү бүтээгчийг дуудах нь LineSensor, PushButton болон TeensyView ангиллын объектыг үүсгэдэг.

хоосон танилцуулга (хүчингүй);

Энэ нь цэсийг удирдахад зориулагдсан болно.

хүчингүй тест (хүчингүй);

Туршилтанд зориулж Teensyview дээр шугамын мэдрэгчийн утгыг харуулах үед үүнийг цэс дотроо нэрлэдэг.

Алхам 15: Номын сангийн тайлбар - Мотор

Мотор бол хоёр хөдөлгүүрийг жолоодоход ашигладаг номын сан юм. Дараахь функцийг ашигладаг.

Мотор (хоосон);

Энэ бүтээгчийг объект үүсгэх замаар дуудах нь хөдөлгүүрийн чиглэл ба ХОУХ -ны хяналтын тээглүүрийг гаралтын горимд тохируулдаг.

хүчингүй setSpeed (int leftMotorSpeed, int rightMotorSpeed);

Энэ функцийг дуудах нь хоёр моторыг аргумент болгон өгсөн хурдаар удирддаг. Хурдны утга нь -255 -аас +255 хооронд хэлбэлзэж, эргэх чиглэл өөрчлөгдсөнийг харуулсан сөрөг тэмдэгтэй байж болно.

Алхам 16: Туршилт - Enoder Odometry

Бид соронзон дугуйны кодлогчдыг туршиж, роботын туулсан байрлал, зайг харуулах болно.

DualEncoderTeensyview.ino -г байршуулах. Хөтөлбөр нь Teensyview дээр кодлогч тэмдэглэгээг харуулдаг. Хэрэв та роботыг урагшлуулах юм бол кодлогч нэмэгдэнэ, хэрэв та арагшаа хөдөлвөл буурна.

Одоо EncoderOdometry.ino -ийг байршуулна уу. Энэхүү програм нь роботын байрлалыг x-y координатаар харуулах, нийт зайг сантиметрээр, өнцгийг градусаар эргүүлэхэд харуулна.

Би кодлогчийн хачигт байр сууриа тодорхойлохын тулд Seattle Robotics Society -ийн R/C Servo дифференциал хөтөч бүхий робот дээр Odometry -ээр хэрэгжүүлэх Dead Reckoning -ийг оруулсан.

Алхам 17: Туршилт - Бамбайны хөдөлгөөн мэдрэгч

Энд дурдсан алхмуудыг дагаж хөдөлгөөн мэдрэгчийг тохируулсан эсэхээ шалгаарай.

Одоо PropShieldTeensyView.ino -г байршуулна уу. Та Teensyview дээрх гурван тэнхлэгийн акселерометр, гиро, соронзны хэмжигдэхүүнийг харах боломжтой байх ёстой.

Алхам 18: Хөтөлбөрийн тойм

Дэвшилтэт мөр дагах програмыг Arduino IDE дээр бичсэн болно. Програм нь доор тайлбарласан дараах дарааллаар ажилладаг.

  • EEPROM -д хадгалагдсан утгуудыг уншиж, цэсийг харуулна.
  • LAUNCH товчлуурыг дарахад програм давталтад орно.
  • Шугамын мэдрэгчийн хэвийн утгыг уншдаг.
  • Шугамын байрлалын хоёртын утгыг мэдрэгчийн хэвийн утгыг ашиглан олж авна.
  • Шугамын дээгүүр байгаа мэдрэгчийн тоог шугамын байрлалын хоёртын утгаар тооцоолно.
  • Кодлогч хачиг шинэчлэгдэж, нийт зай, x-y координат, өнцөг шинэчлэгддэг.
  • Хоёртын тооллын өөр өөр утгуудын хувьд 0 -ээс 16 хүртэлх заавруудын багцыг гүйцэтгэдэг. Хэрэв хоёртын тооллын тоо 1 -ээс 5 хүртэл байвал шугам дээрх мэдрэгчүүд хоорондоо зэргэлдээ байвал PID горимыг дуудна. Эргэлтийг хоёртын утга ба хоёртын тооллын бусад хослолоор гүйцэтгэдэг.
  • PID горимд (энэ нь PD горимын хувьд) моторыг алдаа, алдааны өөрчлөлт, Kp ба Kd утгууд дээр үндэслэн тооцоолсон хурдаар удирддаг.

Одоогийн байдлаар хөтөлбөр нь тулгуур бамбайгаас чиглэлийн утгыг хэмжихгүй байна. Энэ бол хийгдэж буй ажил бөгөөд шинэчлэгдэж байна.

TestRun20.ino -ийг байршуулах. Цэсийг хэрхэн удирдах, тохиргоог хэрхэн тохируулах, шугамын мэдрэгчийг хэрхэн тохируулах талаар бид дараагийн алхамуудад роботыг туршиж үзэх болно.

Алхам 19: Цэс ба Тохиргоо руу шилжих

Цэс нь зүүн ба баруун товчлуурыг ашиглан дарж, төвийн товчлуурыг ашиглан сонгож болох дараах тохиргоонуудтай. Тохиргоо ба тэдгээрийн функцийг доор тайлбарласан болно.

  1. CALIBRATE: шугамын мэдрэгчийг тохируулах.
  2. ТЕСТ: Шугамын мэдрэгчийн утгыг харуулах.
  3. НЭЭЛТ: Дараах мөрийг эхлүүлэхийн тулд.
  4. MAX SPEED: Роботын хурдны дээд хязгаарыг тогтоох.
  5. ЭРГҮҮЛЭХ ХУРД: Робот эргэх үед хурдны дээд хязгаарыг тогтоох, өөрөөр хэлбэл хоёр дугуй нь эсрэг чиглэлд ижил хурдтай эргэх үед.
  6. КП: Пропорциональ тогтмол.
  7. KD: Дериватив тогтмол.
  8. RUN MODE: NORMAL ба ACCL гэсэн хоёр горимыг сонгох. NORMAL горимд робот нь шугамын байрлалын утгыг харгалзах урьдчилан тодорхойлсон хурдаар ажилладаг. ACCL горимд роботын MAX SPEED -ийг замын урьдчилан тодорхойлсон үе шатанд ACCL SPEED -ээр орлуулдаг. Үүнийг роботыг замын шулуун хэсэгт хурдасгахад ашиглаж болно. Дараах тохиргоог зөвхөн RUN MODE -ийг ACCL гэж тохируулсан тохиолдолд ашиглах боломжтой.
  9. LAP DISTANCE: Уралдааны замын нийт уртыг тохируулах.
  10. ACCL SPEED: Роботын хурдатгалын хурдыг тохируулах. Энэ хурд нь замын янз бүрийн үе шатанд MAX SPEED -ийг орлуулдаг.
  11. ҮГҮЙ. ҮЕ ШАТ: ACCL SPEED -ийг ашиглах үе шатуудын тоог тохируулах.
  12. ҮЕ 1: MAX SPEED -ийг ACCL SPEED -ээр орлуулах үе шатны эхлэл ба төгсгөлийн зайг тохируулах. Үе шат бүрийн хувьд эхлэх ба дуусах зайг тус тусад нь тохируулж болно.

Алхам 20: Шугамын мэдрэгчийн шалгалт тохируулга

Image
Image

Шугамын мэдрэгчийн шалгалт тохируулга нь 16 мэдрэгч тус бүрийн босго утгыг тодорхойлох үйл явц юм. Энэ босго утга нь тодорхой мэдрэгч шугам дээгүүр байгаа эсэхийг шийдэхэд хэрэглэгддэг. 16 мэдрэгчийн босго утгыг тодорхойлохын тулд бид хоёр аргын аль нэгийг ашигладаг.

MEDIAN FILTER: Энэ аргын хувьд шугаман мэдрэгчийг цагаан гадаргуу дээр байрлуулж, бүх 16 мэдрэгчийн хувьд урьдчилан тодорхойлсон тооны мэдрэгчийн заалтыг авдаг. Бүх 16 мэдрэгчийн дундаж утгыг тодорхойлдог. Мөрний мэдрэгчийг хар гадаргуу дээр байрлуулсны дараа ижил үйлдлийг давтана. Босго утга нь хар ба цагаан гадаргуугийн дундаж утгуудын дундаж утга юм.

MIN MAX: Энэ аргын хувьд хэрэглэгч зогсоохыг шаардах хүртэл мэдрэгчийн утгыг дахин дахин уншдаг. Мэдрэгч бүрт тулгардаг хамгийн их ба хамгийн бага утгыг хадгалдаг. Босго утга нь хамгийн бага ба хамгийн их утгуудын дундаж утга юм.

Ийнхүү олж авсан босго утгыг 0 -ээс 1000 хүртэлх мужид буулгасан болно.

MIN MAX аргаар шугамын мэдрэгчийн шалгалт тохируулгыг видеонд үзүүлэв. Шугам мэдрэгчийг тохируулсны дараа өгөгдлийг зураг дээр үзүүлсэн шиг дүрслэх боломжтой. Дараахь мэдээллийг харуулна.

  • 16-битийн хоёртын дүрслэл нь харгалзах шугамын мэдрэгч нь шугамын дээгүүр байгааг илэрхийлсэн хоёртын 1 ба шугамын мэдрэгч нь шугамаас гадуур байгааг харуулсан 0 гэсэн хоёртын дүрс юм.
  • Шугаман дээгүүр байгаа нийт мэдрэгчийн тоо.
  • Нэг мэдрэгчтэй 16 мэдрэгчийн хамгийн бага, хамгийн их ба мэдрэгчийн утга (түүхий ба хэвийн).
  • -7500 -аас +7500 хүртэлх шугамын байрлал.

Хамгийн бага ба хамгийн их шугамын мэдрэгчийн утгыг EEPROM -д хадгална.

Алхам 21: Туршилтын гүйлт

Image
Image

Энэхүү видео нь робот нэг тойрог хийсний дараа зогсохоор програмчлагдсан туршилтын ажил юм.

Алхам 22: Эцсийн бодол ба сайжруулалт

Роботуудын тэмцээн
Роботуудын тэмцээн

Энэхүү роботыг бүтээхэд зориулагдсан тоног төхөөрөмжийг ажиллуулдаг програм нь бүрэн ашигладаггүй. Хөтөлбөрийн хэсэгт маш их сайжруулалт хийж болно. Бамбайны хөдөлгөөн мэдрэгчийг одоогоор байрлал, чиглэлийг тодорхойлоход ашигладаггүй. Кодлогчийн odometry -ийн өгөгдлийг роботын байрлал, чиглэлийг нарийвчлан тодорхойлохын тулд тулгуур бамбай дээрх чиглүүлэлтийн өгөгдлийг нэгтгэж болно. Дараа нь энэ өгөгдлийг роботыг олон тойрог замаар сурахад програмчлахад ашиглаж болно. Энэ хэсгийг туршиж үзээд үр дүнгээ хуваалцахыг зөвлөж байна.

Амжилт хүсье.

Роботуудын тэмцээн
Роботуудын тэмцээн

Роботын тэмцээний хоёрдугаар шагнал

Зөвлөмж болгож буй: