Optokomponent för rörelsedetektion
Optokomponent för rörelsedetektion
Hej.
Jag håller på med ett projekt med ett RGB LED bord:
http://elektronikforumet.com/forum/view ... 5&start=45
Och jag vill ha någon form av rörelsedetektor som ska sitta inuti några pixlar.
Så att när man t.ex ställer ett glas på den pixeln eller lägger handen på den, så ska den skicka en signal till Arduinon som tänder den pixeln.
Vad är den bästa komponenten för det?
Jag har tänkt på fotodiod men de känns som det kan bli en hel del kalibrering med den beroende på hur ljust rummet är sen måste den sitta i samma "hål" som en RGB LED så de kanske blir skumt?
Sen får den inte sitta för nära plastskivan som täcker pixeln för jag vill inte ha skugga...
Funkar IR ???
Jag vill även att den komponenten ska använda så få pinnar som möjligt på min Arduino.
Jag håller på med ett projekt med ett RGB LED bord:
http://elektronikforumet.com/forum/view ... 5&start=45
Och jag vill ha någon form av rörelsedetektor som ska sitta inuti några pixlar.
Så att när man t.ex ställer ett glas på den pixeln eller lägger handen på den, så ska den skicka en signal till Arduinon som tänder den pixeln.
Vad är den bästa komponenten för det?
Jag har tänkt på fotodiod men de känns som det kan bli en hel del kalibrering med den beroende på hur ljust rummet är sen måste den sitta i samma "hål" som en RGB LED så de kanske blir skumt?
Sen får den inte sitta för nära plastskivan som täcker pixeln för jag vill inte ha skugga...
Funkar IR ???
Jag vill även att den komponenten ska använda så få pinnar som möjligt på min Arduino.
Re: Optokomponent för rörelsedetektion
Jag tror det finns en projekttråd nånstans om en barhylla som lyste upp flaskorna när de stod på sin plats, sök och kolla om du hittar den. Ett sätt är ju att ha en heltäckande touchfilm, men det lär bli dyrt. Nån kapacitiv givare och sen nån slags multiplexing för att använda få pinnar.
Re: Optokomponent för rörelsedetektion
http://elektronikforumet.com/forum/view ... f=3&t=9661 skulle kanske kunna funkagera?
Re: Optokomponent för rörelsedetektion
Blueint:
Ja mikrofon vore kanske inte så dumt...
Men ett glas som ställer sig på en plastskiva avger inte så mkt ljud..
men man kanske kan fånga upp nån vibration.
Men hur urskiljer jag en pixel mot en annan..
Jag kommer inte ha det i varje pixel ändå.. men några utvalda "glas-pixlar" vill jag ha.
Den här killen har en del att lära sig om att dela med sig, men vad kan han använda tror ni?
http://www.youtube.com/watch?v=X60p1GwNq3Q
En av kommentarorerna spekulerar:
Det låter ju inte som en alldeles för krånglig lösning..
Om den funkar....
EDIT:
En till video från samma snubbe.
http://www.youtube.com/watch?v=DIRebcf5 ... re=related
Min okvalificerade gissning är att han har en fotodiod i listen nertill, och när han lägger handen på listen så triggar det en del events.
Det skulle jag ju kunna ha men då blir de svårt att få till det där med glaset...
Vill ju inte ställa glaset på kanten

En mojäng: http://www.pololu.com/docs/0J19/all
Ja mikrofon vore kanske inte så dumt...
Men ett glas som ställer sig på en plastskiva avger inte så mkt ljud..
men man kanske kan fånga upp nån vibration.
Men hur urskiljer jag en pixel mot en annan..
Jag kommer inte ha det i varje pixel ändå.. men några utvalda "glas-pixlar" vill jag ha.
Den här killen har en del att lära sig om att dela med sig, men vad kan han använda tror ni?
http://www.youtube.com/watch?v=X60p1GwNq3Q
En av kommentarorerna spekulerar:
Kan det vara så? att han har en IR i botten på hålet och sen då man täcker ovansidan så händer det något med reflektionen? Om det blir mindre eller mer reflektion vet jag inte, gissar på mer reflektion??is the touch detection just detecting ir reflection from the diffusor-layer?

Det låter ju inte som en alldeles för krånglig lösning..

Om den funkar....
EDIT:
En till video från samma snubbe.
http://www.youtube.com/watch?v=DIRebcf5 ... re=related
Min okvalificerade gissning är att han har en fotodiod i listen nertill, och när han lägger handen på listen så triggar det en del events.
Det skulle jag ju kunna ha men då blir de svårt att få till det där med glaset...

Vill ju inte ställa glaset på kanten


En mojäng: http://www.pololu.com/docs/0J19/all
Re: Optokomponent för rörelsedetektion
Alla föremål på skivan kommer att förändra vågledaregenskaperna. Så du behöver inte placera ev glas vid kanten.
Re: Optokomponent för rörelsedetektion
Man har väl en ljusstråle (som man vara IR) som går i vinkel mot glaset, brytningen påverkas av ifall det står nåt ovanför och den detekterar man?
Re: Optokomponent för rörelsedetektion
Nu jäklar känns det som man är nära lösningen.
Blueint: ja precis! det jag tänkte på var den andra exemplet som tysken hade när han la handen på första raden bara, och han hade sagt i en kommentar att han använt en fotoresistor, som kanske blir uppfuckad om den sitter brevid en RGB LED?
Hur som helst, gjorde en slarvig illustration:

Pilarna ska illustrera strålarnas brytning...
Lampan i det här fallet är en IR-diod.
Är det så en IR-diod funkar? kan den skicka ut och läsa samtidigt eller behöver jag en sån läser av reflektionerna oxå?
Blueint: ja precis! det jag tänkte på var den andra exemplet som tysken hade när han la handen på första raden bara, och han hade sagt i en kommentar att han använt en fotoresistor, som kanske blir uppfuckad om den sitter brevid en RGB LED?
Hur som helst, gjorde en slarvig illustration:

Pilarna ska illustrera strålarnas brytning...

Lampan i det här fallet är en IR-diod.
Är det så en IR-diod funkar? kan den skicka ut och läsa samtidigt eller behöver jag en sån läser av reflektionerna oxå?
Re: Optokomponent för rörelsedetektion
Kolla tråden jag länkade, det fungerar så att något som står på ytan gör att reflektionen ändras och detta går att detektera inte så svårt rent teoretiskt men jag vet ju inte hur stort avstånd det klarar.
Re: Optokomponent för rörelsedetektion
V-G:
Hittade den här länken på länken du skickade
http://cs.nyu.edu/~jhan/ftirsense/index.html
Det verkar jävligt fiffigt..
Borde jag inte kunna ha en fotoresistor nere i varje cell som mäter ljuset i cellen?
Och då har man såklart nån referens på hur mörkt det är i omgivningen, kanske en referens fotoresistor på bordets ovansida.
Det kommer ju skilja för fotoresistor1 är ju under en diffus plastskiva men det får man ju kalibrera.
För sakens skulle säger vi att det skiljer 40% i ljusintensitet under akrylplasten.
Så skulle skillnaden i ljusintensitet bli högre än 40% så ska RGB-LED tändas.
Sen kommer ju den fotoresistorn i cellen bli jätteljus! Så man kan ju egentligen bara sätta på RGB-LED.
Kanske kan man ha ett 5s delay.. men då kommer den ju lysa i 5s sen släckas för att tändas igen....
Hittade den här länken på länken du skickade

http://cs.nyu.edu/~jhan/ftirsense/index.html
Det verkar jävligt fiffigt..
Borde jag inte kunna ha en fotoresistor nere i varje cell som mäter ljuset i cellen?
Och då har man såklart nån referens på hur mörkt det är i omgivningen, kanske en referens fotoresistor på bordets ovansida.
Det kommer ju skilja för fotoresistor1 är ju under en diffus plastskiva men det får man ju kalibrera.
För sakens skulle säger vi att det skiljer 40% i ljusintensitet under akrylplasten.
Så skulle skillnaden i ljusintensitet bli högre än 40% så ska RGB-LED tändas.
Sen kommer ju den fotoresistorn i cellen bli jätteljus! Så man kan ju egentligen bara sätta på RGB-LED.
Kanske kan man ha ett 5s delay.. men då kommer den ju lysa i 5s sen släckas för att tändas igen....

Re: Optokomponent för rörelsedetektion
Du kan ju jämföra alla fotoresistorer med varandra och se vilken/vilka som avviker.
Re: Optokomponent för rörelsedetektion
Den länken du postade använder en webbkamera för att kolla av strålningen, mycket smart men för dig med slutna celler tror jag inte det fungerar 

Re: Optokomponent för rörelsedetektion
http://www.youtube.com/watch?v=SOy255CA1Lg
Labbade lite idag, använder en fotoresistor, funkar ganska bra.
MEN den slår ju inte av sig automatiskt (har en 4-5sek for-sats som rullar), det skulle man ju kunna fixa genom att slå av RGBn efter en sekund och sen sätta på den igen så pass snabbt så att ögat inte uppfattar det.
Men jag har inte lyckats så bra, i videon kan man se det ganska tydligt, men fick ner det lite till nyss.
Men man uppfattar ändå blinkningen.
Jag har två st fotoresistorer inkopplade en inuti cellen och en utanför, den ska jag använda som referens på något sätt. Måste bara hitta en formel
Men det verkar som det skiljer 200-300 mellan utanför lådan och inuti lådan under plast.
Sen var den inte så känslig (såklart) när jag ställde ett glas på den, så jag var tvungen att ställa ner känsligheten lite, men det gjorde att den sätter igång om man typ hänger över cellen(skuggar) hehe, jäkla pill!!
Labbade lite idag, använder en fotoresistor, funkar ganska bra.
MEN den slår ju inte av sig automatiskt (har en 4-5sek for-sats som rullar), det skulle man ju kunna fixa genom att slå av RGBn efter en sekund och sen sätta på den igen så pass snabbt så att ögat inte uppfattar det.
Men jag har inte lyckats så bra, i videon kan man se det ganska tydligt, men fick ner det lite till nyss.
Men man uppfattar ändå blinkningen.
Jag har två st fotoresistorer inkopplade en inuti cellen och en utanför, den ska jag använda som referens på något sätt. Måste bara hitta en formel

Men det verkar som det skiljer 200-300 mellan utanför lådan och inuti lådan under plast.
Sen var den inte så känslig (såklart) när jag ställde ett glas på den, så jag var tvungen att ställa ner känsligheten lite, men det gjorde att den sätter igång om man typ hänger över cellen(skuggar) hehe, jäkla pill!!
Re: Optokomponent för rörelsedetektion
Det är ju svårt att säga då vi inte vet hur din rutin fungerar. Normalt sett ska en µc lätt hinna blinka och mäta med a/d utan att ögat uppfattar det hela. Troligen är något felkodat eller så feltänkt. Nu kan ju inte jag arduino det minsta men någonstans måste man ju ha en interuptrutin som kan utföra det hela.
Dvs blinkrutinen snurrar på som vanligt MEN detta fält exkluderas tills att det är avmätt klart. Blinkrutinen (tycker jag) ska ligga i en loop där den bara blinkar fälten utefter den färg du satt i en matris. Denna matris ändrar du via interupt (eller vad det nu heter i arduino).
För detektion så sätter man tex en 100ms "timer" som var 100:e ms kollar av fältet genom att:
1. släcka ner det (genom att sätta färg 0,0,0) eller går till en viss ljusintensitet som du vet ger x-värde på din fotoresistor (typ färg:50,50,50)
2. Mät av värdet med a/d
3. Jämför värdet med vad det borde vara kompensera ev med den externa fotoresistorn.
4. "släpp" fältet, dvs låt det få den färgen det hade innan interupt.
5. Kolla nästa fält.
Alternativt:
Bygg upp ett medelvärde mha en timerrutin enligt ovan, ändras medelvärdet snabbt så tänd/släck. DOCK måste detta kompenseras mha den externa ljussensorn.
Dvs blinkrutinen snurrar på som vanligt MEN detta fält exkluderas tills att det är avmätt klart. Blinkrutinen (tycker jag) ska ligga i en loop där den bara blinkar fälten utefter den färg du satt i en matris. Denna matris ändrar du via interupt (eller vad det nu heter i arduino).
För detektion så sätter man tex en 100ms "timer" som var 100:e ms kollar av fältet genom att:
1. släcka ner det (genom att sätta färg 0,0,0) eller går till en viss ljusintensitet som du vet ger x-värde på din fotoresistor (typ färg:50,50,50)
2. Mät av värdet med a/d
3. Jämför värdet med vad det borde vara kompensera ev med den externa fotoresistorn.
4. "släpp" fältet, dvs låt det få den färgen det hade innan interupt.
5. Kolla nästa fält.
Alternativt:
Bygg upp ett medelvärde mha en timerrutin enligt ovan, ändras medelvärdet snabbt så tänd/släck. DOCK måste detta kompenseras mha den externa ljussensorn.
Re: Optokomponent för rörelsedetektion
V-G:
http://www.youtube.com/watch?v=m8nprYFnrzk
Här kan du se mitt bästa försök till on/off, som du ser så blinkar det.. ändå.
Här är koden:
Jag gjorde en grej som får fungera som back-up om jag inte får igång real-tid on/off. Den fade:ar ljuset uppåt till max sen väntar den 2-3 sekunder sen fade:ar den ner ljuset till noll.
Video:
http://www.youtube.com/watch?v=nwKMs8daz98
Kod:
http://www.youtube.com/watch?v=m8nprYFnrzk
Här kan du se mitt bästa försök till on/off, som du ser så blinkar det.. ändå.
Här är koden:
Kod: Markera allt
#include "Tlc5940.h"
int photoRef = 0; //Arduino pin declaration
int photoR2 = 1; //Arduino pin declaration
int read1 = 0; //variable declaration
int readRef = 0; //variable declaration
void setup(){
Serial.begin(9600); //init serial connection
Tlc.init(); //init tlc
}
void loop()
{
read1 = analogRead(photoR2); //reads the photoresistor value
if (read1 < 80) { //photoresistor value goes under 80 do this:
Tlc.set(5, 4095); //turn on GREEN
Tlc.set(4, 4095); //turn on BLUEE
Tlc.update();
delay(5); /kortare fördröjningar = snabbare blink, men fortfarande blink. vid inget delay=snabb blink
Tlc.set(5, 0); //turn off GREEN
Tlc.set(4, 0); //turn off BLUEE
Tlc.update();
}
}
Video:
http://www.youtube.com/watch?v=nwKMs8daz98
Kod:
Kod: Markera allt
#include "Tlc5940.h"
int photoRef = 0; //pin declaration
int photoR2 = 1; //pin declaration
int brightness = 0; //variable declaration
int read1 = 0; //variable declaration
int readRef = 0; //variable declaration
void setup(){
Serial.begin(9600); //init serial connection
Tlc.init(); //init tlc
}
void loop()
{
read1 = analogRead(photoR2); //reads the photoresistor value
if (read1 < 80) {
for (int brightness = 1; brightness < 4096;brightness = brightness +10) {
Tlc.set(5, brightness); //GREEN
Tlc.set(4, brightness); //BLUE
Tlc.update();
delay(5);
}
delay(2500); //keep on for 2,5 sec
for (int darkness = 1; darkness <4096; darkness = darkness +20) {
Tlc.set(5, 4095 - darkness); //GREEN
Tlc.set(4, 4095 - darkness); //BLUEE
Tlc.update();
}
}
delay(75);
}
Senast redigerad av kenntoft 6 november 2011, 23:01:55, redigerad totalt 2 gånger.