Inhoudsopgave:

Obstakels asynchroon detecteren met echografie - Ajarnpa
Obstakels asynchroon detecteren met echografie - Ajarnpa

Video: Obstakels asynchroon detecteren met echografie - Ajarnpa

Video: Obstakels asynchroon detecteren met echografie - Ajarnpa
Video: Resident Evil игры | Развитие серии | Полная хронология 2024, November
Anonim
Obstakels asynchroon detecteren met echografie
Obstakels asynchroon detecteren met echografie

Ik bouw voor de lol een robot die ik autonoom in een huis wil laten bewegen.

Het is een werk van lange adem en ik doe het stap voor stap.

Deze instructable focus op de detectie van obstakels met Arduino Mega

Ultrasone sensoren HC-SR04 versus HY-SRF05 zijn goedkoop en eenvoudig te gebruiken, maar kunnen moeilijk te integreren zijn in de microcontroller-lus in een complexe robot. Ik wilde obstakeldetectie op een asynchrone manier uitvoeren.

_

Ik heb al 3 instructables gepubliceerd over functies van deze robot:

  • Maak je wiel-encoder
  • Maak uw WIFI-gateway
  • Gebruik traagheidsmodule-eenheid

En een documentatie over het combineren van kunstmatige intelligentie en echografie om de robot te lokaliseren.

Stap 1: Wat is precies het probleem met ultrasone sensoren en microcontrollers?

Wat is precies het probleem met ultrasone sensoren en microcontrollers?
Wat is precies het probleem met ultrasone sensoren en microcontrollers?
Wat is precies het probleem met ultrasone sensoren en microcontrollers?
Wat is precies het probleem met ultrasone sensoren en microcontrollers?

Synchroon wachten en Arduino-beperkingen

De code van microcontrollers loopt in een lus en ondersteunt geen multi-thread. Ultrasone sensoren zijn gebaseerd op signaalduur. Deze duur duurt tot 30 ms, wat erg lang is om binnen de lus te wachten wanneer de microcontrollers te maken hebben met meerdere motoren en sensoren (bijvoorbeeld servo- en DC-motoren met wiel-encoders).

Dus ik wilde een object ontwikkelen dat asynchroon draait.

Stap 2: Hoe werkt het?

Hoe werkt het ?
Hoe werkt het ?

Het is ontworpen voor Atmega voor het detecteren van obstakels. Het ondersteunt maximaal 4 ultrasone sensoren.

Dankzij periodieke tijdsonderbrekingen kan het systeem tot 4 ultrasone sensoren bewaken. De hoofdcode hoeft alleen te definiëren welke sensor moet worden geactiveerd met voorwaarde en drempel. De hoofdcode wordt alleen onderbroken als (voorwaarde, drempel) verschijnt.

De belangrijkste functies zijn:

  • Waarschuwing is de basis obstakeldetectie en biedt een onderbreking als ten minste 1 van de 4 sensoren een afstand onder de drempel detecteert
  • Monitor is een uitgebreide functie die een onderbreking biedt op een combinatie van afstandscondities van maximaal 4 sensoren. De mogelijke voorwaarden zijn boven, onder, gelijk aan of niet gelijk aan drempels.

Stap 3: Technische details

Gebruik timer4 zodat pin 6 7 8 niet als PWM kan worden gebruikt.

Voor elke sensor heeft het object een trigger-PIN en een interrupt-PIN nodig.

Bovenop de sensoren interrupt PINs heeft het object een andere interrupt PIN nodig voor software gebruik.

Stap 4: Hoe implementeren?

Hoe implementeren?
Hoe implementeren?

Sluit de sensoren aan zoals hierboven

Downloaden van deze GitHub-repository

  • EchoObstacleDetection.cpp,
  • EchoObstacleDetection.h
  • VoorbeeldEchoObstacleDetection.ino

Maak de map EchoObstacleDetection in uw IDE-bibliotheek en verplaats de.cpp en.h

Test het

Open VoorbeeldEchoObstacleDetection.ino.

Dit is een eenvoudig voorbeeld van obstakeldetectie met 2 ultrasone sensoren.

Uitgang is gericht op seriële monitor. In eerste instantie zal het afstanden afdrukken die door de 2 sensoren zijn gedetecteerd en vervolgens waarschuwingen afdrukken afhankelijk van afstanden onder drempels.

Aanbevolen: