Tehtävä on yksinkertainen. Tyttäreni toimeksianto, tarvitsisi tällaisen johonkin taidenäyttelyyn (on alan opiskelija).
Pitäisi tehdä (ihmisen) lähestymiseen reagoiva voluuminsäädin. Eli idea olisi sellainen, että ajatelleen jokin ripustus seinälle (valokuva tai maalaus). Taustalla soi musiikki, ihan tavallisen soittimen/vahvistimen kautta. Musiikin pitäisi olla voluumiltaan nollissa, kun katselija on noin kahden metrin päässä. Sitten, kun katseli siirtyy lähemmäs teosta, niin voluumin pitäisi nousta asteittain.
Eli sama tilanne, jos joku ihminen tarkkailisi näyttelyvierasta, ja nostaisi voluumia sitä mukaa, kun katselija lähestyisi teosta seinällä.
Täytyy sanoa, että minulla loppuivat eväät! Liiketunnistin on/off on helppo, mutta entäpä tällainen analoginen ratkaisu? Mieleen tulee jonkinnäköinen ultraäänitutka (joista en tiedä paljon mitään), lisäksi tarvittaisiin volumen säätöpiiri etu/päätevahvistimen väliin - siihen se olisi kai helpointa laittaa?
Apuja! (Jo siksikin, että nyt on kyse elektroniikasta eikä mistään CB-tyypistä!)
Pitäisi tehdä (ihmisen) lähestymiseen reagoiva voluuminsäädin. Eli idea olisi sellainen, että ajatelleen jokin ripustus seinälle (valokuva tai maalaus). Taustalla soi musiikki, ihan tavallisen soittimen/vahvistimen kautta. Musiikin pitäisi olla voluumiltaan nollissa, kun katselija on noin kahden metrin päässä. Sitten, kun katseli siirtyy lähemmäs teosta, niin voluumin pitäisi nousta asteittain.
Eli sama tilanne, jos joku ihminen tarkkailisi näyttelyvierasta, ja nostaisi voluumia sitä mukaa, kun katselija lähestyisi teosta seinällä.
Täytyy sanoa, että minulla loppuivat eväät! Liiketunnistin on/off on helppo, mutta entäpä tällainen analoginen ratkaisu? Mieleen tulee jonkinnäköinen ultraäänitutka (joista en tiedä paljon mitään), lisäksi tarvittaisiin volumen säätöpiiri etu/päätevahvistimen väliin - siihen se olisi kai helpointa laittaa?
Apuja! (Jo siksikin, että nyt on kyse elektroniikasta eikä mistään CB-tyypistä!)
Vastaukset 56
Vanhimmat
Itse lähtisin toteuttamaan tälläistä projektia jollain arduinolla joka on muutenkin taiteilijoiden suosiossa helpon ohjelmointikielen (processing) takia. Kytke arduinoon esim. Ultraäänianturi - XL-Maxsonar EZ0 ja IR-lähetin (mikäli stereoissa on kaukosäätö) ja loppu onkin koodin vääntöä. Mikäli ei stereoissa ei ole kaukosäätöä niin jänniteohjattu potikka linjatuloon. Malli koodeja ja esimerkkejä löytyy vaikka kuinka.
Googlaa "proximity sensor"
Tossa yks esimerkki:
http://www.youtube.com/watch?v=rLWeOFCQZjg
Interaktiivisuus ja tomaatin ystävä!
Kiitokset tähän asti! En haluaisi käyttää PICiä, koska en niistä mitään tiedä. Sen verran katsoin, että tuosta Maxsonarista saisi analogisen ulostulon ilmeisesti etäisyyden funktiona (olikohan tarpeeksi hämärästi sanottu). Käsitänkö oikein, että käyttämällä maxsonaria ja jänniteohjattua potikkaa ongelmani olisi ratkaistu?
Josta seuraava kysymys (jos tähän asti oletukseni ovat oikein): mistä jänniteohjattu potikka :) ?
FET on jännitteellä ohjattu komponentti, käytä sitä.
Moi potikka,
FET on tuttu, joskin olen käyttänyt sitä vain kytkimenä... voi mennä hankalaksi, kun en tunne tekniikkaa tarpeeksi.
Näyttäisi siltä, että tuo Maxsonar EZ0 antaa ulos analogisena jännitteen, joka on verrannollinen kohteen etäisyyteen: eli kävisi anturiksi.
Nyt vain etu- ja päätevahvistimen väliin jännitesäätöinen potikka... help!
Kuviohan on: etuaste (max400 mV) --> jännitteellä toimiva potikka tms. --> päätevahvistin
Mutta miten?
Tarkoitus oli ilmaista, että nämä löytyi helposti hakemalla googlella "proximity sensor", kun minulla ei ollut silloin mahdollista (aikaa) itse hakea niitä valmiiksi.
Tyo on DIY. joten ilmeisen helposti sovellettava.
http://diymagicmirror.com/
Ja edelleen hakemalla "volume control cmos circuit"
Dual-Channel Digital Volume Control
http://www.electronicsforu.com/efylinux/circuit/feb2003/aug99_dualchannel.pdf
Nuo 4066:t sisältävät ne säätöfetit: http://www.national.com/ds/CD/CD4066BC.pdf
Tuohon löytyy kyllä nykyisin valmiimpikin piiri: http://www.aaroncake.net/circuits/volume.asp
Nuo kytkimet (S1 ja S2) voidaan myös korvata FETillä ja ohjata niitä sillä lähetymiskytkimellä.
Sonar EZ0 antaa analogisena ulos jännitteen, joka kasvaa 10mV per tuuma (ilmeisesti sitä enemmän jännitettä, mitä lähempänä kohde on, en ole vielä päässyt mittamaan).
Aaroncaken kytkentä on simppeli, tosin siinä käytettyä piiriä en löytänyt Partcon enkä Farnellin hausta.
4066 vaikuttaa jättisimppeliltä, jos tavasin datalehteä oikein, niin siinä on neljä samanlaista pakettia: signaali sisään, signaali ulos, ja control. Nyt avainkysymys (jos satut tietämään): mitä control-nastaan syötetään? Jännitettäkö, joka määrää sitten ulostulevan signaalin voimakkuuden? Jos näin on, niin tässä olisi simppeli ratkaisu.
Pahoittelen epämääräisiä termejäni, en ole mikään audioammattilainen.
Control A ... Control D on sen kytkin FET:n "hila". Sillä säädetään ne FETit auki ja kiinni. Siinä datalehdessä on siitä erillinen kaavio.
Nuo kytkentäkaavion vastukset R6 ... R13 kytkeytyvät sitten säätämään sitä voluumia sen mukaan, mitä nuo osoitelinjat A ... D määräävät.
Jos tuo voimakkuuden säätö on ainoa ongelma, se on mahdollista toteuttaa myös niin, että valjatat vanhan tai halpis kaukosäätimen siihen hommaan.
Purat sitä sen verran, että paaset käsiksi sen volumesäätimen nappuloihin ja kytket lähestymiskytkimestä pulssit (S1 ja S2) FET-kytkimillä siihen rinnalle.
Tällöin itse audiolaitteisiin eitarvitse tehdä mitään muutoksia.
Tietsikallakin sen kaukosäätimen voi korvata, kun tutustuu LIRC-sovelluksiin:
http://www.lirc.org/
http://en.wikipedia.org/wiki/LIRC
Sitten on mahdollista tehdä se ilmaisu IR vastaanottimella. Infrapunalla joko heijastuksen kautta tai mittaamalla ihmiskehon lämpöä.
Google kertoo "ir proximity sensor schematic".
4066 on kylläkin analoginenkytkin ja haettiin nimenomaan jännitteellä ohjattavaa potikan korvaajaa. Digitaalinen äänen säädin ei nyt tässä toimi. Hain nyt tähän valmiiksi yhden tavan.
http://archive.electronicdesign.com/files/29/10116/figure_01.gif
Kiitos tomaatin_ystävä.
Ilmaisimeksi sopii varmaan parhaiten se EZ0 sonari, jos sen analogialähtö antaa oikeasti ulos 0..5V jännitettä kohteen etäisyydestä riippuen. Probyte myy ilmaisinta hintaan 25e, joten ei ole kovin kalliskaan. Datalehdet ja FAQ kertoo, että analogialähtö toimii kuten kuvasin, mutta uskon, kunhan pääsen mittaamaan volttimittarilla.
Google kertoi myös VCA -piiristä SSM2018T, jota jopa on saatavana Suomesta. Olisikohan tämä piiri passeli, onko kokemuksia?
http://www.farnell.com/datasheets/92893.pdf
Simppeliltä ainakin vaikuttaa, ja ohjataan jännitteellä.
Kyllä sitäkin voi käyttää. Tuossa on sillä tehty käytännön kytkentä:
http://www.brainmapping.org/Steel/VCA.html
Sitten vielä: http://electroschematics.com/479/automatic-volume-control/
Tuosta A2 op-amppi irti ja sen tilalle ohjaus lähestymiskytkennästä.
OK.
Nyt hankin EZ0 - ultaraäänitutkan. Kompakti, ihan jees vehje.
Analoginen ulostulo antaa volttimittarini mukaan aika tarkkaan 0.5V kun kohdetta ei ole, ja kun kohde lähestyy, niin volttimäärä vähenee aina 0.64mV eli miltei nollaan asti.
Ja sitten kysymykseen.
Eli minun pitäisi saada 0-5V ulos, kun anturia lähestytään. Eli kääntäen verrannollinen anturin antamaan jännitteeseen kertaa 10.
Miten kävisi? Operaatiovahvistimella? Miten käännetään tuo tulos, eli se 5V pitäisi olla maksimi silloin, kun joku on nenä kiinni anturissa? Nyt anturi antaa 500mV, kun ollaan mahdollisimman kaukana siitä.
Jos olisi ehdotuksia, olisin kiitollinen. Puhumattakaan kytkentäkaaviovinkeistä.
Unohda koko juttu, kun elektroniikka on noin hakusessa. Osta ensin kirjoja ja opettele ensin edes elektroniikan perusteet.
Oikea elektroniikkaharrastelija kyllä tekee tuollaiset kytkennät kyselemättä jostain Suomi24-palstoilta.
Terve nimierkki,
Tein ensimmäisen kidekoneeni aika tarkkaan 40 vuotta sitten. Ai minkä kidekoneen? No osta kirjoja ja opettele ensin elektroniikan perusteiden historia, ennenkuin kommentoit asiattomasti.
Eihän kukaan kaikkea osaa. Sitä varten voi kysyä. Ei se tyhmä ole, joka ei tiedä, vaan se, joka ei kysy. Mutta sinähän teet kaikki kytkennät tuosta vaan kyselemättä mitään keneltäkään. Onnitteluni siitä.
Täällä palstalla olen kysynyt, kun en jotain tiedä/osaa, ja jopa joskus vastannutkin, jos olen kysyttävästä asiasta jotain tiennyt. Siksihän tämä palsta ymmärtääkseni on olemassa,
Jollain tällaisella onnistuu:
http://www.velleman.eu/downloads/0/illustrated/illustrated_assembly_manual_k1803_rev2.pdf
Sivulla 7 kytkentäkaavio: konkat pois ja vastuksia sopivasti muuttamalla tulee ulos 0..5V.
Kiitos "vastauksestasi" VelleMan.
Etuvahvistimesta ratkaisu? Joko pelleilit, tai sitten olet ihan pihalla.
Kumma kun ei saa asialliseen kysymykseen asiallista vastausta, lukuun ottamatta nimim. tomaatin_ystävää, joka on antanut asiallisia vinkkejä.
Taidan sittenkin lähteä toteuttamaan hässäkkääni PICilla.
Kannattaa opetella kuinka operaatiovahvistin toimii. Miinus-sisäänmenoon syötettävä signaali "kääntää" jännitteen. Kallistun minäkin sille kannalle, että "Unohda koko juttu". TIlaa joltakin osaavalta koko systeemi.
http://koti.mbnet.fi/huhtama/ele/index.php?si=ml14.sis
Kohdassa "Kääntävä vahvistin" lisätietoa.
Kannattaisi opetella lukemaan. Tai yrittää ymmärtää lukemansa.
Saan anturilta ulos 0-500mV etäisyyden funktiona siten, että lähestyttäessä jännite pienenee. Tällä jännitteellä pitäisi ohjata audion äänenvoimakkuutta siten, että lähestyttäessä voluumi kasvaa. Enpä usko, että pystyn hoitamaan asian kääntävällä oparilla. Kokeilin jo 741 inverting inputilla, eikä tulos vastaa vaatimuksiani.
Laita siihen plus-sisäänmenoon sopiva offsetjännite.
Joopa joo, kidekoneen rakentaja on täys nolla.
Tottakai invertoivalla op-ampilla onnistuu. Se vaan on biasoitava siten, että n. 0 V input-jännitteellä ulostulossa on 5V. Kun inputtiin tulee jännitettä lisää, niin ulostulojännite laskee.
Parempi ehkä pitäytyä siinä kidekoneen rakennuspuuhassa ohjeen mukaan, niin saattais jopa onnistua.
Moi - (M morsella)
Kun minulla on kaksi ongelmaa: "väärinpäin" jännitettä antava anturi, ja sitten vielä se, että tällä jännitteellä pitäisi ohjata audiosignaalin tasoa.. Jotain mikrokontrolleria tässä kai täytyy ajatella, tulee paljon liikkuvia osia muutoin.
Opampilla onnistuu. Esimerkiksi linkin:
http://www.velleman.eu/downloads/0/illustrated/illustrated_assembly_manual_k1803_rev2.pdf
komponenttiarvot:
R2=10k, R5=100k (vahvistus siis 10).
Offsetjännite plus-pinniin 0.45V. Jos V on 5V niin R4=100k, R3=10k.
C2 pois (tilalle rautalankaa). Input-jännite 0.5-0V antaa IC1A:n ulostulosta 0-5.0V. Opamppi ajaa siis outputin sellaiseen jännitteeseen, että plus ja miinus-sisäänmenoissa on sama (0.45V) jännite.
Terve,
Kokeilen tätä.
Hei Kari, miksei tuo propyten esimerkki käy sulle, se on niin simppeli ettei voi olla ongelmaa tehdä sitä. Käytä pwm lähtöä analogilähdön sijasta ja ldr-vastus toimii potikkana. Ja niin siinä arduinossa ei käytetä PIC:iä vaan ATmegaa.
http://probyte.fi/oscom/product_info.php?cPath=1_8_22&products_id=31
Hei!
Kiitos vastauksesta!
Eipä oikein onnistu. Linkin komponenttiarvoilla ei oikein toiminut kunnolla; 10uF kondensaattori vaikuttaisi liian järeältä. Säilyttäen muut linkin komponenttiarvot ennallaan (10k vastus PWM-lähtöön, transistorikytkentä ennallaan), mutta muuttaen 10uF konkan 100nF tulos on aika hyvä: joskin ledi vilkuttaa arviolta 20-30 Hz taajuudella (ei ole skooppia, joten en osaa tarkasti sanoa). Vilkkumisen taajuuteen ei vaikuta kondensaattorin arvo (kokeilin myös 1uF polkolla).
Mitenköhän tuon vilkkumisen saisi pois?
Oleellisempi juttu on kuitenkin, että anturi EZ0 antaa nähdäkseni sitä enemmän jännitettä (tai leveämmän pulssin), mitä kauempana kohde on: näin ollen led-ldr -yhdistelmä ei oikein toimi, kun audiolinjaan tulevan resistanssin pitäisi vähentyä kohteen tullessa lähelle (=äänenvoimakkuus kasvaa). LDR:n vastus on taas suurimmillaan pimeässä, ja pienimmillään valossa. Näin ollen yhtälö ei oikein toimi.
Yritän virittää operaatiovahvistemesta invertoivaa, sillä ehkä selviäisi tämä probleema. Samalla odottelen edelleen Arduinoa... Anturi myös näyttää antavan ei-lineaarisia arvoja suhteessa kohteen etäisyyteen. En tiedä, kuinka lineaarisesti/logaritmisesti LDR käyttäytyy, jos saan häkkyrän toimimaan. Kaikkiaan tämä taitaa vaatia vähän enemmänkin virittelyä.
Tuo EZ0 antaa PWM-lähdöstä 50ms:n (20Hz) välein etäisyys tiedon 58µs/cm ja mittauskeila on 2,5V jännitteellä hieman pienempi kuin täydellä 5V:lla. Ei siihen mitää kääntävää vahvistinta tarvita vaan laita LDR ja 1K vastus sarjaan ja LDR:n toinen karva maihin ja keskeltä lähtö linjatuloon. Täysin kirkas LED niin linjatulo on maissa ja pimeä niin linjatulo on maksimissaan. Sitävartenhan se konkka on ettei led vilkkuisi mutta jos nyt kumminki vilkkuu niin kokeile polttimoa niin se toimii hitaammin. En tiedä mitenkä tuo pwm-lähtö käyttäytyy kun kohdetta ei ole, onko se alhaalla vai ylhäällä. Pitäiskö kokeilla laittaa siihen erotus konkka väliin ja vetää transistorin kanta ylös (100K), led pitäisi saada palamaan kun kohdetta ei ole. Ja jos vasta 2M päässä saa ääni ruveta kuulumaan niin laita säätötrimmeri millä sen saa sovitettua. Mulla ei ole tuollaista anturia etten voi kokeilla käytännössä. Jos pystyt tarkistamaan PWM-lähdöstä tuleeko sieltä jotain ja onko alhaalla vai ylhäällä kun kohdetta ei ole niin se selventää asiaa.
Tere
About 20 Herzillä ledi varmaan vilkuttaakin. Silmämääräisesti.
Kun kohde on kaukana, niin EZ0-anturin PMW-ulostulo on noin 750 millivolttia; kun kohde on lähellä, niin about 60 mV.
En tajua selostustasi (vaikka ammatti-ihmiselle varmaan olisi ihan selvää tekstiä). Kokeilin kääntää oparilla anturin antaman ulostulon, ja pääsinkin siihen asti, että opari antaa ulos noin 3,2 volttia, kun kohde on kaukana, ja noin 3.8, kun kohde on ihan lähellä. Se onkin toinen juttu, miten saan tämän 3.2 - 3.8 V skaalattua välille 0-5 V ja virtaa tähän noin 50-100mA (korvaan varmaan LEDin polttimolla).
Niin, ja vielä tietenkin: käytän vain 1-puoleista jännitelähdettä, 5V. Tuohon opariviritykseen tein virtual gnd:n kahdella vastuksella ja niiden keskeltä virtual ground. Nyt on hakusessa TLE2426 tai jokin muu mokkula, jolla saa tehtyä paremman virtuaalimaan.
Onko sinulla jotain sivua, jonne saat scheman, voisin kommentoida vastusarvoja, kenties virtuaalimaa on jossain virtuaalijännitteessä:)
Jos 5V:n syötöllä on tarkoitus saada 0..5V ulostulojännite pitää opamp olla rail-to-rail-tyyppiä, esim. http://www.linear.com/product/LT1677. Tällöin virtuaalimaa ei ole tarpeen. Virtaa LT1677:sta tosin ei saa kuin 20..25mA, vaatii trankun tai toisen opampin.
Laita tollanen kamera liiketunnistimella, kun liikettä niin 12v ulostulo herää.
http://www.dealextreme.com/details.dx/sku.29014~r.34774240
Price: $59.99 EUR 42.58 (for reference) posti kuluineen (eikä tullia kun alle 45ekee)
IP Wireless WIFI/LAN Camera with Night Vision and Pan/Tilt Motors
Jos haluut 5voltin ohjauksen niin tämä:
http://www.dealextreme.com/details.dx/sku.26358~r.34774240
Noita voi myös netistä laittaa päälle/pois, ja kaupanpäälle kamerakin.
Aikas fiksu valvontakamera, ja vielä edullinen.
Vai että kamera mittaamaan etäisyyttä ja ohjaamaan audiovahvistusta. Kannattais lukea kysymys ennenkuin vastailee. Tarvittais varmaan aikamonta kameraa että voi asetella sopivasti että kukin kytkimellään lisäisi sopivasti vahvistusta kytkien vaikka vastusketjusta aina seuraavan lähtöön.
Eikös fiksu tekis sillain että kun liiketunnistus laittaa 12V ulostulon niin audio nousee tasasesti.
Ja kun ei 12 liipastuna niin voluumi laskee.
Katos tää on digitekniikkaa, 0/1 binääri hommeleita.
Analogisten perhe ei sit jymmärrä.
Voihan sen niinkin tehdä mutta silloin kun näyttelyvieras ei tulekaan katsomaan sitä sinun työtäsi, vaan kävelee ohi niin turhaan jää ääni kovenemaan.
Moi
Liiketunnistus olisi liian yksinkertainen ratkaisu. Eikä sitäpaitsi sitä mitä haen: eli kun olet kohteesta sanotaan noin 2 metrin päässä, niin audio antaa "jotakin", ja kun olet puolen metrin päässä, niin audio "on täysillä". Audion tulee reagoida portaattomasti ja välittömästi etäisyyden muutokseen. Ei siihen 1/0 liipaisu käy. Kiitos kuitenkin vinkistä.
Edellinen kommentti siis nimimerkille käytössä2.
Tuohon sopii ultraäänipari, jossa on lähetin/vastaanotin. Käytetään suoraan 40kHz suoraan taajuutta, josta saadaan tasasuutauksella ohjausjännite vahvistimeen. Toimii hyvin 2 metrin etäisyydessä.
Eikö sinne tasonsäätöön kannata tyrkkiä vaikka jotain kiinaihme PT2325 -ludetta? Luulisi hyvinkin palikalta hoituvan kys satiaisen ajaminen.
Ja tuo kyllä osoittaa suoranaista kusipäisyyttä, että joku melu pitää saada KOVEMMALLE, kun joku onneton lähistölle joutuu. No mutta museot ja kaikki muu hevonvitun paska ei ihan hirveästi nappaa, eli ei siinä mitään. Tuollainen melunlisäin ajaisi kyllä automaattisesti ulos ja vitutusta tulisi kyllä levitettyä tasan tarkkaan jokaiselle, joka edes potentiaalisesti olisi menossa tuollaiseen.
Kiitos kaikille vastauksista!
"Lopullinen ratkaisuni" oli Arduinon Uno, olisiko maksanut 25e.
Ajan anturin EZ0 analogisen ulostulon Arduinon analogiseen sisäänmenoon, ja kirjoittelin ohjelman, joka ohjaa analogWritella lediä. Homma toimii hienosti, eli ledin kirkkaus säätyy kohteen etäisyyden mukaan.
Tässä Arduinon käytössä on sellainenkin etu, että kun ohjelma käynnistyy, niin kirjoittelin alkuun koodinpätkän, jolla anturi adaptoituu kulloiseekin tilaan (eli jos käynnistettäessä välimatkaa kohteeseen on vain esim. metri, niin anturin havainnon "nollakohta" on metri, jos kohteeseen on käynnistettäessä kaksi metriä, niin nollakohta on kaksi metriä. Mittaus ja ledin säätö siis skaalataan alussa valvottavaan alueeseen.
Ongelmakin on: EZ0 näyttäisi toimivan luotettavasti vain noin 1,5..2 metriin asti. En ole ihan varma, mitä speksit lupaavat keilan pituudeksi, mutta pituutta saisi olla kyllä hiukka lisää... käytännössä anturin voi sijoittaa sopivasti piuhan päähän ja säätää näin aluetta, tai sitten pitäisi löytää anturi, jolla on pidempi keila. Tämä ongelma ei poistu vahvistimilla tms., vaan näyttäisi olevan anturin ominaisuus.
Sullahan oli tuo Probyten malli EZ0 MB1000 Paeae myy EZ0 MB1200 jonka keila on hiukan isompi. Hintaa vaan tuolla on enempi 49,-. Tunnistusetäisyyteen vaikuttaa varmasti myös tunnistettava materiaali, ihmisten vaatteet absorboi ääntä hyvin. Tuolla Probyten linkissä on juuri tuosta ketjutuksesta. http://remotesmart.wikidot.com/ultrasound
Arduinot on käteviä pelejä kaikkeen testaamiseen, saa nopeasti aikaan sovelluksen. Älä välitä noista asiattomista kommenteista.
Terveisin toinen harrastaja.
Kiitos kannustavasta kommentista, EI.Harrastaja. On se kumma kun ei saisi mitään yrittää. Kuten sanoin, MYYN ratkaisun, jos joku tällaista tarvitsee, TAI tee-se-itse, alla tähänastinen koodini Arduinon ohjaukseen. Revi kuule nimim. 19 10 siitä.
Ketjutuksesta yms. löysin aika hyvää tietoa sivulta
http://www.maxbotix.com/MaxSonar-EZ1__FAQ.html
Pari asiaa, johon en vielä ole tyytyväinen:
- LEDissä on kynnysjännite, joka tekee "fade-out" -alueen aika suppeaksi. Korvaan seuraavassa protossa LEDin trankulla hehkulampulla, saattaa auttaa. Fade-out -aluetta pitäisi pystyä laajentamaan nykyisestä noin puolesta metristä ainakin metriin.
- Algoritmissa on hiomisen varaa (ainahan niissä on :), vaikka aika hyvin toimiikin
- Syvyysvaikutelmaa lisäisi kummasti toinen sonari yhteen olemassaolevan kanssa, tai tyystin eri nastasta syöte, jolloin voisi ohjelmallisesti kontrolloida tilaa
- tunnistusetäisyyteen vaikuttaa, kuten sanoit, mm. materiaali. mutta täytyy lähteä siitä, että materiaali kuin materiaali käy... osin varmaan riippuu sensorien määrästä, ja toisaalta ohjelmasta
Teen nämä parannukset heti kun kerkiän.
Ja tässä koodi kaikelle kansalle, myös nimimerkille 19 10. Ihan nimelläni, ei tuossa kovin paljoa hävettävää ole.
Nimim. EI.Harrastajalle vielä: onko maailmassa jokin tuutti, joka sylkee tänne negatiivisesti varautuneita nimimerkkejä kuten 19 10... ?
/*
Ultasonic sensor / LED dimmer driver
Kari Stachon 2011. ver 1.0 2011-Mar-31
*/
int sensorPin = A0; // select the input pin for the analog input (Sensor used here is Maxrobotics EZ0)
int ledPin = 9; // select the pin for the LED (5mm bright green)
int sensorValue = 0; // variable to store the value coming from the sensor
int waitingtime = 100; // for debug
long SumsensorValue = 0; // sum of several sensor value measurements
long OutputValue = 0; // for debug
long SampleAmount = 0; // sensor sampling amount
long AdaptationFactor = 0; // for debug
int AdaptationSample = 0; // for debug
long InverseValue = 0; // invert value of sensorValue
int decrementValue = 0; // used for distance adaptation
float multiplier = 0; // sensorValue multiplier factor
int LedLight = 0; // LED signal (0..255)
void setup() // Declarations
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
//pinMode(9, INPUT);
pinMode(2, INPUT);
SampleAmount = 2000;
AdaptationSample = 10;
SumsensorValue = 0;
decrementValue = 0;
for (int i=0; i
Koodista hävisi matkalla kaarisulkuja, joten jos joku koodia kaipaa, niin e-mailia minulle: [email protected].
jos on ohjelmoinut, niin tietää, mihin kaaret pistää, mutta jos ei tiedä, niin heitän sitten liitteenä koodinpätkän paluupostissa.
Muistaakseni tämä "herra_63" tekee ammatikseen näitä laitteita, eli saa taloudellista hyötyä. Ja suunnittelutoimistona käyttää näitä keskustelupalstoja.
Ymmärtäisin kyllä harrastelijamaisen neuvojen kysymisen, mutta jos ammatinharjoittaja on keskustelupalstojen neuvojen varassa, niin jossain kyllä mättää ja pahasti.
Valitettavasti en tee näitä laitteita ammatikseni. Toivoisin kyllä tekeväni, sillä pidän rakentelusta ja suunnittelusta, ja duunina elektroniikan rakentelu/suunnittelu olisi minulle toivehomma!
Ja niin kuin itsekin totesit, jos tekisin näitä duunikseni, niin kysyisin kuule varmaan neuvoja ihan muualta kuin keskustelupalstoilta. Esimerkiksi elektroniikan ammattilaisilta.
Ai niin, ja jos joku haluaa tämän systeemin ostaa, niin tietenkin myyn! Jos joku haluaa koodin, jolla ajan Arduinoa, niin saa sen ihan ilmaiseksi.
Tätä ratkaisua varten kun pitää osata C -ohjelmointikieli ja adaptiivisten algoritmien suunnittelu kohtuullisella tasolla. Olenkohan mä ohjelmointiakin oppinut keskustelupalstoilta - C:n lisäksi noin kahdeksan muuta ohjelmointikieltä? Tosin silloin kun 80-luvun alussa väänsin C-koodia, niin keskustelupalstoja ei ollut olemassakaan. Eikä graafista käyttöliittymää nettiin, tai silloin vasta rakennettiin Suomeen Funetia.
Taidanpa vielä parannella tätä ketjuttamalla sonariin toisen sonarin, se käy speksien mukaan helposti, ja tunnistealue laajenee.
Miten tuollaisella ymmärryksellä voi osata ohjelmointikieliä, kun kaveri ei osaa edes yksinkertaisia perus_opamp-kytkentöjä, kuten invertoivaa vahvistinta?
Pysyisit vaan sen kidekoneesi kimpussa!
Tiedän nyt sinusta sen verran, että hyödynnät täällä kerjäämiäsi suunnitteluohjeita kaupallisesti, mikä on aika raukkamaista. Jos saa tekeleistään kaupallista hyötyä, niin pitäis olla sen verran selkärankaa, että ostaa myös suunnittelun kerjäämisen sijasta. Toimintasi tuntuu kovasti narsistiselta ihmisten hyväksikäytöltä...
Montako kertaa loopissa on tarkoitus pyöriä? 5 vai 6?
OutputValue lasketaan väärin.
SampleAmount = 5;
for (int i=0; i
OutputValue on näytteiden summa jaettuna näytteiden määrällä. Ideana saada useammasta näytteestä keskiarvo, jossa yksittäinen mahdollisesti väärä anturilukema hukkuu keskiarvoon. Voi olla, ettei tämä ole ihan täydellinen koodi, mutta toimii hyvin.
En nyt ole kovin kohtelias.
Sinulla ei liene mitään kompetenssia arvioida osaamisiani. Ammut katkeria kommenttejasi nimimerkillä, minä toimin täälläkin ihan omalla nimelläni.'
Tunnen paljonkin ihmisiä, jotka eivät tiedä mitään opareista, ja ohjelmoivat ERPpejä tai muita systeemejä ihan tosta vaan.
Olenko ymmärtänyt jotenkin väärin, vai eikö tätä palstaa ole tarkoitettu kysymyksille ja vastauksille? Katsos, kysyä saa mitä lystää, ja vastata voi jokainen, joka haluaa vastata - pakkoa ei ole!
"Tiedän sinusta nyt sen verran jne" vuodatusta - työnnä kuule pääsi syvemmälle perseeseesi, ja mene vaikka vessaan hyväksikäyttämään itseäsi. En kai mä mitään suunnittelua osta, jos saan saman tiedon kysymällä! Ei kukaan muukaan täysjärkinen - jos minun pitäisi tehdä linnunpönttö, enkä tietäisi miten se tehdään, niin en kai palkkaa suunnittelijaa, vaan kysyn ihmisiltä, että miten homma tehdään.
Mutta tämän enempää en tule mielipiteitäsi kommentoimaan täällä tai missään muuallakaan. Ongelma ei nimittäin ole minulla, vaan sinulla. Olen tässäkin ketjussa saanut tosi asiallisia neuvoja mm. opareihin liittyen eri ihmisiltä, kiitos heille! Onnea vaan katkeruudessasi (luoja ties mitä kohtaan), itse siitä eniten kärsit - ja tietenkin läheisesi, joita ei tuolla asentaalla montaa ole.
Joka tapauksessa olet narsistinen kiero paska, joka häikäilemättömättömästi hyväksikäyttää toisia ihmisiä vedoten heidän avuliaisuuteen. Myyt ne laitteesi, eli toimit kaupallisessa mielessä. ja kerjäät ilmaiseksi ohjeet ja suunnittelun. Ilmeisesti siinä sivussa huijaat verottajaakin. Kukaan ei sinua täällä auttaisi, jos kertoisit toimivasi kaupallisesti. Se ei muuta asiaa, että unohdat ilmoittaa tulosi verottajalle.
Samalla periaatteellä voisit perustaa ruokakaupan. Kiertelet lähikauppojen roskiset ja dyykkaat tavarat ja myyt ne sitten "tuoreena ja ehtana" omassa puodissasi. Eli tällainen moraali tällä "herra 63:sella on, joka on kuulemma onnistunut peräti rakentamaan kidekoneenkin :))
Ai kirjoittelet ihan omalla nimelläsi! Onko sinun nimi todella Kari_63? Onko 63 etu- vai sukunimi?
Olet vuosikausia kerjännyt täällä ohjeita. Ja olen huomannut, että elektroniikan tietämyksesi on melko tarkkaan ±0. Nyt esim. et millään tajunnut sitä, miten oparilla invertoit lähestymissignaalin, että laitteesi toimisi oikein. Tuskinpa tuollaisella ymmärryksellä saa koodattua mitään toimivaa ohjelmaa. Samanlaista apinointia ja kerjäämistä sinun ohjelmakoodauksesi, kuin tuo elektroniikkatietämyksesikin. Valitettavasti.
Kun kerran "Herra_63" haluaa esiintyä omalla nimellään, niin kerrotaanpa se nyt kaikille: Sivulta: http://www.kolumbus.fi/kari.stachon/ löytyy tämän herran nimi. Harvinaisen tyhmä kylläkin noin koulutetuksi henkilöksi. Olet tainnut nuo paperit saada tapasi mukaan ostamalla jenkeistä pätevyystodistuksia! :)
Ja todisteet siitä, että kyseinen herra kerjää suunnittelun kaupallisiin laitteisiin erehdyttäen lukijoita olevansa vain harrastelija, löytyy taas täältä:
http://www.kolumbus.fi/kari.stachon/Halyt.htm
Ihan yhtä moraalista olisi, jos varastaisit tavaraa ja möisit ne sitten eteenpäin. Nyt sinä avuliaita ihmisiä erehdyttämällä varastat myymiesi laitteiden suunnittelun ja korjaat hyödyn kokonaan itsellesi. Varsinaiset laitteiden suunnittelijat jäävät nuolemaan näppejään. Tuskinpa verottajakaan saa tuotosta sille kuuluvaa osuuttaan.
Ja jos herra 63:sella alkaa muisti pettää, eikä muista kerjänneensä tuohon kaupalliseen laitteeseen ( http://www.kolumbus.fi/kari.stachon/Halyt.htm ) suunnitteluapua nettien keskustelupalstoilla, niin muistin virkistämiseksi esim. sivu:
http://keskustelu.suomi24.fi/node/9113322. Lisää löytyy googlaamalla.
Alaisiltasi saamani tiedon mukaan et kyllä osaa ohjelmoida ollenkaan, vaan olet täysin tumpelo ja hyväksikäytät myös alaisiasi oman henkilökohtaisen hyödyn tavoittelemiseen ja vieläpä työajalla.
Taidampa ilmoitella verottajalle bisneksistäsi. Tuskinpa noin narsistinen pernoona on muistanut ilmoittaa noita bisnestulojaan verotuksessa.
Se, minkä takia otin täällä tämän asian esille, on se että inhoan yli kaiken näitä narsistisia toisten hyväksikäyttäjiä.
Kyllähän tuo keskiarvoistus näkyy koodistasi selvästi, noinhan se pitää tehdä. Skaalaus vaan on pielessä kun summaan lasketaan väärä lukumäärä arvoja.
Looppi pitää mennä näin:
for (int i=0; i < SampleAmount; i )
siis i askeltaa 0:sta 4:ään. Loppuehto kannattaa aina olla '
Kiitos korjailuista; en kuitenkaan tee niitä koodiin, ainakaan heti, kun toimii tuollaisenaankin. Oikeassa varmaan olet. Onko loopissa loppuarvo 4 tai 5, on sinänsä aika samantekevää. Olen kokeillut myös 50..500 -arvoilla, mutta tämä alle kymmenen tuntuu hyvältä lukumäärältä. Jos jakaja heittää yksikön, niin matemaattisesti tulos on tietty täysin pielessä, mutta ei merkitystä tässä tarvittavan samplauksen kannalta. Luulisin, että samaan asiaan voisi päästä ilman luuppeja pistämällä analog sisääntulon eteen pienen kondensaattorin.
Isompi ongelma on LED-LDR -viritys. Kokeilen ensi viikolla korvata LEDin pienellä hehkopolttimolla, ja käyttää ehkä kahta rinnan kytkettyä LRR:aa, jotta syvyyssäätöön saisi lisää lineaarisuutta.
Kiitti oikaisuista kuitenkin.
Jos Arduinoa meinaat käyttää, niin unohda Led ja LDR. Kannattaa käyttää suoraan digitaali-potikkaa. http://www.arduino.cc/en/Tutorial/SPIDigitalPot
Kiitos vinkistä. Näyttää aika simppleliltä, mutta taidan silti pitäytyä lamppu/ldr -asetelmassa. Miksi ostaa Mersu, kun Ladallakin pääsee...
Ylempänä ketjussa harrasteitani mollaavalle: jos olisin aikanaan tehnyt hälyttimen Arduinolla, olisin päässyt halvemmalla ja helpommalla kuin toteuttamallani 556 - virityksellä ja releillä. Ja huomattavasti omaani parempia (ja halvempia) ratkaisuja löytyy täältä: http://www.zen22142.zen.co.uk/ronj/index.html
Tinaamisen iloa!
Sovelluksesi pääsi näköjään prosessoriin. Onneksiolkoon.