Turinys:

Išplėstinis linijos sekimo robotas: 22 žingsniai (su nuotraukomis)
Išplėstinis linijos sekimo robotas: 22 žingsniai (su nuotraukomis)

Video: Išplėstinis linijos sekimo robotas: 22 žingsniai (su nuotraukomis)

Video: Išplėstinis linijos sekimo robotas: 22 žingsniai (su nuotraukomis)
Video: High Density 2022 2024, Lapkritis
Anonim
Image
Image
Prototipų kūrimas - „Perfboard“
Prototipų kūrimas - „Perfboard“

Tai pažangus linijos sekimo robotas, pagrįstas „Teensy 3.6“ir „QTRX“linijos jutikliu, kurį aš sukūriau ir kurį laiką dirbau. Yra keletas esminių mano ankstesnės linijos roboto dizaino ir našumo patobulinimų. Pagerėjo roboto greitis ir atsakas. Bendra konstrukcija yra kompaktiška ir lengva. Komponentai yra išdėstyti arti rato ašies, kad būtų sumažintas kampinis impulsas. Didelės galios mikrometaliniai pavarų varikliai užtikrina tinkamą sukimo momentą, o aliuminio stebulės silikoniniai ratai suteikia labai reikalingą trauką dideliu greičiu. Atraminis skydas ir ratų koduotuvai leidžia robotui nustatyti jo padėtį ir orientaciją. Įdiegę „Teensyview“, naudodamiesi mygtukais, galite vizualizuoti visą svarbią informaciją ir atnaujinti svarbius programos parametrus.

Norėdami pradėti kurti šį robotą, jums reikės šių medžiagų (ir daug laiko bei kantrybės).

Prekės

Elektronika

  • „Teensy 3.6“plėtros valdyba
  • Atraminis skydas su judesio jutikliais
  • „Sparkfun TeensyView“
  • „Pololu QTRX-MD-16A“atspindžio jutiklis
  • 15x20 cm dvipusis prototipas PCB
  • „Pololu“pakilimo/sumažinimo įtampos reguliatorius S9V11F3S5
  • „Pololu“reguliuojamas 4-5–20 V įtampos reguliatorius U3V70A
  • MP12 6V 1580 aps / min mikro pavarų variklis su koduotuvu (x2)
  • DRV8833 dviejų variklių vairuotojo laikiklis (x2)
  • 3.7V, 750mAh Li-Po baterija
  • ĮJUNGIMO/IŠJUNGIMO jungiklis
  • Elektrolitinis kondensatorius 470uF
  • Elektrolitinis kondensatorius 1000uF (x2)
  • Keraminis kondensatorius 0.1uF (x5)
  • Mygtukai (x3)
  • 10 mm žalias šviesos diodas (x2)

Techninė įranga

  • „Atom“silikoninis ratas 37x34mm (x2)
  • „Pololu“rutulinis ratukas su 3/8 colių metaliniu rutuliu
  • N20 variklio laikiklis (x2)
  • Varžtas ir veržlės

Kabeliai ir jungtys

  • 24AWG lankstūs laidai
  • 24 kontaktų nuo FFC iki DIP jungtis ir FFC kabelis (A tipas, 150 mm ilgio)
  • Apvali moteriško kaiščio antraštė
  • Apvalus moteriškas kaiščio antgalio ilgas gnybtas
  • Stačiakampė dviejų eilių moterų antraštė
  • Stačiakampė dviejų eilučių antraštė
  • Vyriško kaiščio antraštė
  • Vyriškos adatos smeigtuko antraštė

Įrankiai

  • Multimetras
  • Lituoklis
  • Lituoklis
  • Vielos nuėmiklis
  • Vielos pjaustytuvas

1 žingsnis: sistemų apžvalga

Kaip ir mano ankstesnis savaiminio balansavimo roboto dizainas, šis robotas yra pertvaros plokščių, sumontuotų ant perforatoriaus, rinkinys, kuris taip pat tarnauja konstrukcijai.

Žemiau pateikiamos pagrindinės roboto sistemos.

Mikrovaldiklis: „Teensy 3.6“kūrimo plokštė su 32 bitų 180 MHz ARM „Cortex-M4“procesoriumi.

Linijos jutiklis: „Pololu“QTRX-MD-16A 16 kanalų analoginio išvesties linijos jutiklių blokas, vidutinio tankio (8 mm jutiklio žingsnis).

Pavara: 6 V, 1580 aps./min., Didelės galios mikrometaliniai reduktoriai su magnetiniu ratų koduotuvu ir silikoniniai ratai, sumontuoti ant aliuminio stebulių.

Odometrija: magnetinės ratų kodavimo poros, skirtos įvertinti koordinates ir įveiktą atstumą.

Orientacijos jutiklis: atraminis skydas su judesio jutikliais roboto padėčiai ir krypčiai įvertinti.

Maitinimas: 3,7 V, 750 mAh lipo baterija kaip maitinimo šaltinis. 3.3V pakėlimo/nuleidimo reguliatorius maitina mikrovaldiklį, jutiklius ir ekrano įrenginį. Reguliuojamas padidinimo reguliatorius maitina du variklius.

Vartotojo sąsaja: „Teensyview“informacijai rodyti. Trijų mygtukų pertrauka, skirta priimti vartotojo įvestis. Du skaičiai 10 mm skersmens žalių šviesos diodų, rodančių būseną važiuojant.

2 žingsnis: Pradėkime prototipų kūrimą

Image
Image

Mes įgyvendinsime aukščiau pateiktą grandinę „perfboard“. Pirmiausia turime paruošti pertraukimo plokštes, ant jų lituojant antraštes. Vaizdo įraše bus pateikta idėja apie tai, kurios antraštės turėtų būti lituotos ant kokių pertraukimo plokščių.

Lituodami antraštes ant pertraukimo lentų, sudėkite „Teensyview“ir mygtuko pertrauką ant „Teensy“.

3 žingsnis: prototipų kūrimas - „Perfboard“

Prototipų kūrimas - „Perfboard“
Prototipų kūrimas - „Perfboard“

Gaukite 15x20 cm dvigubos pusės prototipo plokštę ir pažymėkite ribą nuolatiniu žymekliu, kaip parodyta paveikslėlyje. Gręžkite M2 dydžio skyles, skirtas jutikliams, ratukui ir mikrometaliniams reduktoriams pritvirtinti baltu apskritimu pažymėtose vietose. Vėliau lituodami ir išbandę visus komponentus, mes nukirpsime išilgai ribos.

Savo prototipą pradėsime lituodami antgalio kaiščius ir lizdus. Pertraukimo lentos vėliau bus įterptos į šias antraštes. Kruopščiai atkreipkite dėmesį į antraščių padėtį ant lentos. Mes sujungsime visus laidus pagal šį antraščių išdėstymą.

4 žingsnis: prototipų kūrimas - „Prop Shield“

Prototipų kūrimas - „Prop Shield“
Prototipų kūrimas - „Prop Shield“
Prototipų kūrimas - „Prop Shield“
Prototipų kūrimas - „Prop Shield“
Prototipų kūrimas - „Prop Shield“
Prototipų kūrimas - „Prop Shield“
Prototipų kūrimas - „Prop Shield“
Prototipų kūrimas - „Prop Shield“

Pirmiausia lituosime jungtis prie atraminio skydo. Kadangi mes naudojame tik atraminio skydo judesio jutiklius, turime prijungti tik SCL, SDA ir IRQ kaiščius, išskyrus 3 V ir įžeminimo atramas.

Kai ryšys bus baigtas, įdėkite „Teensy“ir atraminį skydą ir kalibruokite judesio jutiklius, atlikdami čia nurodytus veiksmus.

5 žingsnis: prototipų kūrimas - galia ir žemė

Prototipų kūrimas - galia ir žemė
Prototipų kūrimas - galia ir žemė

Lituokite visas maitinimo ir įžeminimo jungtis pagal paveikslėlį. Įdėkite visas pertraukimo plokštes į vietą ir užtikrinkite tęstinumą naudodami multimetrą. Patikrinkite skirtingus įtampos lygius laive.

  • Li-po išėjimo įtampa (paprastai tarp 3V ir 4,2V)
  • Pakopos aukštyn/žemyn reguliatoriaus išėjimo įtampa (3.3V)
  • Reguliuojama pakopinio reguliatoriaus išėjimo įtampa (nustatyta į 6 V)

6 žingsnis: prototipų kūrimas - variklio vairuotojas

Prototipų kūrimas - variklio vairuotojas
Prototipų kūrimas - variklio vairuotojas
Prototipų kūrimas - variklio vairuotojas
Prototipų kūrimas - variklio vairuotojas
Prototipų kūrimas - variklio vairuotojas
Prototipų kūrimas - variklio vairuotojas

Dvigubo variklio vairuotojo laikiklio plokštė DRV8833 gali tiekti 1,2A nuolatinę ir 2A didžiausią srovę vienam kanalui. Mes sujungsime du kanalus lygiagrečiai, kad varytume vieną variklį. Lituokite jungtis atlikdami toliau nurodytus veiksmus.

  • Lygiagrečiai su dviem variklio vairuotojo laikiklio įėjimais ir dviem išėjimais, kaip parodyta paveikslėlyje.
  • Prijunkite įvesties valdymo laidus prie variklio tvarkyklės.
  • Prijunkite 1000uF elektrolitinį kondensatorių ir 0,1uF keraminį kondensatorių prie dviejų laikiklių plokščių Vin ir Gnd gnybtų.
  • Prijunkite 0,1uF keraminį kondensatorių prie variklio tvarkyklės išvesties gnybtų.

7 žingsnis: prototipų kūrimas - linijos jutiklio masyvo antraštė

Prototipų kūrimas - linijos jutiklio masyvo antraštė
Prototipų kūrimas - linijos jutiklio masyvo antraštė
Prototipų kūrimas - linijos jutiklio masyvo antraštė
Prototipų kūrimas - linijos jutiklio masyvo antraštė
Prototipų kūrimas - linijos jutiklio masyvo antraštė
Prototipų kūrimas - linijos jutiklio masyvo antraštė
Prototipų kūrimas - linijos jutiklio masyvo antraštė
Prototipų kūrimas - linijos jutiklio masyvo antraštė

„Teensy 3.6“turi du ADC - ADC0 ir ADC1, kurie yra multipleksuoti iki 25 prieinamų kaiščių. Vienu metu galime pasiekti bet kokius du kaiščius iš dviejų ADC. Prie ADC0 ir ADC1 prijungsime aštuonis linijinius jutiklius. Porinio skaičiaus jutikliai bus prijungti prie ADC1, o nelyginio skaičiaus - prie ADC0. Lituokite jungtis atlikdami toliau nurodytus veiksmus. Vėliau linijos jutiklį prijungsime naudodami FFC prie DIP adapterio ir kabelio.

  • Prijunkite visus lygius jutiklio kaiščius (16, 14, 12, 10, 8, 6, 4, 2), kaip parodyta paveikslėlyje. Laidą, skirtą prijungti jutiklio kaištį 12, nukreipkite per atvirkštinę plokštės pusę.
  • Prijunkite emiterio valdymo kaištį (EVEN) prie „Teensy“kaiščio 30.
  • Prijunkite visus nelyginius jutiklio kaiščius (15, 13, 11, 9, 7, 5, 3, 1), kaip parodyta paveikslėlyje.
  • Prijunkite 470uF elektrolitinį kondensatorių per Vcc ir Gnd.

Jei atidžiai stebėsite linijos jutiklio kaiščius ir juos atitinkančius antraštės kaiščius ant plokštės, pastebėsite, kad viršutinė linijos jutiklio eilutė susieta su apatine antraštės eilute ir atvirkščiai. Taip yra todėl, kad kai linijos jutiklį prijungsime prie perforatoriaus, naudodami dviejų eilučių stačiakampes antraštes, eilutės bus teisingai sulygiuotos. Prireikė nemažai laiko, kol tai supratau ir ištaisiau programos smeigtuko užduotis.

8 žingsnis: prototipų kūrimas - „Micro Gear“variklis ir kodavimo įrenginys

Prototipų kūrimas - „Micro Gear“variklis ir kodavimo įrenginys
Prototipų kūrimas - „Micro Gear“variklis ir kodavimo įrenginys
  • Pritvirtinkite mikro metalinį krumpliaratį su kodavimo įrenginiu, naudodami N20 variklio laikiklius.
  • Prijunkite variklio ir kodavimo laidus, kaip parodyta paveikslėlyje.
  • Kairysis kodavimo įrenginys - „Teensy“kaiščiai 4 ir 0
  • Dešinysis kodavimo įrenginys - „Teensy“kaiščiai 9 ir 27

9 žingsnis: prototipų kūrimas - šviesos diodai

Prototipų kūrimas - šviesos diodai
Prototipų kūrimas - šviesos diodai
Prototipų kūrimas - šviesos diodai
Prototipų kūrimas - šviesos diodai

Du šviesos diodai rodo, ar robotas aptiko posūkį, ar ne. Aš prijungiau 470 omų serijos rezistorių, kad prijungčiau šviesos diodus prie „Teensy“.

  • Kairysis LED anodas prie „Teensy“kaiščio 6
  • Dešinysis LED anodas prie „Teensy“kaiščio 8

10 veiksmas: prototipų kūrimas

Image
Image
Prototipų kūrimas
Prototipų kūrimas

Dabar, kai baigėme visus litavimo darbus ant parketlentės, galime atsargiai pjauti išilgai ribos, pažymėtos ant lentos, ir pašalinti papildomus perforatoriaus gabalus. Taip pat pritvirtinkite du ratus ir ratuką.

Įdėkite visas pertraukimo plokštes į atitinkamus lizdus. Norėdami įterpti FFC-DIP pertrauką ir pritvirtinti QTRX-MD-16A linijos jutiklį, žiūrėkite vaizdo įrašą.

11 veiksmas: programinės įrangos bibliotekų apžvalga

Programinės įrangos bibliotekų apžvalga
Programinės įrangos bibliotekų apžvalga

Mes suprogramuosime „Teensy“Arduino IDE. Prieš pradėdami, mums reikės bibliotekų. Bibliotekos, kurias naudosime:

  • Kodavimo priemonė
  • Teensyview
  • EEPROM
  • ADC
  • „NXPMotionSense“

Ir kai kurie, kurie buvo parašyti specialiai šiam robotui,

  • PushButton
  • „LineSensor“
  • TeensyviewMenu
  • Varikliai

Šiam robotui būdingos bibliotekos yra išsamiai aptariamos ir jas galima atsisiųsti atliekant kitus veiksmus.

12 veiksmas: paaiškinamos bibliotekos - „PushButton“

Ši biblioteka skirta sąsajai su mygtuko išjungimo lenta su „Teensy“. Naudojamos funkcijos yra

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

Paskambinus šiam konstruktoriui sukuriant objektą, mygtuko kaiščiai sukonfigūruojami į INPUT_PULLUP režimą.

int8_t waitForButtonPress (negalioja);

Ši funkcija laukia, kol bus paspaustas ir atleistas mygtukas, ir grąžina rakto kodą.

int8_t getSingleButtonPress (negalioja);

Ši funkcija patikrina, ar mygtukas yra paspaustas ir atleistas. Jei taip, grąžina pagrindinį kodą, o kitas - nulį.

13 veiksmas: paaiškinamos bibliotekos - linijos jutiklis

„LineSensor“yra biblioteka, skirta linijų jutiklių masyvui sujungti su „Teensy“. Toliau pateikiamos naudojamos funkcijos.

„LineSensor“(negalioja);

Paskambinus šiam konstruktoriui sukuriant objektą, inicijuojami ADC0 ir ADC1, nuskaitomos slenkstinės, mažiausios ir didžiausios vertės iš EEPROM ir sukonfigūruojami jutiklio kaiščiai įvesties režimu, o emiterio valdymo kaištis - išėjimo režimu.

void calibrate (uint8_t calibrationMode);

Ši funkcija kalibruoja linijinius jutiklius. Kalibravimo režimas gali būti MIN_MAX arba MEDIAN_FILTER. Ši funkcija išsamiai paaiškinta vėliau.

void getSensorsAnalog (uint16_t *sensorValue, uint8_t režimas);

Skaito jutiklio masyvą bet kuriuo iš trijų režimų, perduotų kaip argumentas. Režimas yra skleidėjų būsena ir gali būti įjungtas, išjungtas arba perjungiamas. „TOGGLE“režimas kompensuoja jutiklio atspindžio rodmenis dėl aplinkos šviesos. Prie ADC0 ir ADC1 prijungti jutikliai nuskaitomi sinchroniškai.

int getLinePosition (uint16_t *sensorValue);

Skaičiuoja jutiklio masyvo padėtį virš linijos svertinio vidurkio metodu.

uint16_t getSensorsBinary (uint16_t *sensorValue);

Pateikia 16 bitų jutiklių būsenos vaizdą. Dvejetainis rodo, kad jutiklis yra virš linijos, o dvejetainis nulis rodo, kad jutiklis yra išjungtas.

uint8_t countBinary (uint16_t binaryValue);

Perduodant šiai funkcijai 16 bitų jutiklių reikšmių atvaizdavimą, grąžinamas virš linijos esančių jutiklių skaičius.

void getSensorsNormalized (uint16_t *sensorValue, uint8_t režimas);

Skaito jutiklio vertes ir apriboja kiekvieną jutiklio vertę iki atitinkamų min ir max reikšmių. Tada jutiklio reikšmės susiejamos nuo atitinkamo min iki maksimalaus diapazono iki 0–1000.

14 žingsnis: Paaiškintos bibliotekos - „TeensyviewMenu“

„TeensyviewMenu“yra biblioteka, kurioje galima pasiekti ekrano meniu funkcijas. Toliau pateikiamos naudojamos funkcijos.

„TeensyViewMenu“(negalioja);

Paskambinus šiam konstruktoriui, sukuriamas „LineSensor“, „PushButton“ir „TeensyView“klasės objektas.

void intro (niekinis);

Tai skirta naršyti meniu.

niekinis testas (niekinis);

Tai vadinama meniu viduje, kai linijinių jutiklių vertės turi būti rodomos „Teensyview“bandymams.

15 žingsnis: paaiškinamos bibliotekos - varikliai

„Motors“yra biblioteka, naudojama dviem varikliams valdyti. Toliau pateikiamos naudojamos funkcijos.

Varikliai (negalioja);

Paskambinus šiam konstruktoriui sukuriant objektą, variklio krypties valdymas ir PWM valdymo kaiščiai sukonfigūruojami į išėjimo režimą.

void setSpeed (int leftMotorSpeed, int rightMotorSpeed);

Paskambinus šiai funkcijai, abu varikliai važiuoja greičiu, kuris perduodamas kaip argumentas. Greičio vertė gali svyruoti nuo -255 iki +255, o neigiamas ženklas rodo, kad sukimosi kryptis yra atvirkštinė.

16 žingsnis: bandymas - kodavimo odometrija

Mes išbandysime magnetinius ratų koduotojus ir parodysime roboto įveiktą padėtį bei atstumą.

Įkelkite „DualEncoderTeensyview.ino“. Programa rodo kodavimo kodą „Teensyview“. Kodavimo prietaisas žymi padidėjimą, jei stumiate robotą į priekį, ir mažina, jei judate atgal.

Dabar įkelkite „EncoderOdometry.ino“. Ši programa rodo roboto padėtį x-y koordinatėmis, rodo bendrą atstumą, įveiktą centimetrais, ir kampą, pasuktą laipsniais.

Pateikiau Sietlo robotų draugijos „Odometry“įgyvendinimo metodą „Robotas su R/C servo diferencialine pavara“, kad nustatytų padėtį iš kodavimo erkių.

17 žingsnis: bandymas - „Prop Shield“judesio jutikliai

Įsitikinkite, kad kalibravote judesio jutiklius, atlikdami čia nurodytus veiksmus.

Dabar įkelkite „PropShieldTeensyView.ino“. Turėtumėte matyti „Teensyview“visų trijų ašių akselerometro, giroskopo ir magnetometro vertes.

18 veiksmas: programos apžvalga

Pažangių linijų sekėjų programa parašyta „Arduino IDE“. Programa veikia tokia seka, paaiškinta žemiau.

  • Skaitomos EEPROM išsaugotos vertės ir rodomas meniu.
  • Paspaudus LAUNCH, programa patenka į ciklą.
  • Skaitomos normalizuotos linijos jutiklių vertės.
  • Linijinės padėties dvejetainė vertė gaunama naudojant normalizuotas jutiklio reikšmes.
  • Jutiklių, esančių už linijos, skaičius skaičiuojamas pagal dvejetainę linijos padėties vertę.
  • Atnaujinamos kodavimo kodo erkės ir atnaujinamas bendras įveiktas atstumas, x-y koordinatės ir kampas.
  • Skirtingoms dvejetainių skaičių reikšmėms nuo 0 iki 16 vykdomas instrukcijų rinkinys. Jei dvejetainis skaičius yra nuo 1 iki 5 ir jei jutikliai, esantys virš linijos, yra greta vienas kito, iškviečiama PID tvarka. Sukimas atliekamas kitais dvejetainės vertės ir dvejetainio skaičiaus deriniais.
  • Taikant PID rutiną (kuri iš tikrųjų yra PD tvarka), varikliai varomi greičiu, apskaičiuotu pagal klaidą, klaidos pokytį, Kp ir Kd reikšmes.

Šiuo metu programa nematuoja orientacinių verčių iš atraminio skydo. Tai nebaigtas darbas ir yra atnaujinamas.

Įkelti TestRun20.ino. Kituose žingsniuose pamatysime, kaip naršyti meniu, koreguoti nustatymus ir kaip kalibruoti linijos jutiklius.

19 veiksmas: naršymas meniu ir nustatymuose

Meniu turi šiuos nustatymus, kuriuos galima naršyti naudojant kairįjį ir dešinįjį mygtukus ir pasirinkti naudojant centrinį mygtuką. Nustatymai ir jų funkcijos aprašytos žemiau.

  1. KALIBRUOTI: Kalibruoti linijinius jutiklius.
  2. TEST: Rodyti linijos jutiklio vertes.
  3. PRADĖTI: Norėdami pradėti sekančią eilutę.
  4. MAX SPEED: nustatyti viršutinę roboto greičio ribą.
  5. ROTATE SPEED: nustatyti viršutinę roboto greičio ribą, kai jis atlieka posūkį, ty kai abu ratai sukasi vienodu greičiu priešingomis kryptimis.
  6. KP: proporcinga konstanta.
  7. KD: išvestinė konstanta.
  8. RUN MODE: pasirinkti vieną iš dviejų darbo režimų - NORMAL ir ACCL. NORMAL režimu robotas veikia iš anksto nustatytu greičiu, atitinkančiu linijos padėties vertes. ACCL režimu iš anksto nustatytuose trasos etapuose didžiausias roboto greitis pakeičiamas ACCL SPEED. Tai gali būti panaudota norint pagreitinti robotą tiesiose trasos atkarpose. Šie nustatymai pasiekiami tik tada, jei RUN MODE yra nustatytas kaip ACCL.
  9. LAP DISTANCE: nustatyti bendrą lenktynių trasos ilgį.
  10. ACCL SPEED: nustatyti roboto pagreičio greitį. Šis greitis pakeičia MAX SPEED skirtingais trasos etapais, kaip apibrėžta toliau.
  11. NE. OF STADES: nustatyti etapų, kuriuose naudojamas ACCL SPEED, skaičių.
  12. 1 ETAPAS: nustatyti etapo, kuriame MAX SPEED pakeičiamas ACCL SPEED, pradžios ir pabaigos atstumus. Kiekvieno etapo pradžios ir pabaigos atstumus galima nustatyti atskirai.

20 žingsnis: linijos jutiklio kalibravimas

Image
Image

Linijinio jutiklio kalibravimas yra procesas, kurio metu nustatoma kiekvieno iš 16 jutiklių slenkstinė vertė. Ši ribinė vertė naudojama sprendžiant, ar tam tikras jutiklis yra per liniją, ar ne. Norėdami nustatyti 16 jutiklių slenkstines vertes, naudojame vieną iš dviejų metodų.

MEDIAN FILTER: Taikant šį metodą, linijiniai jutikliai yra virš balto paviršiaus ir iš anksto nustatomas visų 16 jutiklių rodmenų skaičius. Nustatomos visų 16 jutiklių mediana. Tas pats procesas kartojamas uždėjus linijinius jutiklius ant juodo paviršiaus. Ribinė vertė yra juodos ir baltos spalvos paviršių vidurkio vidurkis.

MIN MAX: Taikant šį metodą, jutiklio vertės skaitomos pakartotinai, kol vartotojas paprašo sustoti. Išsaugomos didžiausios ir mažiausios kiekvieno jutiklio vertės. Ribinė vertė yra minimalių ir maksimalių verčių vidurkis.

Taip gautos slenksčio vertės priskiriamos 0–1 000 diapazonui.

Linijos jutiklių kalibravimas MIN MAX metodu parodytas vaizdo įraše. Kalibravus linijinius jutiklius, duomenis galima vizualizuoti, kaip parodyta paveikslėlyje. Rodoma ši informacija.

  • 16 bitų dvejetainis linijos padėties vaizdas su dvejetainiu 1, rodančiu, kad atitinkamas linijos jutiklis yra virš linijos, ir dvejetainis 0, rodantis, kad linijos jutiklis yra už linijos.
  • Bendras jutiklių, esančių už linijos, skaičius.
  • Minimalios, didžiausios ir jutiklių vertės (neapdorotos ir normalizuotos) iš 16 jutiklių, po vieną jutiklį.
  • Linijos padėtis nuo -7500 iki +7500.

Tada mažiausios ir didžiausios linijos jutiklių vertės išsaugomos EEPROM.

21 žingsnis: bandomasis paleidimas

Image
Image

Vaizdo įraše yra bandomasis važiavimas, kurio metu robotas užprogramuotas sustoti, kai įveikia vieną ratą.

22 žingsnis: paskutinės mintys ir patobulinimai

Robotų konkursas
Robotų konkursas

Aparatinė įranga, sukurta šiam robotui sukurti, nėra visiškai išnaudota jį valdančioje programoje. Programos dalyje galima padaryti daug patobulinimų. Atraminio skydo judesio jutikliai šiuo metu nenaudojami nustatant padėtį ir orientaciją. Odometro duomenis iš koduotojų galima sujungti su orientaciniais duomenimis iš atraminio skydo, kad būtų galima tiksliai nustatyti roboto padėtį ir kryptį. Tada šie duomenys gali būti naudojami robotui užprogramuoti mokytis trasos keliais ratais. Aš raginu jus eksperimentuoti ir pasidalyti savo rezultatais.

Sėkmės.

Robotų konkursas
Robotų konkursas

Antrasis prizas robotų konkurse

Rekomenduojamas: