Ultrasone obstakel-vermijden Robot (12 / 16 stap)

Stap 12: Controle en problemen van de module HCSR-04


Pinout

GND - common ground

Deze pin wordt aangesloten op de grond net van het schema

VCC - macht spoor

Deze pin moet worden gekoppeld aan de lijn van de macht van onze schakeling, die - in mijn geval wordt verzorgd door de 5V buck converter.

TRIG - trigger pin

De gebruiker moet een microseconde lang impuls verschaffen over deze pin, dan wachten op de echo te komen op de echo-pin. Merk op, dat echo is hoog in de eerste tientallen milliseconden, zorg ervoor dat u wacht die uit bij initialisatie. Deze pin wordt beweerd, dan programma heeft te wachten op een stijgende rand en een timer, TMR1 te starten. De WASTE_10_US(); een macro is ik schreef, het bestaat uit voldoende "NOP" montage-instructies om een totale tijd voor 10 microseconden. Tellen wordt gestopt wanneer de echo-puls laag weer gaat. Uit de teller registratienummer weten we de tijd die nodig is voor het geluid terug te krijgen uit een eventuele belemmering. We weten de snelheid van het geluid - kunnen we de afstand berekenen!

ECHO - echo pin

Deze pin wordt gebruikt voor het detecteren van de weerkaatste geluidsgolven. Ik aangesloten op een pin die interrupt, voor het geval heeft - maar het wordt gebruikt in eenvoudige ingangsfunctie. Een stijgende rand de eerder genoemde teller stopt, en slaat het op in een variabele, die kort na wordt verwerkt.

Een kleine truc gemakkelijker te maken de PIC-s

De timing van de pulsen wordt weergegeven in het gegevensblad van deze module. Zoals eerder vermeld, moet u wachten op de eerste ~ 100 ms, dan geven 10 microseconde trigger pulsen op de TRIG pin. Dergelijke duw resulteert in een uitbarsting van de 8 cyclus van de zender 'luidspreker' komen. Vervolgens moeten we wachten op een echo te komen. De echo is gevangen genomen door de ontvanger, en omgezet naar een impuls met een variabele lengte op de ECHO-pin. De lengte van de impuls van deze echo is recht evenredig met de afstand tot de eerste hindernis. Het gegevensblad geeft een eenvoudige formule voor het berekenen van dit:

afstand [cm] = t gemeten [microseconden] / 58

Dit geeft de afstand in centimeters. Ik verdeel alleen door 5.8, dus de afstand in millimeter wordt geretourneerd. Aangezien ik niet per se uiterst nauwkeurige lezingen hoeven, zal ik hier een kleine twist toevoegen. Ik wil alleen om te voorkomen dat belemmeringen, kan me niet schelen hoe ver ze zijn, dus er is geen gebruik van de berekening van de afstand in dubbele variabele types. Dat soort berekeningen nemen een lange tijd, die in dit geval is volstrekt onnodig. Dus laten we de berekeningen een beetje te vereenvoudigen. Wij weten dat de ontvangen impuls lengte in microseconden nodig is om erachter te komen de afstand. De basis van onze tijd is echter niet een zeer ronde één, 83.33 [ns]. Dus, in plaats van de graaf van TMR1, vermenigvuldiging met de basis om de lengte in microseconden dan verdelen door 5,8 om de afstand in millimeter, tijd zullen wij iets eenvoudiger en dommer. Laten we stellen wat betekent één enkele TMR1 graaf in millimeter:

1 graaf 83.33 [ns] = = 0.08333 [us], die gedeeld door 5.8 resultaten in 0.014 [mm] voor elke TMR1 [graaf]

Hebben gezegdd dat, kunnen we het volgende schrijven:

1 [count] .......................... 0.014 [mm]

x [graaf]... y [mm]

en over het schrijven van de volgende formule:

y [mm] = (x * 0.014) / 1 = x * 0.014 = x / 71.42

We weten dus dat kunnen we de afstand tot een obstakel door te delen TMR1 count en voorzien van 71.42. Dit, echter, is nog steeds een precisie-calculus dat lang duurt, zodat we een kijkje nemen en beseffen dat dit er niet ver van 64, een mooie 'ronde' nummer. Delen met de machten van 2 in de software is heel eenvoudig, kan worden gedaan via het verschuiven van rechts zes keer. Verschuiven byte is een inheemse instructie voor de PIC, en het is heel erg snel in vergelijking met een dubbele verdeling. Dus, laten we ronde 71.42 tot 64 en gewoon shift TMR1 6 keer om een idee over hoe dicht een obstakel is verlaten!

Laten we eens kijken het verschil dat deze truc bij een aantal van 8000 (bijvoorbeeld geeft):

originele: 8000 / 71.42 = 112 [mm]

lastig: 8000 / 64 = (8000 >> 6) = 125 [mm]

De fout is dus ongeveer 10%, niet veel vergeleken met de enorme hoeveelheid tijd die we zojuist hebt opgeslagen!

Problemen

Ik heb niet eventuele problemen tijdens het werken met deze module, het enige dat gebeurde was dat de draad tussen de PIC en de ECHO-pin bleef verbroken, en de PIC gewacht eindeloos randen op die pin raakte. Dit was gemakkelijk te vangen, aangezien de rode LED die knevels op elke seconde, gestopt. Ik wist onmiddellijk dat het programma bevroor, en de enige plek die het kan bevriezen dit wachten voor rand routine is. Probleem opgelost na één minuut!

Één meer ding: deze dingen werken met 5 [V], dus het hebben van slechts 4.8 [V] bij volledige lading betekent, dat wij te ver bent rekken. Als de spanning is niet genoeg om te vangen van de echo, zullen de MCU hangen, wachten op de ECHO te komen!

Gerelateerde Artikelen

BASIC ARDUINO obstakel vermijden ROBOT

BASIC ARDUINO obstakel vermijden ROBOT

maken een eenvoudige arduino gebaseerde obstakel vermijden robotStap 1: vereisten BENODIGDE MATERIALEN1. natuurlijk Arduino Uno (een andere compatibele board) X 12. Chasis voor robot (ik gebruikte een van mijn broer's RC auto)3. een L293D Dual h-brug
How to Build obstakel vermijden Robot voor Beginners met Arduino Tutorial

How to Build obstakel vermijden Robot voor Beginners met Arduino Tutorial

Deze Tutorial is voor iedereen aan de slag met arduino. Wij zullen bouwen obstakel te vermijden robot die gebruikmaakt van een ultrasone sensor voor HC SR-04 om objecten en 2 continu (360 graden) servo's aangesloten op een externe batterijvoeding te
Remote Controlled obstakel vermijden Robot met PIC Microcontroller

Remote Controlled obstakel vermijden Robot met PIC Microcontroller

Ik gebruik pic 16f877aservo motor ultrasone module afgestemd motor motor stuurprogramma en 20 mhz kristal.In robotica is obstakel te vermijden de taak van het voldoen aan enkele doelstelling van de controle niet-splitsing of niet-botsing functie bepe
Hoe maak je een obstakels vermijden Robot - Arduino stijl

Hoe maak je een obstakels vermijden Robot - Arduino stijl

je altijd al wilde maken van een van deze coole robots die in principe elk object kunnen vermijden. Maar je niet genoeg geld om te kopen een van die erg duur zijn hoefde, met reeds gesneden delen waar alle materialen waar er voor u. Als u als me bent
Arduino obstakel vermijden Robot

Arduino obstakel vermijden Robot

De kerels van Hey,Materiaal:1 Arduino Microcontroller - http://www.robotshop.com/en/arduino-uno-usb-microc...2 parallax continu roterende Servos - http://www.robotshop.com/en/parallax-futaba-contin...1 180 graad Hi-Tec HS-422 Servo - http://www.robot
Obstakel te vermijden Robot met arduino

Obstakel te vermijden Robot met arduino

OBSTAKEL - VERMIJDEN ROBOTEen obstakel te vermijden ROBOT is een die kan een obstakel te vermijden met behulp van ultrasone sensor en navigeren in haar eigen pad. Met een breadboard gekoppeld aan de robot kunt u plezier spelen binnen een korte period
Obstakel te vermijden Robot met behulp van IR Module geïnterfacet met een boord van Mediatek LinkIt

Obstakel te vermijden Robot met behulp van IR Module geïnterfacet met een boord van Mediatek LinkIt

In deze Intructable zal u worden kunnen te maken een obstakel vermijden Robot met behulp van IR module met L293D en Mediatek Linkit een boord.Stap 1: vereisten L293D Motor Driver IC.2 IR Sensor Modules.Chassi voor Bot.Mediatek LinkItOne-Board2 100 RP
TurtleDuino Object vermijden Robot

TurtleDuino Object vermijden Robot

Hallo, in dit instructable ik zal tonen u stap voor stap hoe te bouwen van de TurtleDuino, een object vermijden robot, met een Arduino UNO microcrontroller aan boord. Ik ontwierp de TurtleDuino met behulp van materiaal van de hardware winkel (Home De
Obstakel ontwijkt Robot met behulp van de Arduino Uno en de nabijheid van de IR Sensor

Obstakel ontwijkt Robot met behulp van de Arduino Uno en de nabijheid van de IR Sensor

Volg de stappen voor het maken van een obstakel vermijden Robot met behulp van Arduino Uno en IR Sensor van de nabijheidStap 1: Onderdelen die nodig zijn1) Arduino Uno R3 (kloon zal doen)2) IR naderingssensoren (2 aanbevolen)3) chassis met motoren4)
Hoe maak je een obstakel te vermijden Robot

Hoe maak je een obstakel te vermijden Robot

obstakel te vermijden robot is een eenvoudige robot die wordt beheerd door een arduino en wat het doet is dat het gewoon zwerft rond en vermijdt obstakels. Het detecteert de belemmeringen met een ultrasone sensor van HC-SR04 met andere woorden als de
Obstakel te vermijden Robot

Obstakel te vermijden Robot

Dit instructable is de schriftelijke versie van mijn "Arduino: hoe te bouwen een obstakel te vermijden Robot" Youtube-video die ik onlangs heb geüpload. Ik raden u om het te controleren.Dus, zonder dralen, laten we beginnen!Stap 1: Een chassis!
Arduino obstakel te vermijden Robot

Arduino obstakel te vermijden Robot

In dit instructable ik zal u tonen hoe te maken van uw eigen obstakel te vermijden robot!We zullen de Arduino uno board en een ultrasone sensor gebruiken. Als de robot een object voor, met de hulp van een kleine servomotor, detecteert scant het het g
Obstakel te vermijden Robot V2

Obstakel te vermijden Robot V2

ik deed onlangs een instructable op een eenvoudige belemmering vermijden robot. In dit instructable ik zal de uitvoering van een panning PING))) sensor, in tegenstelling tot de vorige robot die sensor werd stationaire. Ik zal gebruik maken van deze d
Obstakel te vermijden Robot - Motor Shield

Obstakel te vermijden Robot - Motor Shield

Hallo jongens! Dit is een eenvoudige en elementaire tutorial voor het maken van een obstakel te vermijden Robot... Lees verder...Stap 1: Benodigde materialen Het obstakel te vermijden Robot u nodig te bouwen-Arduino Uno R3 (aangeraden Arduino Uno r3