Laikykitės manęs (digilento robotas projektas): 6 žingsniai

Laikykitės manęs (digilento robotas projektas): 6 žingsniai

Turinys:

Anonim

Tai mūsų pirmasis roboto projektas, kurį norėtume parodyti. Mūsų planas yra sukurti robotą, kuris gali judėti tam tikroje aplinkoje. Tikslas - pagyvinti senjorų gyvenimą. Robotas turi sugebėti gabenti mažus, svarbius dalykus į konkrečius taškus.

Tai yra pirmoji projekto versija.

Prekės:

1 žingsnis: Medžiagos

Mes naudojom

- lustasKit Max32

- roomba irobot

- „Pmod“ skaitmeninis kompasas HMC5883L

- „PmodWifi MRF24WG0MA“

- 4 vnt. PmodMAXSONAR Ultragarsinio diapazono ieškiklio LV-EZ1

- 4 vienetai n kanalo MOSFET

- 8 vienetai 200 omų rezistorių

- Bandomoji Lenta

- kai kurie laidai, skirti medžiagoms prijungti

galiausiai visi šie dalykai yra plastiko dėžutėje, esančioje roboto viršuje

2 žingsnis: pagrindinė teorija

Kartografavimas

Robotas tvarko aplinką Descartes koordinačių sistemoje. Kai robotas yra, šis taškas yra (0,0) taškas.Mes įsivaizduojame tinklelio tinklelį prie koordinačių sistemos ir robotas turi būti tinklelio viduryje. Tinklelis yra 35 cm, tai yra roboto skersmuo. Mes vadiname tinklelį kaip mazgą. Robotas užrašo savo kaimyninį mazgą ir nustato, ar jis yra nemokamas, ar ne.Jei jis yra laisvas, robotas jį užrašo ir pasirenka laisvą mazgų iš savo aplinkos, kad galėtų juda. Ši veikla tęsiama tol, kol nėra jokio įjungimo mazgo. Pagaliau aplinka yra susieta. Sukuriame duomenų bazę iš mazgų. Vienas mazgas turi porą (x, y) ir galimų kaimyninių mazgų. Pagal duomenų bazę galime ieškoti tarp dviejų taškų trumpiausio maršruto su heuristinės paieškos algoritmu (pirmiausia plotis) ir vienas iš jų bus roboto padėtis.

3 žingsnis: „ChipKit“ modulis

„ChipKit“ yra pagrindinis modulis, nes jis tvarko roboto judėjimą ir apdoroja duomenis iš jutiklių. Ji kuria ir tvarko duomenų bazę. Mums reikia daugiau atminties, kad sukurtume duomenų bazę iš mazgų, nei mes iš tikrųjų turime. Dėl to pirmiausia mes apibrėžėme krūvos dydį.

#define CHANGE_HEAP_SIZE (dydis) __asm__ nepastovi („globl _min_heap_size n.equ _min_heap_size, “#size” n ”)

CHANGE_HEAP_SIZE (0x5000); extern __attribute __ ((sekcija ("linker_defined"))) char _heap; extern __attribute __ ((sekcija ("linker_defined"))) char _min_heap_size;

4 žingsnis: jutikliai

Vienas jutiklio matavimo diapazonas yra 15,24 cm - 6,45 m. Naudojame 4 jutiklius ir, jei mes dirbame vienodai, jie susimaišys. Štai kodėl mes naudojame N Chanel MOSFET grandinę.

Duomenų rinkimo procesas:

- pirma, nė vienas jutiklis neturi energijos, nes visi „MOSFET“ yra aktyvūs.

- vienas iš „MOSFET“ yra žemas, todėl jutiklis gauna galią

- Perkelkite jutiklio RX

- skaityti duomenis

- MOSFET nustatytas aukštas

5 žingsnis: Roomba robotas

Tai paprasčiausia projekto dalis. Ryšys tarp roboto ir „chipKit“ yra nuoseklus ryšys. Tai naudojama RX ir TX PIN. Robote yra baterija. „ChipKit“ gauna maitinimą iš akumuliatoriaus. Paveikslėlyje paryškintos linijos rodo tinkamus kaiščius. Ryšys tarp roboto ir „chipKit“ yra asinchroninis. Robotas gali būti valdomas su veikimo kodais. Pavyzdžiui, jei parašysite 137 opcode su teisingais parametrais, robotas judės. Roomba bibliotekoje yra šie opcodes.

6 veiksmas: modulių prijungimas

Roboto akumuliatorius yra prijungtas prie „chipKit“ 5 V išėjimo. Vienas iš roboto žemės yra prijungtas prie bendro pagrindo. 2 nuosekliojo ryšio smeigtukai yra prijungti prie lustasKit: roboto RX (1 kištukas) yra prijungtas prie lustasKit TX1 (kaištis 18) ir roboto TX (2 kištukas) į lustų rinkinio RX1 (pint 19).

4 MaxSONAR žemės yra prijungtos prie bendro pagrindo. RX smeigtukai prijungti prie 82, 79, 76, 73 kaiščių. PWM kaiščiai yra prijungti prie 81, 78, 75, 72 kaiščių. 4 „MOSFET“ įrodo, kad sonarai veikia. MOSFETs galime įjungti ir išjungti sonarus.

„MOSFETs“ vartų smeigtukai yra prijungti prie 11, 8, 5, 2 kaiščių, turinčių 200 omų 4 rezistorių. „Mosfets“ šaltinis yra prijungtas prie 5 V srovės kaiščių, o „MOSFET“ kanalai jungiami prie 5 V baterijos.

Kompasas turi SCL ir SDA kaiščius, kurie jungiasi su panašiais „chipKit“ SCL smeigtukais.