Bijhouden van torentje met PIC en C IR (7 / 9 stap)

Stap 7: Testen en Tweak


Test Rig

De eenvoudigste manier om dit te testen is te monteren van de servo's samen zoals in stap 5, en bevestig de camera board met een beetje dubbelzijdige tape. Het kan helpen te monteren eerst de camera van bestuur op een beetje van kunststof (Tic Tac doos) zodat u een goede ondergrond naar tape aan de servo tilt.

Testen

Het gemakkelijkste beacon is een externe IR, maar aangezien die gemoduleerd worden, prestaties is niet zo goed. De camera van de Pixart lijkt beter te reageren op 940-950 nm IR LEDs, die u gewoon rond een munt-batterij knijpen kunt. Ik deed dit wqith zeer goede resultaten met behulp van een 940 nm leidde met een 90 graden zichtbaarheid kegel. Ter verbetering van omnidirectionele zichtbaarheid geclusterd ik ook 3 van hen parallel zoals in de afbeelding hierboven.

Vrij veel een IR-bron binnenshuis zal werken, en u kunt tweak camera gevoeligheid om de beste resultaten met uw setup. Pas op voor gloeilamp verlichting, kaarsen, sigaretten en zonnige windows - zij het torentje kunnen afleiden, totdat u de configuratie hebt afgestemd. U kunt ook overwegen met behulp van de IR-pass filter van de WiiMote, of van een andere IR-sensor (uit een gebroken TV misschien). Beste weddenschap zit voor het hebben van een optische low-pass-filter aan uw baken LEDs, maar dit is verondersteld om een goedkope project :)

Probeer het aandrijven van uw test rig. Het moet eerst zelf centreren, dan wachttijd voor een IR-bron. Stap terug ongeveer 10 voet of zo en gebruiken van het baken. De servo's moeten gaan - ze zijn niet correct hebt verplaatst, de pan probeer en kantelen stekkers op het moederbord.

Tweaken

Pixart Camera-Config

Deze link zal bespaart u een heleboel tijd - ik denk dat alles wat die je moet weten over de configuratie en enkele aanbevolen instellingen zijn er. http://wiibrew.org/wiki/Wiimote

Ik zal kort betrekking hebben mijn ervaring hier.

  • Ik gebruikte de fundamentele uitvoer instellen waardoor u 10 bytes van informatie voor maximaal 4 blobs positionering. Er zijn twee andere niveaus die u extra informatie zoals de grootte en de intensiteit krijgt (12 en 18 byte payloads, respectievelijk - u zou moeten verhogen de I2C Lees buffer accordinly), maar ik heb dat hier geen gebruik.
  • Tune blob grootte threshholds uitfilteren van ongewenste interferentie van windows, open haarden en gloeiende lichten.
  • De maximale blob grootte klein te houden, is een goed begin.
  • Hogere winst betekent het zal meer sensistive op een verregaande inmenging van reflections, andere IR bronnen, etc., maar biedt betere nauwkeurigheid in de plaatsing.

Ik heb vrij goede resultaten binnenshuis (en op een bewolkte dag) met de volgende configuratie en de IR-pass-filter die wordt geleverd in de WiiMote.

 static const uint8_t wiiCamInitData[14][2] = {{0x30, 0x01},<br> 
 /* Sensitivity config Block A */ {0x00, 0x00}, {0x01, 0x00}, {0x02, 0x00}, {0x03, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x90}, // p0: MAXSIZE: Maximum blob size. Wii uses values from 0x62 to 0xc8 {0x07, 0x00}, {0x08, 0x41}, // p1: GAIN: Sensor Gain. Smaller values = higher gain 
 /* Sensitivity config Block B */ {0x1A, 0x40}, // p2: GAINLIMIT: Sensor Gain Limit. Must be less than GAIN for camera to function. {0x1B, 0x00}, // p3: MINSIZE: Minimum blob size. Wii uses values from 3 to 5 
 /* Mode config */ {0x33, 0x01}, // mode: 1=basic, 3=extended, 5=full <br>{0x30, 0x08}}; 

Servo beurt tarief

De camera geeft als resultaat de coördinaten op een 1028 x 768 x / y-vlak. Het heeft een FOV van ongeveer 33 graden over en 23 graden hoog. Het biedt coördinaten op een 1024 x 768-grid, dus één graad ongeveer 30 pixels is. Vanwege de truc van de callback we in tmr2.c gebruikten wij hebben 9 bits precisie voor 4ms (of ongeveer 320 stappen van 0.5ms naar 2.5ms over de 180 graden van servo reizen) met het servo-signaal. De CCPR verhoogd voor een PWM zal de positie beïnvloeden door ongeveer 0,6 graden ondergaan.

Om te voorkomen bewegingsonscherpte die we wilt opgeven van een venster dat wordt beschouwd als het centrum is dus bijhouden gladder en niet hyper-gevoelige. In dit geval hebben we een venster 20 x 20 pixels, dat wordt beschouwd als centrum. U kunt spelen met de grootte van de doos "center" om de resultaten aan uw behoeften.

Als de coördinaten die zijn geretourneerd door de camera buiten dit venster, wij pan of kantelen in die richting. Ik verdeel het verschil pixel door (20 * 3) om het uit en het knik effect voorkomen als u teveel corrigeert. De Camera is terug te keren coördinaten ongeveer 60 keer per seconde hier, dus we glad uit de pan/tilt moeten te houden uit jering helemaal over de plaats.

875 en 375 zijn de PWM-waarden die overeenkomen met 0,5 en 2,5 ms perioden op het servo-signaal (extreem links tot extreem rechts op een servo).

 void updatePan(void) { if ((b1x == 0x00) || (b1x == 0xFF)) return; if (b1x > 522) DcPan += (b1x-522)/(20*3); if (b1x < 502) DcPan -= (502-b1x)/(20*3); if (DcPan > 875) DcPan = 875; if (DcPan < 375) DcPan = 375; PWM2DCH = DcPan >> 2; PWM2DCL = DcPan << 6; } 
 void updateTilt(void) { if ((b1y == 0x00) || (b1y == 0xFF)) return; if (b1y > 394) DcTilt -= (b1y-394)/(20*3); if (b1y < 374) DcTilt += (374-b1y)/(20*3); if (DcTilt > 875) DcTilt = 875; if (DcTilt < 375) DcTilt = 375; PWM3DCH = DcTilt >> 2; PWM3DCL = DcTilt << 6; } 

IR-Filter

Met behulp van de IR-filter van de WiiMote is een goed idee als het niet ook up krabde is. Anders kunt u ze in alle soorten afgedankte elektronica.

IR LED

940-950 nm wordt aanbevolen. 880 werkt ook, maar niet zo goed van een afstand.

Veelvoorkomende problemen

Servo heen-en-weer (overdreven corrigeren)

Probeer DcTilt of DcPan te delen door een groter getal en gladstrijken pannen.

Wordt "geplakt"

De servo's kunnen het tekenen van teveel macht - probeer een grotere condensator op de spanningsregelaar.

Reageert niet

Misschien wel in voortdurende reset - de servo's misschien teveel stroom uit, zodat de camera of de IC resetten trekken. Check alle verbindingen en zie als de servo's centreren als u het inschakelt.

Constante resetten

Lage batterij meestal (indien niet een van de hierboven).

Gerelateerde Artikelen

Bijhouden van honingbijen met temperatuur

Bijhouden van honingbijen met temperatuur

Gegevensanalyse binnenkort!Mijn school is soort van vreemd. We hebben niet een cafetaria, maar we hebben een vier weken durende cursus op "The Simpsons". We hebben niet een jungle-gym op de elementaire speelplaats, maar we hebben een half begrav
Bouwen van een Portal torentje met motie-gecontroleerde audio en verlichting

Bouwen van een Portal torentje met motie-gecontroleerde audio en verlichting

In dit Instructable ik ga je laten zien hoe ik ging over het bouwen van mijn eigen leven grootte praten Portal torentje van start tot finish. Dit is een vrij diepgaande project dat zal betrekking hebben op alle fasen van bouw en alle technieken gebru
Het bijhouden van een lichtbron met een Actuator

Het bijhouden van een lichtbron met een Actuator

.. .of misschien het moet worden genoemd "Met behulp van een oude zonnecel van een volledig gecorrodeerde tuin licht als een lichtsensor". :)In dit instructable, ik bouwen op mijn vorige en Toon u hoe kun je een actuator vinden de grootste licht
Bijhouden van vrienden en onderwerpen op sociale netwerken met behulp van Intel Edison

Bijhouden van vrienden en onderwerpen op sociale netwerken met behulp van Intel Edison

Bouw uw eigen sociale media assistant met een Intel Edison en een paar python scripts! Dit een vrij eenvoudig project dat zal u toelaten om het zien van je eigen facebook/twitter-Nieuws feed gefilterde als u bevalt.Verken de code en de bibliotheken g
Hoe bijhouden van uw Robot met OpenCV

Hoe bijhouden van uw Robot met OpenCV

UPDATE: Laat maken Robots, mijn huis digitale hackerspace, werd gekocht door RobotShop. Ik wil niet ingaan, maar de nieuwe eigenaren verboden mezelf en de meeste van de ervaren leden. Dat gezegd, allermeest naar de verbinding er gebroken zal worden.
Delen en bijhouden van uw boeken met behulp van BookCrossing

Delen en bijhouden van uw boeken met behulp van BookCrossing

BookCrossing is een website die u toelaat om unieke nummers toewijzen aan uw boeken, en gebruik van deze nummers om uw boeken als ze over de hele wereld reizen. Dit wordt natuurlijk een stuk spannender als uw boeken daadwerkelijk krijgen om te vertre
Bijhouden van uw auto met een Arduino gebaseerde Lojack

Bijhouden van uw auto met een Arduino gebaseerde Lojack

De autodiefstal van de is een echte slepen! Verhoog uw kansen van het herstellen van uw auto door het installeren van deze eenvoudige Arduino gebaseerde tracker in uw auto.Dit project is vrij eenvoudig, en zou een goed project voor een nieuwe Arduino
Hoe kan ik bijhouden van de locatie van uw kind met behulp van de Hoverwatch-Service?

Hoe kan ik bijhouden van de locatie van uw kind met behulp van de Hoverwatch-Service?

Ouders zijn zich terdege bewust van het feit dat het kennen van de exacte locatie van hun kinderen kan de informatie van het uiteindelijke belang. Omdat de meeste ouders zijn drukke, dat ze mag niet dicht bij hun kinderen te allen tijde, maar zorgen
Robot bijhouden en Mapping "Met behulp van 1Sheeld en Arduino"

Robot bijhouden en Mapping "Met behulp van 1Sheeld en Arduino"

Intro====In dit project zullen we een volgsysteem voor een voertuig of de robot. Dit project kan worden gebruikt om te controleren van een externe robot voor het bijhouden van haar ontwerpresolutie. Deze trackingsysteem hangt niet GPS aangezien er la
Bijhouden van de graveur van uw laser snijden macht met test strips

Bijhouden van de graveur van uw laser snijden macht met test strips

doet uw evenals vroeger Lasergesneden?  Is het tijd om de lenzen schoon, een uitlijning uitvoeren of Controleer het niveau van het bed?  Is de buis zelf macht te verliezen?Als u geen een laser-Energiemeter (ze lijken om te beginnen op ongeveer $800 v
Auto-torentje met Pixy en Nerf Gun

Auto-torentje met Pixy en Nerf Gun

Met het Auto-torentje-Project, kunt u automatisch opsporen en brand op uw vijanden! Dit project maakt gebruik van een Pixy cameramodule, een RobotGeek pan/tilt base, een schuim dart kanon en een Geekduino te coördineren van de componenten. De Pixy ka
Maken van bubbels met je handen en ademen van hen!

Maken van bubbels met je handen en ademen van hen!

In dit Instructable ik proberen zal om je te leren hoe te maken van bubbels met sommige zeep, water en je eigen blote handen. Na deze instructies zorgvuldig zal hopelijk kunt u de grootste bellen die je ooit hebt gezien, en als een extra bonus, u zal
SCHOOT - zuiveren van water met nieuwe technologieën en algea

SCHOOT - zuiveren van water met nieuwe technologieën en algea

Dit Instructable is een soort een verhaal waar zullen wij tonen u hoe ons project is geëvolueerd door middel van het jaar. Onze project graven een paar grote blokken die we in elke stap presenteren je, zo tag langs! Je hoeft niet om te lezen de hele
Hand bijhouden van mechanische Arm - Pyduino + sprong Motion

Hand bijhouden van mechanische Arm - Pyduino + sprong Motion

Hallo!In deze tutorial zal ik u kerels en gals tonen hoe te monteren een hand bijhouden van mechanische arm met een sprong Motion Controller, Arduino apparaat, een paar motoren, sommige balsahout, paperclips, warme lijm en een beetje python code. Aan