Automatiseren van uw huis door de bewegingen van uw vinger (4 / 6 stap)

Stap 4: Controller (The Arduino van code)


Voor het gebruik van de versnellingsmeter moet u de HMC5883L bibliotheek

Voor de Infrarood communicatie moet u deze bibliotheek

Ik bedacht mijn code aan paar functies:

zweven getRotation (char x):

deze functie krijgen de versnellingsmeter rotatie en X -variabele definiëren heks as om terug te keren.

 float getRotation(char x) {float heading; sensors_event_t event; mag.getEvent(&event); //read the data from the accelerometer if (x=='x'){heading = atan2(event.magnetic.x, event.magnetic.y);} else if (x=='y'){heading = atan2(event.magnetic.y, event.magnetic.z);} else if (x=='z'){heading = atan2(event.magnetic.z, event.magnetic.x);} return heading * 180/M_PI; } 

BOOL controleren (float huidig [3], van float oorsprong [4] [3], byte rij):

deze functie controleert u of als de versnellingsmeter is in een bepaalde positie door het vergelijken van de gelezen gegevens opgeslagen in de array 'stroom [3]' om de gegevens van de array "oorsprong [4] [3]" deze array heeft 4 rijen naar elk punt (we hebben in onze tekeningen slechts 4 punten) en de variabele 'rij' Stel heks rij te gebruiken.

 bool Verify(float current[3], float origin_[4][3],int row){ byte toler=37;//this variable set the tolerance to respect //return True if the next conditions are true return origin_[row][0]-toler<=current[0] && current[0]<origin_[row][0]+toler && origin_[row][1]-toler<=current[1] && current[1]<origin_[row][1]+toler && origin_[row][2]-toler<=current[2] && current[2]<origin_[row][2]+toler ;} 

byte getPoint (float oorsprong [4] [3]):

deze functies combineren van de twee laatste functies als resultaat de positie van de versnellingsmeter:

(Recht (retour 2), (retour 3), Up(return 1), Left(return 4))

 byte getPoint (float origin__[4][3] ){ byte return_=0; float current[3]={getRotation('x'), getRotation('y'), getRotation('z')}; if(Verify(current, origin__,0)){return_=1;} else if(Verify(current, origin__,1)){return_=2;} else if(Verify(current, origin__,2)){return_=3;} else if(Verify(current, origin__,3)){return_=4;} return return_; } 

BOOL vergelijken (byte Mdrawing [4] [4], byte rij):

deze functie krijgen de opeenvolgende punten en zien als ze dezelfde volgorde van de punten voorradig in 'Mdrawing[4] [4]' er zijn 4 raws in deze matrix die afhankelijk van hoeveel tekeningen die u hebt gedeclareerd, daarbij hebben wij slechts 4 tekeningen

 bool Compare (byte Mdrawing[4][4],byte row){ byte Cpoint=getPoint( origin); //read the current point of the accelerometer(origin is a global variable ,it's the rotations of each point ) byte Ppoint=0;// this variable will stock previous points byte y=0; byte x=0; while(Mdrawing[row][x]!=0 && x<4){x++;}//get the number of columns that the value is different than 0 while(y<x){ Cpoint = getPoint( origin);//read the current point if (Cpoint==Mdrawing[row][y] && Cpoint!=0){Ppoint=Cpoint;//if the current point is in the same order of the point in 'Mdrawing' while (Ppoint==Cpoint && y!=x-1){Cpoint=getPoint(origin);}// wait that the current point change y++;}//pass to the next point else if(Cpoint!=Mdrawing[row][y] && Cpoint!=0){return 0;}}//if the current point is different than the point in 'Mdrawing' return 1;} 

float oorsprong [4] [3]:

deze matrix bevatten de draaiing van elke punten u kunt definiëren met de kalibratie-bestand. Het kijkt als:

 float origin[4][3]= {{71.93,149.56,-29.04},//up point {5.97,126.75,-82.03},//right point {-72.14,162.31,-134.71},//down point {97.64,-174.11,-52.44}};//left point 

byte Mdrawing [4] [4]:

deze matrix bevatten de volgorde dat de punten moeten om een specifieke tekening bijvoorbeeld:(picture 1)

Gerelateerde Artikelen

Automatiseren van uw wetenschap experimenten

Automatiseren van uw wetenschap experimenten

automatiseren van uw volgende wetenschappelijk experiment voor onder $20 met een datalogger en vrij te maken tijd voor belangrijkere dingen zoals deze Franse zoenen InstructableStap 1: Dataloggen voor dummies Uw leraar heeft u gevraagd om te meten va
Een DIY nabijheidssensor gebruiken voor het automatiseren van uw spookhuis

Een DIY nabijheidssensor gebruiken voor het automatiseren van uw spookhuis

De speciale effecten in een spookhuis moeten worden goed getimed. De beste manier om dit te doen is het gebruik van sensoren om te ontdekken waar uw gasten zich in het spookhuis. Dus ben ik bezig met een aantal projecten die aantonen een verscheidenh
Een bewegingsmelder te gebruiken voor het automatiseren van uw spookhuis

Een bewegingsmelder te gebruiken voor het automatiseren van uw spookhuis

Een van de nuttigste sensoren voor het automatiseren van een spookhuis is een bewegingssensor. Deze sensor kunt u activeren uw speciale effecten alleen wanneer een nieuwe groep mensen arriveert. Op die manier de verrassing zal niet worden geruïneerd
Automatiseren van de Chinese water dispenser

Automatiseren van de Chinese water dispenser

AUTOMATISEREN VAN DE CHINESE WATER DISPENSERBespaart je tijd, verspil geen uw water!INTRODUCTIEAls u een lange periode in China doorbrengt, je je realiseert hoe veel alledaagse acties en activiteiten zijn ontworpen in een zeer inefficiënte manier. Me
Bewerking van een vinger plaat klemmen Tool

Bewerking van een vinger plaat klemmen Tool

Als u op zoek bent voor een nieuw project voor uw mini draaibank en mini molen, zoek dan niet verder; u hebt hem zojuist gevonden. Niet alleen zal het geven beide machines een goede training, maar aan het einde, je hebt ook een geweldig klein hulpmid
RPi, Azure en Cortana gebruiken voor het automatiseren van uw huis!

RPi, Azure en Cortana gebruiken voor het automatiseren van uw huis!

IntroductieEr is nieuwe technologie rondom ons en alleen meer komt elke dag. Onze micro controllers zijn steeds sneller, zijn telefoons slimmer en de cloud is steeds sterker. Met al deze nieuwe technologie is iedereen zich afvragen: hoe kan ik het al
Automatiseren van uw kruidenierswinkellijst met behulp van QR-codes

Automatiseren van uw kruidenierswinkellijst met behulp van QR-codes

Een sticker met een QR-code toevoegen aan uw potten en containers. Wanneer u dat weggaan van dat product you´re merkt, scan de QR code met uw smartphone en het zal worden toegevoegd aan uw kruidenierswinkellijst in een Google Spreadsheet. Wanneer u g
Een DIY drukschakelaar plaat gebruiken voor het automatiseren van uw spookhuis

Een DIY drukschakelaar plaat gebruiken voor het automatiseren van uw spookhuis

Bij het uitvoeren van een groot spookhuis, gewenste allermeest naar de speciale effecten worden geautomatiseerd. Maar voor dit effectief te zijn, moet je om de juiste timing. De beste manier om dit te doen is het gebruik van sensoren om te ontdekken
Automatiseren van uw Home verlichting van browser van het web met behulp van Esp8266

Automatiseren van uw Home verlichting van browser van het web met behulp van Esp8266

Wilt u controle elektrische verlichting bij u thuis vanuit uw webbrowser van minder dan $20. Ik legde dit project onder $20, gebruikte ik esp8266 esp12 van ai-denker die kost me $5, licht een Relais module $5, $5, andere apparatuur $5.Meer over dit p
Hoe te automatiseren van elke temperatuur gecontroleerde proces

Hoe te automatiseren van elke temperatuur gecontroleerde proces

Ik ga u tonen hoe te bouwen en gebruiken van een apparaat dat u toelaten zal om het automatisch regelen van de temperatuur van een thermisch proces (verwarming of koeling) aan een zeer precieze graad.Precisie temperatuurregeling voor zowel warme en k
Automatiseren van Eagle export en voorbereiden voor afdrukken.

Automatiseren van Eagle export en voorbereiden voor afdrukken.

Dit is mijn eerste instructable en Engels is niet mijn moedertaal dus ik hoop dat het zal niet zo slecht. Er zijn vele instructables voor het maken van planken in Eagle en etsen hen via vele methoden. Maar dit instructable moet gewoon veel sneller en
Automatiseren van uw Garage openingstijden

Automatiseren van uw Garage openingstijden

1. AchtergrondMijn 1e project met Apduino Online was bezig met een eenvoudig probleem oplossen, sluiten de garagedeur na zonsondergang, wanneer het is open gelaten.We hebben een garage in de kelder, die wordt gebruikt, niet alleen voor het parkeren v
Automatiseren van Model onderzeeërs

Automatiseren van Model onderzeeërs

De video hierboven geeft meeste van de info op deze automatisering. Een model onderzeeër omvat een heleboel werkende delen die moeten samenwerken in perfecte balans. Als dat niet het geval is, letterlijk alle verloren kan worden. Deze video wordt bes
Hoe te maken van een cactustuin schotel & houden van uw vinger wervelkolom gratis

Hoe te maken van een cactustuin schotel & houden van uw vinger wervelkolom gratis

Volg Nell Fosters tuinieren avonturen in vreugde ons gardenIk was geboren en getogen van een meisje van New England. Weet je, berg laurel, lila, peony en maple sugar land. Niet een cactus voor duizenden mijlen rond. Mijn jaren van het leven in Tucson