Mikail en ik (Raymond) zijn vandaag weer verder gegaan met het kijken naar de mogelijkheden van de Tilt Compensated Compass (TCC). De TCC heeft twee functies, een functie die kijkt op welke as (XYZ) er wordt geroteerd en een accelerometer. Nu is vandaag gebleken dat de eerste functie werkt als een echt kompas en daarmee door ons niet gebruikt kan worden. Wij moeten namelijk interactie creëren op coördinaten, maar deze zijn verschillend, afhankelijk van de hoek waarin men staat ten opzichte van het Noorden.
De accelerometer kunnen we daarentegen wel gebruiken omdat deze kijkt naar Acceleratie per as, niet ten opzichte van het noorden. Toch moeten we nog goed gaan bedenken hoe we dit goed kunnen programmeren, want de accelerometer is erg nauwkeurig, maar daarmee ook erg gevoelig. Dit wil dus zeggen dat wanneer iemand naar links wijst en daar rondjes draait, de accelerometer gaat denken dat er alweer naar rechts wordt gewezen.
Misschien dat we ergens dit weekend nog tijd zien om verder te werken, maar dit is niet zeker. Volgende kunnen we wel weer aan de bak.
Hmm okey. Kan je met die kompas eventueel niet de eerste coördinaten gebruiken als basis coördinaten en aan de hand daar van kijken hoe de richting verandert? Of kan het kompas alleen maar X en Y coördinaten geven en geen Z? Hoop dat jullie er snel mee aan de slag kunnen want dit is wel een probleem.
BeantwoordenVerwijderenGroetjes Sonja
Welke tcc gebruiken jullie?
BeantwoordenVerwijderenEn heb je gedacht aan het integreren en uitmiddelen van de data over een tijd van pak hem beet 100 mSec? dan kan je deze gegevens in een array bewaren en op basis hiervan bepalen waar je in de relatieve ruimte bent, immers geen verandering is stilstand.
tcc is van sparkfun, t plan is nu om richtingen te bewaren in een var of array en die om de zoveel tijd wissen. Rechts en links bepaald hij momenteel op de hoek waarop de tcc staat en acceleratie (dus welke kan het op accelereert). Misschien heb jij nog tips?
BeantwoordenVerwijderent nadeel is momenteel dat als je naar links wijst en naar rechts accelereert dat het ook rechts kan meten terwijl je naar links pakt. De reden dat ik ook de kanteling heb gepakt van de tcc is om dit probleem te verhlpen. Ik heb het nog niet echt kunnen testen en/f fijn kunnen stellen.
Hi,
BeantwoordenVerwijderenIk heb een accel meter op mijn desk maar nog niks mee gedaan, maar volgens mij is het zo dat de data uit dit ding
een groter getal geeft als er sneller wordt bewogen. Daar kan je dus een dirigeer beweging mee detecteren. een beweging naar rechts
gaat een keer om naar links. dat zal je kunnen meten doordat het de grootte van het getal afneemt naar nul in de buurt van het omslag punt.
Deze punten zijn voor jullie van groot belang: een beat, of beweging die dit aangeeft.
Ik zou alleen daar naar kijken voor de 'snelle' veranderingen.
Voor de grote gebaren is je idee voor een array met data te bewaren ok.
Je kan een verschil maken tussen kleine bewegingen en grote door na elke meting te kijken hoe groot het verschil is met de vorige meting.
en of ze in dezelfde richting gaan, dus optellen of aftrekken, grote bewegingen zou ik door het uit middelen van bijvoorbeeld 32 metingen
filteren om zo info te krijgen over een lange armbeweging. Bij deze berekening vallen kleine veranderingen er uit.
Parrallel hier aan zou ik ook kijken naar kleine veranderingen volgens het algoritme dat ik hieronder beschrijf.
Zo krijg je de mogelijkheid om al zwaaiend, en trillend met de stok verschillende samples op te roepen.
pseudo code voor snelle bewegingen:
lus(meet waarde) << arduino loop
functie{
? nu groter dan toen : zet vlag op + en toen = nu
? nu kleiner dan toen en vlag is + : dit is een omslag punt doe er iets mee!
}
voor omgekeerde bewegingen bovenstaande om draaien.
pseudo code voor langzame bewegingen:
functie{
array [32]
meet waarde > array[ii++]
sum array waardes / 32
? is het resultaat anders : doe een langzame verandering.
}
voor omgekeerde bewegingen bovenstaande om draaien.