Indholdsfortegnelse:

Opdag forhindringer asynkront med ultralyd: 4 trin
Opdag forhindringer asynkront med ultralyd: 4 trin

Video: Opdag forhindringer asynkront med ultralyd: 4 trin

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

Jeg bygger for sjov en robot, som jeg vil flytte autonomt inde i et hus.

Det er et langt arbejde, og jeg gør det trin for trin.

Dette instruerbare fokus på detektion af forhindringer med Arduino Mega

Ultralydssensorer HC-SR04 vs HY-SRF05 er billige og enkle at bruge, men kan blive vanskelige at integrere i mikrokontrollerløkken i en kompleks robot. Jeg ville køre detektering af forhindringer på en asynkron måde.

_

Jeg har allerede offentliggjort 3 instruktioner om funktioner i denne robot:

  • Lav din hjulkoder
  • Lav din WIFI -gateway
  • Brug inertialmodulenhed

Og en dokumentation om at kombinere kunstig intelligens og ultralyd til at lokalisere robotten.

Trin 1: Hvad er præcist problemet med ultralydssensorer og mikrokontroller?

Hvad er præcist problemet med ultralydssensorer og mikrokontroller?
Hvad er præcist problemet med ultralydssensorer og mikrokontroller?
Hvad er præcist problemet med ultralydssensorer og mikrokontrollere?
Hvad er præcist problemet med ultralydssensorer og mikrokontrollere?

Synkron ventetid og Arduino begrænsninger

Mikrokontrollerkode kører i en loop og understøtter ikke multi-thread. Ultralydssensorer er baseret på signalvarighed. Denne varighed varer op til 30 m s, der er meget lang at vente på inde i sløjfen, når mikrokontrollerne skal håndtere flere motorer og sensorer (f.eks. Servo- og DC -motorer med hjulkodere).

Så jeg ville udvikle et objekt, der kører asynkront.

Trin 2: Hvordan fungerer det?

Hvordan virker det ?
Hvordan virker det ?

Det er designet til Atmega til registrering af forhindringer. Det understøtter op til 4 ultralydssensorer.

Takket være periodisk tidsafbrydelse kan systemet overvåge op til 4 ultralydssensorer. Hovedkoden skal kun definere, hvilken sensor der skal aktiveres med tilstand og tærskel. Hoveddelen afbrydes kun i tilfælde af (tilstand, tærskel).

Hovedfunktionerne er:

  • Alert er den grundlæggende forhindringsdetektion og giver afbrydelse, hvis mindst 1 af de 4 sensorer registrerer en afstand under tærsklen
  • Monitor er en udvidet funktion, der giver afbrydelse ved en kombination af afstandstilstand på op til 4 sensorer. De mulige betingelser er over, under, lig med eller ikke lig med tærskler.

Trin 3: Tekniske detaljer

Brug timer4, så pin 6 7 8 ikke kan bruges som PWM.

For hver sensor har objektet brug for en trigger -PIN og en afbrydelses -PIN.

Oven på sensorerne afbryder PIN -koder objektet har brug for en anden afbrydelses -PIN til softwarebrug.

Trin 4: Hvordan implementeres?

Hvordan implementeres?
Hvordan implementeres?

Tilslut sensorerne som ovenfor

Download fra dette GitHub -lager

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

Opret EchoObstacleDetection -biblioteket inde i dit IDE -bibliotek, og flyt.cpp og.h

Test det

Åbn eksempelEchoObstacleDetection.ino.

Dette er et simpelt eksempel på registrering af forhindringer, der kører med 2 ultralydssensorer.

Output er rettet på seriel skærm. Først vil det udskrive afstande, der registreres af de 2 sensorer, og derefter udskrive advarsler afhængigt af afstande under tærskler.

Anbefalede: