Avståndsdetektering med IR, problem!

Robot, CNC, Pneumatik, Hydraulik, mm
klintan
Inlägg: 307
Blev medlem: 13 juni 2003, 01:59:05
Ort: Ekerö

Avståndsdetektering med IR, problem!

Inlägg av klintan »

Jag har byggt en liten krets för avståndsdetektering på min robot, mycket enkel har tagit principen från http://ourworld.compuserve.com/homepage ... en/555.htm (astable) även räknat ut värdena där, fick ca. 37.7 khz och ska ju ha 38 khz tyckte de var bra. men hursomhelst fungerar det inte, och dessutom så reagerar ibland uCn utan att man ens gjort nåt, det fungerar hursomhelst när du testar med en fjärrkontroll till stereon eller något så mottagaren funkar.

Se Cyrs Bild längre ner i tråden.

ok lite kommentarer: ja la in en VREG istället för IR mottagare eftersom dom har likadana ben endast in och out som är på motsatt sida
jag byggde upp allt på experiment bordet först, först endast mottagare testade me fjärr funkade fint.
Sedan försökte ja bygga upp 555kretsen men då blev de kortis nånstans och lyckades inte hitta de så då tänkte ja att jag prövar att göra den som ja vill ha på mönsterkort så kanske de fungerar. och de blev ju iaf inte kortis nu men de funkar ej.

koden i uC tänder endast en Led när den får Falling edge på INT0 och där har ja dragit in Out pinnen från ir mottagaren.

Någon som har någon idé om vad som kan vara fel?
Senast redigerad av klintan 19 april 2005, 19:08:02, redigerad totalt 1 gång.
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Är tanken att det modulerade IR-ljuset från LED1 ska detekteras av IR-mottagaren via reflexer från föremål i omgivningen?

I så fall kanske känsligheten hos IR-mottagaren är för dålig för att kunna detektera reflexerna. Alternativt får du använda fler lysdioder eller se till så att din lysdiod lyser starkare.

Angående störningarna så kanske du får lägga in en check i programmet så att insignalen verkligen existerar under några periodtider av 38kHz, d.v.s. runt 100us.
klintan
Inlägg: 307
Blev medlem: 13 juni 2003, 01:59:05
Ort: Ekerö

Inlägg av klintan »

japp de är tanken, när en vägg eller föremål befinner sig framför skall IR-ljuset reflekteras tillbaka till ir mottagaren.

ok, och då får man köpa en annan hos Elfa alltså? M kan testa sätta dit en till diod iofs :) den som sitter där just nu får 0,7 volt den klarar som högst 1,2 kanske skall byta motstånd då? så att den får 1,2 istället. tänkte det var maxspänning, därför ja valde att ligga lite under.

mm jag tror jag förstår vad du menar :) hehe bara de att mina programmerarkunskaper i Assembler ännu inte sträcker sig så värst långt :) men jag ska försöka fixa de där :)
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Hur har du räknat ut att lysdioden får 0,7V?
Hmm.. jag rekommenderar dig att läsa exempelvis "Lysdioder i bilen"-tråden. Lysdioder ska kontrolleras med ström, inte med spänning.

Jag vet inte vilken känslighet du kan förvänta dig med din lösning, jag har inga erfarenheter av den. Hursomhelst måste du öka effekten på IR-ljuset.
danei
EF Sponsor
Inlägg: 27416
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Är det inte så att en del mottagare inte reagerar på konstant bärvåg.
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Så kan det också vara.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Jaa! Större okomprimerade bilder på slö server är du snäll! :roll:
klintan
Inlägg: 307
Blev medlem: 13 juni 2003, 01:59:05
Ort: Ekerö

Inlägg av klintan »

ja har mätt att den får de :P haha mm får nog läsa den tråden, trodde nämligen den fick tillräckligt med ström om spänningen var rätt :S den får ström från 555an. kommer inte riktigt ihåg hur ja räkna.
Men ska fixa de iaf. får se om de funkar.

Danei: konstant bärvåg innebär? Du får gärna utveckla lite för oss som fortfarande inte har så stor kunskapsbank :D

Stiff: lessen enda servern ja har och hade ingen tid att komprimera :D hehe eller ja var för otålig helt enkelt.
danei
EF Sponsor
Inlägg: 27416
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Jag menar att den inte reagerar om du skickar konstant 38kHz utan bara om man skickar pulser med 38kHz. Det kan nog vara bra att kontrollera att du verkligen har 38kHz.

Om du sparar som gif iställer för bmp så fär du en komprimering. Det tar inte tid.
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Här är en bild som inte tar 5 minuter att ladda:

Bild

3kB mot 800kB :roll:
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

danei skrev:Jag menar att den inte reagerar om du skickar konstant 38kHz utan bara om man skickar pulser med 38kHz. Det kan nog vara bra att kontrollera att du verkligen har 38kHz.

Om du sparar som gif iställer för bmp så fär du en komprimering. Det tar inte tid.
Men jag tycker i alla fall att detektorn borde reagera på reflexer, då blir det ju inte kontinuerlig bärvåg. Jag tror mer på att den reflekterade effekten är för liten.

Ett tips är ju att försöka rikta lysdioden direkt in i detektorn och se om den reagerar då.
klintan
Inlägg: 307
Blev medlem: 13 juni 2003, 01:59:05
Ort: Ekerö

Inlägg av klintan »

aha, då förstår jag, därför man alltså kopplar reseten på 555an till en utgång på uC för att kunna pulsa bärvågen :) då förstår jag. tack danei

Schnegel: jo de är sant kanske kan testa me spegel? aja ska först och främst försöka förstärka effekten. Sen ska ja testa me de rikta den rätt in i mottagaren.

Angående bilden igen: När ja exporterar från Eagle lyckas ja inte välja något annat format än BMP tror att de är nåt vajsing me mitt windows för när ja försöker spara jpg filer från internet så blir dom också bmp otroligt irriterande men har inte direkt orkat kolla upp om de finns nån lösning på problemet.
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Jag tycker att du ska testa med en spegel innan du börjar att mecka med någonting annat.

EDIT: Ta bort din bild nu när CYR har lagt upp en mindre variant. Den pajar ju hela tråden!
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Det finns flera små smidiga program för att visa och konvertera bilder, t.ex. irfanview (som jag använde i det här fallet, tog c:a 10sek).

Du får gärna redigera in "min" bild i första inlägget om du vill...
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Men det är inga problem ju !

Inlägg av bengt-re »

Jag har gjort nästan precis så, dock så var jag för slö för att ta fram Ne555 så jag tog en 12f629 som jag kan ge 3 olika frekvenser med så får man en avståndsuppfattning ( alltså, en frekvens som var helt rätt och två som var respektive olika mycket snedställda så att man kan avgöra avståndet), Jag seriekopplade bara en motstånd, men kom på att det gick sänka strömmen till ungefär 2mA och ändå få bra räckvidd (iaf, med de ir-dioder jag testade med) Räckvidden är ungefär 15-20 cm till en vit mans hand, lite längre till ljusa tapeter.

Och jo, det är bäst att pulsa den för att inte mätta detektrorn. Jag skickade ut ett seriemeddelande från roboten till picen som skapade bärvågen för ir-dioden, och eftersom jag använde en smart ir-styrare så skickade jag en 1á för frekvens ett en tvåa för frekvens 2 och så vidare. Efter jag skickat seriemeddelande så gjorde jag en pulsin på benet där detektorn satt och gjorde pulsin timeout så var det inget där. Oki som jag skrev det slösar jag bort 64ms för varje koll, men det gjorde inget så som jag använde roboten då, går att skriva programmet listigare såklart.


Det här är programmet jag körde i picen. tror att det är självinstruerande..

CPU = 12F629
MHZ = 20
CONFIG 12794

; Detta program ger 1,5 ms långs pulser ut när det ges
; tecken in på gp1
; 1=41,3kHz
; 2=39,4kHz
; 3=38,1kHz


temp var word
tmp0 var byte
tmp1 var byte
a var byte
clear
trisio=%11000000

main
serin gp1,i9600,[a]
pause 1
if a="1" then gosub puls1
if a="2" then gosub puls2
if a="3" then gosub puls3
goto main

puls1 ;41,3kHz
asm
{
movlw 40h
movwf tmp0
loop
bcf 05h,2
movlw 13h
movwf tmp1
mini
decfsz tmp1
goto mini
bsf 05h,2
movlw 13h
movwf tmp1
mini2
decfsz tmp1
goto mini2
decfsz tmp0
goto loop
bcf 05h,2
}
return

puls2 ;39,4kHz
asm
{
movlw 3ch
movwf tmp0
loopa
bcf 05h,2
movlw 14h
movwf tmp1
minia
decfsz tmp1
goto minia
bsf 05h,2
movlw 14h
movwf tmp1
mini2a
decfsz tmp1
goto mini2a
decfsz tmp0
goto loopa
bcf 05h,2
}
return

puls3 ;38,2kHz
asm
{
movlw 3ah
movwf tmp0
loopb
bcf 05h,2
movlw 14h
movwf tmp1
nop
nop
minib
decfsz tmp1
goto minib
bsf 05h,2
movlw 14h
movwf tmp1
nop
nop
mini2b
decfsz tmp1
goto mini2b
decfsz tmp0
goto loopb
bcf 05h,2
}
return
Skriv svar