Innholdsfortegnelse:

Oppdag hindringer asynkront med ultralyd: 4 trinn
Oppdag hindringer asynkront med ultralyd: 4 trinn

Video: Oppdag hindringer asynkront med ultralyd: 4 trinn

Video: Oppdag hindringer asynkront med ultralyd: 4 trinn
Video: НЕФИЛИМ И СТРАЖИ (Связь с пришельцами) - Л.А. Марзулли 2024, Juli
Anonim
Oppdag hindringer asynkront med ultralyd
Oppdag hindringer asynkront med ultralyd

Jeg bygger for moro skyld en robot som jeg vil flytte autonomt inne i et hus.

Det er et langt arbeid, og jeg gjør trinn for trinn.

Dette instruerbare fokuset på gjenkjenning av hindringer med Arduino Mega

Ultralydsensorer HC-SR04 vs HY-SRF05 er billige og enkle å bruke, men kan bli vanskelige å integrere i mikrokontrollersløyfen i en kompleks robot. Jeg ønsket å kjøre hindringsdeteksjon på en asynkron måte.

_

Jeg har allerede publisert 3 instrukser om funksjonene til denne roboten:

  • Lag din hjulkoder
  • Lag din WIFI -gateway
  • Bruk treghetsmodulenhet

Og en dokumentasjon om å kombinere kunstig intelligens og ultralyd for å lokalisere roboten.

Trinn 1: Hva er problemet med ultralydsensorer og mikrokontrollere?

Hva er nettopp problemet med ultralydsensorer og mikrokontrollere?
Hva er nettopp problemet med ultralydsensorer og mikrokontrollere?
Hva er nettopp problemet med ultralydsensorer og mikrokontrollere?
Hva er nettopp problemet med ultralydsensorer og mikrokontrollere?

Synkron ventetid og Arduino -begrensninger

Mikrokontrollerkoden kjøres i en sløyfe og støtter ikke flertråd. Ultralydsensorer er basert på signalvarighet. Denne varigheten varer opptil 30 m s som er veldig lang å vente på inne i sløyfen når mikrokontrollerne må håndtere flere motorer og sensorer (for eksempel servo- og likestrømsmotorer med hjulkodere).

Så jeg ønsket å utvikle et objekt som kjører asynkront.

Trinn 2: Hvordan fungerer det?

Hvordan virker det ?
Hvordan virker det ?

Den er designet for Atmega for gjenkjenning av hindringer. Den støtter opptil 4 ultralydsensorer.

Takket være periodisk tidsavbrudd kan systemet overvåke opptil 4 ultralydsensorer. Hovedkoden må bare definere hvilken sensor som skal aktiveres med tilstand og terskel. Hoveddelen vil bare bli avbrutt i tilfelle (tilstand, terskel) vises.

Hovedfunksjonene er:

  • Varsel er den grunnleggende hinderdeteksjonen og gir avbrudd hvis minst 1 av de 4 sensorene oppdager en avstand under terskelen
  • Monitor er en utvidet funksjon som gir avbrudd på en kombinasjon av avstandstilstand på opptil 4 sensorer. De mulige forholdene er over, under, like eller ikke lik terskler.

Trinn 3: Tekniske detaljer

Bruk timer4 så pin 6 7 8 ikke kan brukes som PWM.

For hver sensor trenger objektet en utløserkode og en avbruddskode.

På toppen av sensorene avbryter PIN -koder objektet trenger en annen avbrutt PIN for programvarebruk.

Trinn 4: Hvordan implementere?

Hvordan implementere?
Hvordan implementere?

Koble sensorene som ovenfor

Last ned fra dette GitHub -depotet

  • EchoObstacleDetection.cpp,
  • EchoObstacleDetection.h
  • EksempelEchoObstacleDetection.ino

Lag EchoObstacleDetection -katalogen inne i IDE -biblioteket og flytt.cpp og.h

Test det

Åpne eksempelEchoObstacleDetection.ino.

Dette er et enkelt eksempel på gjenkjenning av hindringer med 2 ultralydsensorer.

Utgangen er rettet på seriell skjerm. Først vil den skrive ut avstander som er oppdaget av de to sensorene, og deretter skrive ut varsler avhengig av avstander under terskler.

Anbefalt: