Talaan ng mga Nilalaman:

Advanced na Sumusunod na Robot: 22 Mga Hakbang (na may Mga Larawan)
Advanced na Sumusunod na Robot: 22 Mga Hakbang (na may Mga Larawan)

Video: Advanced na Sumusunod na Robot: 22 Mga Hakbang (na may Mga Larawan)

Video: Advanced na Sumusunod na Robot: 22 Mga Hakbang (na may Mga Larawan)
Video: Isang bata sinaksak ang kutsara sa extension.. Patay😭😭 2024, Hulyo
Anonim
Image
Image
Prototyping - Perfboard
Prototyping - Perfboard

Ito ay isang advanced na linya na sumusunod sa robot batay sa Teensy 3.6 at QTRX line sensor na aking naitayo at nagtatrabaho nang medyo matagal. Mayroong ilang mga pangunahing pagpapabuti sa disenyo at pagganap mula sa aking naunang linya na sumusunod sa robot. Ang bilis at tugon ng robot ay napabuti. Ang pangkalahatang istraktura ay siksik at magaan. Ang mga sangkap ay nakaayos na malapit sa axis ng gulong upang mabawasan ang momentum ng angular. Ang mga motor na de-kuryente ng micro metal gear ay nagbibigay ng sapat na metalikang kuwintas at mga gulong ng silicon ng aluminyo hub na nag-aalok ng kinakailangang traksyon sa mataas na bilis. Pinapayagan ng prop na kalasag at mga encoder ng gulong ang robot upang matukoy ang posisyon at oryentasyon nito. Sa Teensyview na naka-mount sa board, ang lahat ng nauugnay na impormasyon ay maaaring mailarawan at mai-update ang mahalagang mga parameter ng programa gamit ang mga pushbuttons.

Upang simulang buuin ang robot na ito, kakailanganin mo ang mga sumusunod na supply (at maraming oras at pasensya sa iyong pagtatapon).

Mga gamit

Elektronika

  • Teensy 3.6 Development Board
  • Prop Shield na may Motion Sensors
  • Sparkfun TeensyView
  • Pololu QTRX-MD-16A Reflectance Sensor Array
  • 15x20cm na dobleng prototype PCB
  • Pololu Step-Up / Step-Down Voltage Regulator S9V11F3S5
  • Ang Pololu Adjustable 4-5-20V Step-Up Voltage Regulator U3V70A
  • MP12 6V 1580 rpm micro gear motor na may encoder (x2)
  • DRV8833 Dual Motor Driver Carrier (x2)
  • 3.7V, 750mAh Li-Po na baterya
  • ON / OFF switch
  • Electrolytic capacitor 470uF
  • Electrolytic capacitor 1000uF (x2)
  • Ceramic capacitor 0.1uF (x5)
  • Mga Pushbutton (x3)
  • 10mm Green LED (x2)

Hardware

  • Atom Silicone Wheel 37x34mm (x2)
  • Pololu Ball Caster na may 3/8 "Metal Ball
  • N20 motor mount (x2)
  • Bolt at mani

Mga Kable at Konektor

  • 24AWG nababaluktot na mga wire
  • 24 pin FFC sa DIP breakout at FFC cable (Type A, 150mm haba)
  • Round babaeng pin header
  • Round babaeng pin header mahabang terminal
  • Dalawang-saktong dalawahan na hilera ng babaeng header
  • Dalawang kanang sulok na header ng lalaki na may saktong
  • Header ng lalaki na pin
  • Header ng pin ng karayom na lalaki

Mga kasangkapan

  • Multimeter
  • Panghinang
  • Wire ng panghinang
  • Wire stripper
  • Pamutol ng wire

Hakbang 1: Pangkalahatang-ideya ng Mga Sistema

Tulad ng aking naunang disenyo ng isang self-balancing robot, ang robot na ito ay isang pagtitipon ng mga breakout board na naka-mount sa isang perfboard na nagsisilbi din sa layunin ng isang istraktura.

Ang mga pangunahing sistema ng robot ay nakabalangkas sa ibaba.

Microcontroller: Teensy 3.6 development board na nagtatampok ng 32-bit 180MHz ARM Cortex-M4 na processor.

Line sensor: Pololu's QTRX-MD-16A 16-channel analog output line sensor array sa pag-aayos ng medium-density (8mm sensor pitch).

Pagmamaneho: 6V, 1580rpm, mataas na lakas na micro metal gear motor na may magnetic wheel encoder at mga silicon wheel na nilagyan ng mga aluminyo hub.

Odometry: Mga pares ng magnetikong encoder ng gulong para sa pagtantya ng mga sakop at saklaw ang distansya.

Orientation sensor: Prop kalasag na may mga sensor ng paggalaw para sa pagtatantya ng posisyon at heading ng robot.

Suplay ng kuryente: 3.7V, 750mAh lipo na baterya bilang mapagkukunan ng kuryente. Ang 3.3V step-up / down regulator ay nagpapagana ng microcontroller, sensor, at display device. Ang adjustable step-up regulator ay nagpapagana ng dalawang motor.

User interface: Teensyview para sa pagpapakita ng impormasyon. Three-pushbutton breakout para sa pagtanggap ng mga input ng gumagamit. Dalawang numero ng 10mm diameter green LEDs para sa indication ng katayuan habang tumatakbo.

Hakbang 2: Magsimula Na tayo sa Prototyping

Image
Image

Ipapatupad namin ang circuit sa itaas sa perfboard. Kailangan muna nating panatilihing handa ang aming mga board ng breakout sa pamamagitan ng paghihinang ng mga header sa kanila. Magbibigay ang video ng isang ideya tungkol sa kung aling mga header ang dapat na maghinang sa aling mga breakout board.

Pagkatapos ng paghihinang na mga header sa mga breakout board, isalansan ang Teensyview at pushbutton breakout sa tuktok ng Teensy.

Hakbang 3: Prototyping - Perfboard

Prototyping - Perfboard
Prototyping - Perfboard

Kunin ang 15x20cm dobleng gilid na prototype perfboard at markahan ang hangganan ng isang permanenteng marker tulad ng ipinakita sa larawan. Mag-drill ng mga butas ng laki ng M2 para sa pag-mount ng sensor array, caster wheel, at mga micro metal gear motor sa mga lokasyon na minarkahan ng isang puting bilog. Susuriin namin sa paglaon ang perfboard kasama ang hangganan pagkatapos ng paghihinang at pagsubok ng lahat ng mga bahagi.

Sisimulan namin ang aming prototyping sa pamamagitan ng paghihinang ng mga pin ng header at socket sa perfboard. Ang mga breakout board ay ipapasok sa paglaon sa mga header na ito. Bigyan ng maingat na pansin ang posisyon ng mga header sa perfboard. Ikokonekta namin ang lahat ng mga wire batay sa layout ng mga header na ito.

Hakbang 4: Prototyping - 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

Kami muna ang maghinang ng mga koneksyon sa prop kalasag. Dahil ginagamit lamang namin ang mga sensor ng paggalaw ng kalasag, kailangan naming ikonekta lamang ang mga pin ng SCL, SDA at IRQ bukod sa 3V at mga ground pin ng prop na kalasag.

Kapag nakumpleto na ang koneksyon, ipasok ang Teensy at prop shield at i-calibrate ang mga sensor ng paggalaw sa pamamagitan ng pagsunod sa mga hakbang na nabanggit dito.

Hakbang 5: Prototyping - Lakas at Ground

Prototyping - Lakas at Ground
Prototyping - Lakas at Ground

Maghinang ng lahat ng mga koneksyon sa kapangyarihan at lupa na tumutukoy sa larawan. Ipasok ang lahat ng mga breakout board sa lugar at tiyakin ang pagpapatuloy gamit ang isang multimeter. Patunayan ang iba't ibang mga antas ng boltahe sa board.

  • Li-po output boltahe (karaniwang sa pagitan ng 3V at 4.2V)
  • Step-up / down na regulator ng output voltage (3.3V)
  • Naaayos na boltahe ng output ng regulator ng step-up (nakatakda sa 6V)

Hakbang 6: Prototyping - Motor Driver Carrier

Prototyping - Motor Driver Carrier
Prototyping - Motor Driver Carrier
Prototyping - Motor Driver Carrier
Prototyping - Motor Driver Carrier
Prototyping - Motor Driver Carrier
Prototyping - Motor Driver Carrier

Ang DRV8833 dual motor driver carrier board ay maaaring maghatid ng 1.2A tuloy-tuloy at 2A rurok na alon bawat channel. Ikonekta namin ang dalawang mga channel nang kahanay upang magmaneho ng isang motor. Paghinang ng mga koneksyon sa pamamagitan ng pagsunod sa mga hakbang sa ibaba.

  • Parallel ang dalawang mga input at ang dalawang output ng motor driver carrier tulad ng ipinakita sa larawan.
  • Ikonekta ang mga wire ng kontrol sa pag-input sa driver ng motor.
  • Ikonekta ang isang 1000uF electrolytic capacitor at isang 0.1uF ceramic capacitor sa kabuuan ng mga terminal ng Vin at Gnd ng dalawang mga board ng carrier.
  • Ikonekta ang isang 0.1uF ceramic capacitor sa mga terminal ng output ng driver ng motor.

Hakbang 7: Prototyping - Line Sensor Array Header

Prototyping - Line Sensor Array Header
Prototyping - Line Sensor Array Header
Prototyping - Line Sensor Array Header
Prototyping - Line Sensor Array Header
Prototyping - Line Sensor Array Header
Prototyping - Line Sensor Array Header
Prototyping - Line Sensor Array Header
Prototyping - Line Sensor Array Header

Ang tinedyer 3.6 ay may dalawang mga ADC - ADC0 at ADC1 na multiplexed sa 25 mga access na pin. Maaari naming ma-access ang anumang dalawang mga pin mula sa dalawang ADC nang sabay-sabay. Ikonekta namin ang walong mga sensor ng linya bawat isa sa ADC0 at ADC1. Ang mga sensors na pantay na numero ay konektado sa ADC1 at kakaibang mga sensors ng numero sa ADC0. Paghinang ng mga koneksyon sa pamamagitan ng pagsunod sa mga hakbang sa ibaba. Ikonekta namin sa paglaon ang sensor ng linya gamit ang FFC sa DIP adapter at cable.

  • Ikonekta ang lahat ng kahit mga sensor pin (16, 14, 12, 10, 8, 6, 4, 2) tulad ng ipinakita sa larawan. Ruta ang wire para sa pagkonekta ng sensor pin 12 sa pamamagitan ng reverse side ng perfboard.
  • Ikonekta ang emitter control pin (KAHIT) sa Teensy pin 30.
  • Ikonekta ang lahat ng mga kakaibang sensor pin (15, 13, 11, 9, 7, 5, 3, 1) tulad ng ipinakita sa larawan.
  • Ikonekta ang isang 470uF electrolytic capacitor sa buong Vcc at Gnd.

Kung malapit mong obserbahan ang mga linya ng sensor pin at ang kanilang kaukulang mga header pin sa perboard, mapapansin mo na ang tuktok na hilera ng linya ng sensor ng sensor sa ilalim na hilera ng header sa perboard at kabaligtaran. Ito ay sapagkat kapag ikinonekta namin ang linya ng sensor sa perfboard gamit ang mga dalawahang row na may tamang pamagat na mga header, ang mga hilera ay makakasama nang tama. Medyo natagalan ako upang malaman ito at iwasto ang mga takdang-aralin sa pin sa programa.

Hakbang 8: Prototyping - Micro Gear Motor at Encoder

Prototyping - Micro Gear Motor at Encoder
Prototyping - Micro Gear Motor at Encoder
  • Ayusin ang micro metal gear motor na may encoder gamit ang N20 motor mount.
  • Ikonekta ang mga wire ng motor at encoder tulad ng ipinakita sa larawan.
  • Kaliwa encoder - Mga tinedyer na pin 4 at 0
  • Tamang encoder - Mga tinedyer na pin 9 & 27

Hakbang 9: Prototyping - LEDs

Prototyping - Mga LED
Prototyping - Mga LED
Prototyping - Mga LED
Prototyping - Mga LED

Ipinapahiwatig ng dalawang LEDs kung ang robot ay nakakita ng pagliko o hindi. Gumamit ako ng isang 470-ohm series resistor upang ikonekta ang mga LED sa Teensy.

  • Kaliwa LED anode sa Teensy pin 6
  • Tamang LED anode sa Teensy pin 8

Hakbang 10: Prototyping - Mga Breakout

Image
Image
Prototyping - Mga Breakout
Prototyping - Mga Breakout

Ngayon na nakumpleto na namin ang lahat ng aming paghihinang sa perfboard, maaari naming maingat na i-cut kasama ang hangganan na minarkahan sa perfboard at alisin ang labis na piraso ng perfboard. Gayundin, ikabit ang dalawang gulong at caster wheel.

Ipasok ang lahat ng mga breakout board sa kani-kanilang mga socket. Para sa pagpasok ng breakout ng FFC-DIP at para sa pag-aayos ng linya ng sensor ng QTRX-MD-16A, sumangguni sa video.

Hakbang 11: Pangkalahatang-ideya ng Software Mga Aklatan

Pangkalahatang-ideya ng Software Library
Pangkalahatang-ideya ng Software Library

Ipaprograma namin ang Teensy sa Arduino IDE. Kakailanganin namin ang ilang mga aklatan bago kami magsimula. Ang mga aklatan na gagamitin namin ay:

  • Encoder
  • Teensyview
  • EEPROM
  • ADC
  • NXPMotionSense

At ang ilan na partikular na naisulat para sa robot na ito,

  • Push Button
  • LineSensor
  • TeensyviewMenu
  • Mga Motors

Ang mga aklatan na tukoy sa robot na ito ay tinalakay nang detalyado at magagamit para sa pag-download sa mga susunod na hakbang.

Hakbang 12: Ipinaliwanag ang Mga Aklatan - Pushbutton

Ang library na ito ay para sa interfacing ng pushbutton breakout board sa Teensy. Ang mga pagpapaandar na ginamit ay

Pushbutton (int left ButtonPin, int centre ButtonPin, int right ButtonPin);

Ang pagtawag sa tagapagbuo na ito sa pamamagitan ng paglikha ng isang bagay ay nag-configure ng mga pushbutton pin sa mode na INPUT_PULLUP.

int8_t waitForButtonPress (walang bisa);

Naghihintay ang pagpapaandar na ito hanggang ang isang pindutan ay pinindot at mailabas at ibalik ang key code.

int8_t getSingleButtonPress (walang bisa);

Sinusuri ng pagpapaandar na ito kung ang isang pindutan ay pinindot at pinakawalan. Kung oo, ibabalik ang key code kung hindi man ay magbabalik ng zero.

Hakbang 13: Ipinaliwanag ang Mga Aklatan - Sensor ng Line

Ang LineSensor ay ang silid-aklatan para sa interface ng linya ng sensor sensor sa Teensy. Ang mga sumusunod ay ang mga pagpapaandar na ginamit.

LineSensor (walang bisa);

Ang pagtawag sa konstruktor na ito sa pamamagitan ng paglikha ng isang bagay ay nagpapasimula ng ADC0 at ADC1, nagbabasa ng threshold, minimum at maximum na mga halaga mula sa EEPROM at ise-configure ang mga sensor sensor sa input mode at emitter control pin sa output mode.

walang bisa ang pag-calibrate (uint8_t calibrationMode);

Ang pagpapaandar na ito ay nag-calibrate ng mga linya ng sensor. Ang calibrationMode ay maaaring alinman sa MIN_MAX o MEDIAN_FILTER. Ang pagpapaandar na ito ay ipinaliwanag nang detalyado sa isang susunod na hakbang.

void getSensorsAnalog (uint16_t * sensorValue, uint8_t mode);

Binabasa ang array ng sensor sa alinman sa tatlong mga mode na naipasa bilang pagtatalo. Ang mode ay ang estado ng mga emitter at maaaring maging ON, OFF o TOGGLE. Binabayaran ng mode na TOGGLE ang mga pagbabasa ng sensor ng pagsasalamin dahil sa ilaw sa paligid. Ang mga sensor na konektado sa ADC0 at ADC1 ay binabasa nang magkasabay.

int getLinePosition (uint16_t * sensorValue);

Kinakalkula ang posisyon ng array ng sensor sa linya sa pamamagitan ng may timbang na average na pamamaraan.

uint16_t getSensorsBinary (uint16_t * sensorValue);

Nagbabalik ng isang 16-bit na representasyon ng estado ng mga sensor. Ipinapahiwatig ng isang binary na ang sensor ay nasa linya at ang isang binary zero ay nagpapahiwatig na ang sensor ay wala sa linya.

uint8_t countBinary (uint16_t binaryValue);

Ang pagpasa sa 16-bit na representasyon ng mga halaga ng sensor sa pagpapaandar na ito ay nagbabalik ng bilang ng mga sensor na higit sa linya.

void getSensorsNormalized (uint16_t * sensorValue, uint8_t mode);

Binabasa ang mga halaga ng sensor at pinipigilan ang bawat halaga ng sensor sa kaukulang halaga ng min at max na halaga. Ang mga halaga ng sensor ay mai-map mula sa kanilang kaukulang min hanggang max range hanggang sa 0 hanggang 1000 na saklaw.

Hakbang 14: Ipinaliwanag ang Mga Aklatan - TeensyviewMenu

Ang TeensyviewMenu ay ang silid-aklatan kung saan maaaring ma-access ang mga pagpapaandar para sa display menu. Ang mga sumusunod ay ang mga pagpapaandar na ginamit.

TeensyViewMenu (walang bisa);

Ang pagtawag sa tagapagbuo na ito ay lumilikha ng isang object ng klase LineSensor, Pushbutton at TeensyView.

walang bisa intro (walang bisa);

Ito ay para sa pag-navigate sa menu.

walang bisa na pagsubok (walang bisa);

Ito ay tinatawag na panloob sa loob ng menu kapag ang mga halaga ng sensor ng linya ay ipapakita sa Teensyview para sa pagsubok.

Hakbang 15: Ipinaliwanag ang Mga Aklatan - Mga Motors

Ang Motors ang silid-aklatan na ginamit para sa pagmamaneho ng dalawang motor. Ang mga sumusunod ay ang mga pagpapaandar na ginamit.

Mga Motors (walang bisa);

Ang pagtawag sa tagapagbuo na ito sa pamamagitan ng paglikha ng isang bagay ay nag-configure ng kontrol sa direksyon ng motor at mga pin ng control PWM sa output mode.

void setSpeed (int leftMotorSpeed, int rightMotorSpeed);

Ang pagtawag sa pagpapaandar na ito ay nagtutulak sa dalawang motor sa bilis na naipasa bilang mga argumento. Ang halaga ng bilis ay maaaring saklaw mula -255 hanggang +255 na may negatibong pag-sign na nagpapahiwatig na ang direksyon ng pag-ikot ay baligtad.

Hakbang 16: Pagsubok - Encoder Odometry

Susubukan namin ang mga encoder ng magnetikong gulong at ipakita ang posisyon at distansya na sakop ng robot.

I-upload ang DualEncoderTeensyview.ino. Ipinapakita ng programa ang mga ticking ng encoder sa Teensyview. Ang encoder ay nakakakuha ng pagtaas kung ilipat mo ang robot pasulong at pagbawas kung ilipat mo ito paatras.

Ngayon i-upload ang EncoderOdometry.ino. Ipinapakita ng programang ito ang posisyon ng robot sa mga tuntunin ng mga x-y coordinate, ipinapakita ang kabuuang distansya na sakop sa sentimeter at ang anggulo ay nakabukas sa degree.

Na-refer ko ang Pagpapatupad ng Dead Reckoning ng Odometry sa isang Robot na may R / C Servo Differential Drive ng Seattle Robotics Society para sa pagtukoy ng posisyon mula sa mga encoder tick.

Hakbang 17: Pagsubok - Prop Shield Motion Sensors

Tiyaking na-calibrate mo ang mga sensor ng paggalaw sa pamamagitan ng pagsunod sa mga hakbang na nabanggit dito.

Ngayon i-upload ang PropShieldTeensyView.ino. Dapat mong makita ang mga halaga ng accelerometer, gyro at magnetometer ng lahat ng tatlong mga palakol sa Teensyview.

Hakbang 18: Pangkalahatang-ideya ng Program

Ang programa para sa advanced na tagasunod sa linya ay nakasulat sa Arduino IDE. Gumagana ang programa sa sumusunod na pagkakasunud-sunod na ipinaliwanag sa ibaba.

  • Nabasa ang mga halagang nakaimbak sa EEPROM at ipinakita ang menu.
  • Sa pagpindot sa PAGLUNSAD, papasok ang programa sa loop.
  • Nabasa ang mga normalized na halaga ng sensor ng linya.
  • Ang binary na halaga ng posisyon ng linya ay nakuha gamit ang na-normalize na mga halaga ng sensor.
  • Ang bilang ng bilang ng mga sensor na higit sa linya ay kinakalkula mula sa binary na halaga ng posisyon ng linya.
  • Ang mga ticks ng encoder ay na-update at kabuuang saklaw ng distansya, na-update ang mga x-y coordinate at anggulo.
  • Para sa iba't ibang mga halaga ng bilang ng binary mula sa 0 hanggang 16, isang hanay ng mga tagubilin ay naisakatuparan. Kung ang pagbilang ng binary ay nasa saklaw na 1 hanggang 5 at kung ang mga sensor na higit sa linya ay katabi ng bawat isa, ang gawain ng PID ay tinatawag. Ginagawa ang pag-ikot sa iba pang mga kumbinasyon ng binary halaga at binary count.
  • Sa gawain ng PID (na kung saan ay nakakaapekto sa isang nakagawiang PD), ang mga motor ay hinihimok sa mga bilis na kinakalkula batay sa error, pagbabago sa error, mga halagang Kp at Kd.

Ang programa sa kasalukuyan ay hindi sumusukat sa mga halaga ng oryentasyon mula sa prop kalasag. Ito ay isang gawaing isinasagawa at ina-update.

Mag-upload ng TestRun20.ino. Makikita natin kung paano mag-navigate sa menu, ayusin ang mga setting at kung paano i-calibrate ang mga linya ng sensor sa mga susunod na hakbang na sinusundan kung saan susubukan namin ang aming robot.

Hakbang 19: Pag-navigate sa Menu at Mga Setting

Ang menu ay may mga sumusunod na setting na maaaring ma-navigate gamit ang kaliwa at kanang mga pushbutton at napili gamit ang gitnang pushbutton. Ang mga setting at ang kanilang mga pagpapaandar ay inilarawan sa ibaba.

  1. KALIBRATE: Upang i-calibrate ang mga linya ng sensor.
  2. PAGSUSULIT: Upang maipakita ang mga halaga ng sensor ng linya.
  3. LAUNCH: Upang simulan ang pagsunod sa linya.
  4. MAX SPEED: Upang maitakda ang itaas na limitasyon ng bilis ng robot.
  5. ROTATE SPEED: Upang maitakda ang itaas na limitasyon ng bilis ng robot kapag gumaganap ito ng isang pagliko ibig sabihin kapag ang parehong mga gulong ay lumiliko sa pantay na bilis sa kabaligtaran ng mga direksyon.
  6. KP: Patuloy na proporsyonal.
  7. KD: Patuloy na nagmula.
  8. RUN MODE: Upang pumili sa pagitan ng dalawang operating mode - NORMAL at ACCL. Sa NORMAL mode, tumatakbo ang robot sa paunang natukoy na mga bilis na naaayon sa mga halaga ng posisyon sa linya. Sa ACCL mode, ang MAX SPEED ng robot ay pinalitan ng ACCL SPEED sa paunang natukoy na mga yugto ng track. Maaari itong magamit upang mapabilis ang robot sa mga tuwid na seksyon ng track. Ang mga sumusunod na setting ay maa-access lamang kung ang RUN MODE ay itinakda bilang ACCL.
  9. LAP DISTANCE: Upang maitakda ang kabuuang haba ng track ng lahi.
  10. ACCL SPEED: Upang maitakda ang bilis ng pagpabilis ng robot. Ang bilis na ito ay pinapalitan ang MAX SPEED sa iba't ibang mga yugto ng track na tinukoy sa ibaba.
  11. HINDI. NG MGA STAGES: Upang maitakda ang bilang ng mga yugto kung saan ginagamit ang ACCL SPEED.
  12. STAGE 1: Upang itakda ang pagsisimula at pagtatapos ng mga distansya ng yugto kung saan ang MAX SPEED ay pinalitan ng ACCL SPEED. Para sa bawat yugto, ang mga distansya ng pagsisimula at pagtatapos ay maaaring itakda nang magkahiwalay.

Hakbang 20: Pag-calibrate ng Line Sensor

Image
Image

Ang pagkakalibrate ng linya ng sensor ay ang proseso kung saan natutukoy ang halaga ng threshold ng bawat isa sa mga 16 sensor. Ginagamit ang halagang threshold na ito upang magpasya kung ang isang partikular na sensor ay nasa linya o hindi. Upang matukoy ang mga halaga ng threshold ng 16 sensor, gumagamit kami ng alinman sa dalawang pamamaraan.

MEDIAN FILTER: Sa pamamaraang ito, ang mga sensor ng linya ay inilalagay sa itaas ng puting ibabaw at ang isang paunang natukoy na bilang ng mga pagbabasa ng sensor ay kinuha para sa lahat ng 16 na sensor. Natutukoy ang mga halagang panggitna ng lahat ng 16 na sensor. Ang parehong proseso ay paulit-ulit pagkatapos mailagay ang mga linya ng sensor sa ibabaw ng itim. Ang halaga ng threshold ay ang average ng mga panggitna halaga ng mga itim at puting ibabaw.

MIN MAX: Sa pamamaraang ito, ang mga halaga ng sensor ay binabasa nang paulit-ulit hanggang sa mag-prompt ang gumagamit na huminto. Ang maximum at minimum na halagang naranasan ng bawat sensor ay nakaimbak. Ang halaga ng threshold ay ang average ng minimum at maximum na mga halaga.

Ang mga halagang threshold kaya nakuha ay nai-map sa 0 hanggang 1000 na saklaw.

Ang pagkakalibrate ng mga linya ng sensor ng pamamaraang MIN MAX ay ipinapakita sa video. Matapos i-calibrate ang mga linya ng sensor, ang data ay maaaring maipakita tulad ng ipinakita sa larawan. Ang sumusunod na impormasyon ay ipinakita.

  • Ang isang 16-bit na binary na representasyon ng posisyon ng linya na may isang binary 1 na nagpapahiwatig na ang kaukulang sensor ng linya ay higit sa linya at isang binary 0 na nagpapahiwatig na ang linya ng sensor ay wala sa linya.
  • Isang bilang ng kabuuang bilang ng mga sensor na higit sa linya.
  • Minimum, maximum at mga halaga ng sensor (raw at na-normalize) ng 16 na mga sensor, isang sensor nang paisa-isa.
  • Posisyon ng linya sa saklaw na -7500 hanggang +7500.

Ang minimum at maximum na mga halaga ng sensor ng linya ay maiimbak sa EEPROM.

Hakbang 21: Patakbuhin ang Pagsubok

Image
Image

Ang video ay isang pagsubok na pagtakbo kung saan ang robot ay na-program na huminto pagkatapos na makumpleto nito ang isang lap.

Hakbang 22: Pangwakas na Mga Saloobin at Pagpapabuti

Paligsahan ng Robots
Paligsahan ng Robots

Ang hardware na pinagsama upang maitayo ang robot na ito ay hindi nagamit nang buo ng programa na nagpapatakbo nito. Maraming mga pagpapabuti ay maaaring gawin sa bahagi ng programa. Ang mga sensor ng paggalaw ng prop kalasag ay hindi ginagamit sa kasalukuyan para sa pagtukoy ng posisyon at oryentasyon. Ang data ng odometry mula sa mga encoder ay maaaring isama sa oryentasyong data mula sa prop kalasag upang tumpak na matukoy ang posisyon at heading ng robot. Ang data na ito ay maaaring magamit upang iprograma ang robot upang malaman ang track sa maraming mga laps. Hinihimok kita na mag-eksperimento sa bahaging ito at ibahagi ang iyong mga resulta.

Swerte naman

Paligsahan ng Robots
Paligsahan ng Robots

Pangalawang Gantimpala sa Paligsahan ng Robots

Inirerekumendang: