µPong - En ultraljuds sensor
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
µPong - En ultraljuds sensor
Hej, jag har i några år hållit på att bygga ultraljuds sensorer.
Det började då jag letade efter sensorer att ha på en minisumo och hittade ultraljudssensorer för 300:- styck, jag vill ha ca 8sensorer eller så så det blev för stort och för dyrt.
Så jag tänkte, hur svårt kan det vara? Min första sensor blev lika stor som en Ping ))) och likande kostade dock ca 25:- att bygga.
Men jag ville ha mindre sensorer så efter ca 20-30versioner av sensorn(gjorde inte kretskort av alla) blev det den senaste skapelse, V4.85
Den är 10x10x20mm stor och har en räckvidd på ca 50-70cm beroende på hinder.
Den har en massa fiffiga funktioner som kallibrering, kaskadkoppling osv.
Hårdvaran är en PIC16F1824, en högspännings dubbel op-amp och en PGA(MCP6G01). Allt passivt är 0603
PICen har en DAC kopplad till en komparator, andra komparator ingången går via PGAn till mottagar elementet.
Förstärkningen i PGAn och DAC värdet ändras efter en ramp när signalen genereras till sändaren.
Op-ampen driver sändarelementet.
Sedan är det bara tidsmätning och kommunikation
Kommunikationen är uppbyggd på UART och man skickar paket, sensorerna är kopplade på följande vis: Så man skickar ett paket med adress 2 till första sensorn
Den tar emot paketet och kollar om adressen är 0, om inte, ta bort 1 från adressen och skicka vidare.
Så tillslut får sensor #2 paketet med adressen 0 och bearbetar data och skickar vidare ett packet med adressen 255 som betyder "rör inte paketet, skicka till host"
Vissa kommandon går via alla sensorer, man kan skicka ett kommando som gör att alla gör en mätning och lägger in resultatet i paketet och skickar vidare.
Då får hosten ett paket med allas avstånd.
Med denna strukturen så slipper alla sensorer att ha en unik adress och alla(nästan) µC har uart.
Uppdateringshastigheten är bara begränsad av fysik, så om man mäter på max 50cm så blir uppdateringshastigheten:
(1m*340m/s)Hz alltså 340Hz, riktigt så bra får man inte men 250-300Hz har jag testat utan problem.
Om 2 sensorers "synfält" överlappar så blir det bara halva uppdateringsfrekvensen, annars hör dem varandra.
Sensorerna har följande pinnar:
TX,RX,GND,5V,30V
Man kan köra lägre spänning än 30V, jag kör på 12V, man får inte så mycket högre max avstånd på 30V.
All kod och PCB filer kan jag lägga ut om någon vill ha.
Bilder: Till vänster är de senaste ut-daterade mönsterkorten.
I centrum är den senaste versionen.
Till höger är en av de första mönsterkorten.
Bild på senaste sensorn populerad baksidan
Film:
Håller även på med en med 3 ultraljudselement som använder fasskift för att avgöra avstånd,vinkel och hastighet på målet.
Kommer att släppa mer info om den när/om den blir klar.
Det började då jag letade efter sensorer att ha på en minisumo och hittade ultraljudssensorer för 300:- styck, jag vill ha ca 8sensorer eller så så det blev för stort och för dyrt.
Så jag tänkte, hur svårt kan det vara? Min första sensor blev lika stor som en Ping ))) och likande kostade dock ca 25:- att bygga.
Men jag ville ha mindre sensorer så efter ca 20-30versioner av sensorn(gjorde inte kretskort av alla) blev det den senaste skapelse, V4.85
Den är 10x10x20mm stor och har en räckvidd på ca 50-70cm beroende på hinder.
Den har en massa fiffiga funktioner som kallibrering, kaskadkoppling osv.
Hårdvaran är en PIC16F1824, en högspännings dubbel op-amp och en PGA(MCP6G01). Allt passivt är 0603
PICen har en DAC kopplad till en komparator, andra komparator ingången går via PGAn till mottagar elementet.
Förstärkningen i PGAn och DAC värdet ändras efter en ramp när signalen genereras till sändaren.
Op-ampen driver sändarelementet.
Sedan är det bara tidsmätning och kommunikation
Kommunikationen är uppbyggd på UART och man skickar paket, sensorerna är kopplade på följande vis: Så man skickar ett paket med adress 2 till första sensorn
Den tar emot paketet och kollar om adressen är 0, om inte, ta bort 1 från adressen och skicka vidare.
Så tillslut får sensor #2 paketet med adressen 0 och bearbetar data och skickar vidare ett packet med adressen 255 som betyder "rör inte paketet, skicka till host"
Vissa kommandon går via alla sensorer, man kan skicka ett kommando som gör att alla gör en mätning och lägger in resultatet i paketet och skickar vidare.
Då får hosten ett paket med allas avstånd.
Med denna strukturen så slipper alla sensorer att ha en unik adress och alla(nästan) µC har uart.
Uppdateringshastigheten är bara begränsad av fysik, så om man mäter på max 50cm så blir uppdateringshastigheten:
(1m*340m/s)Hz alltså 340Hz, riktigt så bra får man inte men 250-300Hz har jag testat utan problem.
Om 2 sensorers "synfält" överlappar så blir det bara halva uppdateringsfrekvensen, annars hör dem varandra.
Sensorerna har följande pinnar:
TX,RX,GND,5V,30V
Man kan köra lägre spänning än 30V, jag kör på 12V, man får inte så mycket högre max avstånd på 30V.
All kod och PCB filer kan jag lägga ut om någon vill ha.
Bilder: Till vänster är de senaste ut-daterade mönsterkorten.
I centrum är den senaste versionen.
Till höger är en av de första mönsterkorten.
Bild på senaste sensorn populerad baksidan
Film:
Håller även på med en med 3 ultraljudselement som använder fasskift för att avgöra avstånd,vinkel och hastighet på målet.
Kommer att släppa mer info om den när/om den blir klar.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
Re: µPong - En ultraljuds sensor
Jätteintressant, bra jobbat!
Får du inte problem med överhörningar när elementen sitter så nära varann, vad är det minsta avstånd du kan mäta?
Skulle vara intressant att se ett schema.
Får du inte problem med överhörningar när elementen sitter så nära varann, vad är det minsta avstånd du kan mäta?
Skulle vara intressant att se ett schema.
Re: µPong - En ultraljuds sensor
Fanns fjärrkontroller till TV-apparater som styrdes med ultraljud.
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: µPong - En ultraljuds sensor
Jag får överhörning, men den mäts upp och subtraheras från den mottagna signalen, det är det som är "kallibreringen" så den blir väldigt känslig efteråt. Det tillåter mig att använda dåliga 10mm element istället för 16mm element.
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: µPong - En ultraljuds sensor
ca 1-2mm, under det så ser den inget.
men om objektet har kontakt med elementen så ser den.
Så den är blind mellan 0.1 och 1.5mm ungefär.
men om objektet har kontakt med elementen så ser den.
Så den är blind mellan 0.1 och 1.5mm ungefär.
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: µPong - En ultraljuds sensor
Jag la nu in ett medianfilter, det får bort det fenomenet man ser i filmen med att värdet skjuter till max då och då.
Filtret ligger på PC, vet inte om jag vill ha filtret på sensorn istället.
Filtret ligger på PC, vet inte om jag vill ha filtret på sensorn istället.
Re: µPong - En ultraljuds sensor
Det är ju jättebra! Då jag testade så kom jag inte närmare än ett par cm före ringningarna tog mig. Kan man använda denna för nivåmätning tro?ca 1-2mm, under det så ser den inget.
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: µPong - En ultraljuds sensor
nivåmätning borde funka, har inte testat. Jobbigt bara om man får in vätska i elementen.
Re: µPong - En ultraljuds sensor
Jo, de element jag använde var täta. Borde ha en tråd om detta någonstans.
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: µPong - En ultraljuds sensor
Märkte just att op-ampen jag använder (ADA4851-2) finns på ELFA, gött, då kan jag enkelt och billigt få tag på alla delar till sensorn.
Har beställt delar till 12 sensorer nu, dock kommer inte op-amparna på en månad.
Har beställt delar till 12 sensorer nu, dock kommer inte op-amparna på en månad.
Re: µPong - En ultraljuds sensor
Vad är produktionskostnaden för denna härliga ultraljuds sensor? Kan den konkurera med billiga Kina-man ultraljudssensorer?
-
- Inlägg: 2436
- Blev medlem: 28 januari 2007, 18:45:40
- Ort: Kungsbacka
Re: µPong - En ultraljuds sensor
Ska räkna lite på det, om man samplar allt förutom PCB(vilket går) så kostar den 3-4:- styck.
Men med ingen sampling så kostar det:
PCB: 3:- från dorkbot
PIC: 8,52 :-
PGA 2,66:-
OP 13,10:-
element 29,41*2 kr
Så totalt 85,56:-
Allt är taget från farnell med 100x stafflingen
Så det dyraste är elementen, men de på farnell är fina element, finns kinesiska som duger för några kronor styck.
Så det går kanske att bygga för ca 40-50:- om man bygger några 100 och köper direkt från tillverkare.
Men med ingen sampling så kostar det:
PCB: 3:- från dorkbot
PIC: 8,52 :-
PGA 2,66:-
OP 13,10:-
element 29,41*2 kr
Så totalt 85,56:-
Allt är taget från farnell med 100x stafflingen
Så det dyraste är elementen, men de på farnell är fina element, finns kinesiska som duger för några kronor styck.
Så det går kanske att bygga för ca 40-50:- om man bygger några 100 och köper direkt från tillverkare.