Hold deg nær meg (digilent robotprosjekt): 6 trinn

Hold deg nær meg (digilent robotprosjekt): 6 trinn

Innholdsfortegnelse:

Anonim

Dette er vårt første robotprosjekt vi ønsker å vise. Vår plan er å bygge en robot som kan bevege seg i et spesifisert miljø. Hensikten er å gjøre eldre liv enklere. Roboten må kunne bære små viktige ting til et bestemt punkt.

Det er den første versjonen av prosjektet.

forsyninger:

Trinn 1: Materialer

Vi brukte

-En chipKit Max32

- en roomba irobot

- et Pmod digitalt kompass HMC5883L

- en PmodWifi MRF24WG0MA

- 4 stk. PmodMAXSONAR Ultrasonic Range Finder LV-EZ1

- 4 stykker av n kanalmosefett

- 8 stk. 200 ohm motstand

- brødbrett

- Noen ledninger for å koble til materialene

og til slutt er alle disse tingene plassert i en plastboks på toppen av roboten

Trinn 2: Grunnleggende teori

Kartlegging

Roboten håndterer miljøet i et Descartes koordinatsystem. Hvor roboten befinner seg, er dette punktet (0,0) punktet. Vi forestiller et rutenettet til koordinatsystemet og roboten må være midt i et rutenett. Et rutenett er 35 cm, som er robotens diameter. Vi kaller et rutenett som en knutepunkt. Roboten kartlegger sin nabo knutepunkt og definerer at det er gratis eller ikke. Hvis det er gratis, registrerer roboten det og velger en ledig knutepunkt fra sitt miljø for å flytte der. Denne aktiviteten fortsetter til det ikke er noen aktiveringskode. Endelig er miljøet kartlagt. Vi bygger en database fra noder. En node inneholder et par (x, y) og de tilgjengelige nabo noder. Ifølge databasen kan vi søke mellom noen to punkter den korteste ruten med heuristisk søkealgoritme (bredde først), og en av dem vil være robotens posisjon.

Trinn 3: ChipKit-modul

Chipkit er hovedmodulen fordi den håndterer bevegelsen til roboten og behandler dataene fra sensorene. Den bygger og vedlikeholder databasen. Vi trenger mer minne for å bygge databasen fra noder, enn vi egentlig har. På grunn av det først overdefined vi høydens størrelse.

#define CHANGE_HEAP_SIZE (størrelse) __asm__ volatile (" t.globl _min_heap_size n t.equ _min_heap_size," #size " n")

CHANGE_HEAP_SIZE (0x5000); ekstern __attribute __ ((seksjon ("linker_defined"))) char _heap; ekstern __attribute __ ((seksjon ("linker_defined"))) char _min_heap_size;

Trinn 4: Sensorer

En sensors måleområde er 15,24 cm - 6,45 m. Vi bruker 4 sensorer, og hvis vi får dem til å fungere samtidig, vil de forvirre hverandre. Det er derfor vi bruker N chanel mosfet krets.

Prosess for dataaraden:

- For det første ingen sensor får strøm fordi alle mosfetene er aktive høye.

- En av MOSFET satt lavt slik at sensoren får strøm

- Ping han sensorens RX

- les dataene

- MOSFET satt høyt

Trinn 5: Roomba Robot

Dette er den enkleste delen av prosjektet. Kommunikasjonen mellom roboten og chipKit er en seriell kommunikasjon. Dette bruker en RX og en TX-pin. Det er et batteri i roboten. Chippen får strøm fra batteriet. På bildet viser de uthevede linjene de brukbare pinnene. Kommunikasjonen mellom roboten og chipKit er asynkron. Roboten kan kontrolleres med driftskoder. For eksempel hvis 137 opcode vil bli skrevet med de riktige parametrene vil roboten bevege seg. Roomba-biblioteket inneholder disse opkoder.

Trinn 6: Tilkobling av modulene

Robotens batteri er koblet til chipkitens 5 V-utgang. En av robotens bakken er koblet til felles bakken. De 2 serielle kommunikasjonspinnene er koblet til chipKit: Robots RX (pin 1) er koblet til chipKit's TX1 (pin 18) og roboten TX (pin 2) til chipKit's RX1 (pint 19).

4 MaxSONARs bakken er koblet til felles bakken. RX-pinnen er koblet til 82, 79, 76, 73 pinner. PWM-pinnene er koblet til 81, 78, 75, 72 pinner. De 4 mosfetene viser styrke til sonarene. Gjennomførte MOSFETene vi kan slå inn og ut av sonarene.

MOSFETs gate pins er koblet til 11, 8, 5, 2 pins gjennom 200 ohm 4 motstander. Mosfets kilde er koblet til sonarens 5 V-pinne og mosfetsens avløp kobles til 5 V-batteriet.

Kompasset har SCL- og SDA-pinner, som kobler til chipKit 'SCL og SDA lignende pinner.