Gå til innhold

Sende digitale signaler over radio


Anbefalte innlegg

Jeg skal lage et trådløst multimeter utfra et billig multimeter.

Planen er å koble seg inn på 6x7segmentsdisplayet fra det eksisterende multimeteret og sende data via radio til et tilsvarende 6x7segmentsdisplay.

Hvordan får jeg da konvertert og sendt disse signalene?

 

Har vært inne på både ADC/DAC og PIC, men har lite erfaring med disse (men villig til å lese litt for å lære ;-) )

 

Noen tips til hvordan jeg kan gjennomføre dette? Hvor bør jeg starte?

Lenke til kommentar
Videoannonse
Annonse

først: Husk at det er restriksjoner på hva som er lov innenfor trådløs kommunikasjon; frekvensvalg og signalstyrke.

 

Når det er sagt så ser det ut til at du har minimal erfaring, så jeg vil anbefale å satse på ferdige sender og mottaker moduler, da de er vanskeligst å lage (spessielt hvis du ender opp med å bruke enheter som bruker høye frekvenser, f.eks. 2,4 Ghz; ISM båndet).

 

Ved å finne mottaker/sender moduler som har parallell eller seriell tilkoblingsmuligheter er det ikke noe stort problem å koble de til mikrokontrollere og få dette til å virke (trur jeg), men det vil nok bli en del programmeringsarbeid for å få det til. Har du programmer i C fra før er det en stor fordel.

 

Det første som slo meg som en løsning var Atmel AVR Z-link ( IEEE 802.15.4 og ZigBee), men vet ikke hvor tilgjengelig dette er enda, er rimelig nytt.

Lenke til kommentar

Selve trådløs-biten er ikke noe problem. F.eks. Radiocrafts (www.radiocrafts.com) og Chipcon (www.chipcon.no) er to norske firmaer som lager radiobrikker for sending og mottak av data. Har selv brukt Radiocrafts sine radiobrikker med stort hell. Disse brikkene kobler du enkelt til seriellgrensesnittet på mikrokontrolleren (tre pinner), og sender i vei. :)

 

Tror den største utfordringen din her blir å tolke signalene fra multimeteret. Enten må du se på kretsen inni multimeteret for på noen måte å lese av verdien fra probene, eller så må du på noen måte tyde signalene sendt til displayet.

 

Sånn sett mistenker jeg at du vil få en enklere jobb om du "lager multimeteret selv", altså bruker en ADC-inngang på en mikrokontroller for å måle. Hva skal du bruke dette til? Er det for å montere det fast noen vei til ett formål, eller skal det brukes til alt mulig rart?

Lenke til kommentar

Vel, jeg jobber som elektriker og har utallige ganger tenkt at det hadde vært utrolig kjekt med et trådløst multimeter, slik at man evt. slipper å være 2 mann (eller løpe frem og tilbake) for å sjekke måleresultater.. Og om jeg skulle lykkes med å lage en billig, stabil krets, kan jeg da selge disse videre :-)

 

Jeg var inne på tanken med å lage multimeteret selv, men fikk litt second thoughts da jeg begynte å tenke på hvor "nøyaktig" det blir..

Har ikke programmert veldig mye i C.. Har vel blitt mest "hello world" og "hva er 2 + 2" før jeg har blitt utålmodig og gått lei.

Interesserer meg for elektronikk, men har aldri hatt noe prosjekt å jobbe mot. Bare småtterier, liksom.

 

Jeg tenkte å tolke multimeteret ved å lese av signalene fra displayet.. Virker som den enkleste og greieste metoden. Men, som sagt.. det å tolke disse 50+/- verdiene/bitsene og deretter gjøre de klare til å sendes er en utfordring.. Mulig jeg må trå til med litt programmering. I så fall tenkte jeg å lære litt (grunnleggende) om mikrokontrollere først. Evt. kjøpe noen bøker.. noen anbefalinger? :-)

Endret av Melkekartong
Lenke til kommentar

en god del av AVR chipene har 10 bits ADC, så skulle tru de er godt egnet og gir god nøyaktighet hvis en bruker de rett, men siden du er elektrikker og sikkert måler på en god del forskjellige spenninger så kan det bli litt arbeid med å lage multimeteret selv (selv om det antagelig er en mer elegant løsning).

 

Hvis jeg forstår deg rett så vil du ta signalene rett fra et LCD displayet (altså fra et display som ikke har egne kontroller), dette skulle nok også la seg gjøre med en AVR, kan ta å bruke en stor krets og kanskje koble til alle kontaktene til en IO pinne og så sende all data over til mottaker som legger den ut på pinnene på tilsvarende måte. En annen mulighet er å bruke multipleksere slik at du trenger færre io-pinner.

PS: det er ikke sikkert at LCD displayet bruker TTL/CMOS nivå på signalene, dette må sjekkes.

 

ZigBee løsninger er vell den som er enklest å bruke, da slipper du å tenke så mye på protokoller for overføring o.l., og kan jobbe mer på selve det du er ute etter. Atmel og Chipcon (texas instruments) har begge ZigBee produkter. Selv har jeg bare kjenskap til AVR produkter da det er det eneste jeg har jobbet med, har ikke prøvd noen av trådløs produktene, men har sett noen av de i aksjon.

 

Du kan finne mye hjelp om avr og atmels produkter på www.avrfreaks.net

 

selv har jeg lært alt ved å søke på nett, så har ikke noen anbefaling på bøker, men en ting er jeg rimelig sikker på, og det er at hvis du skal lage dette så bør du kjøpe deg et utviklings kit hvor du kan teste ut kode o.l. før du bygger den ferdige kretsen.

 

Hvis du vil lære deg noe om mikrokontrollere synes jeg det beste er å bare begynne å programmere og lese i databladet for kontrolleren og se på application notes (atmel har mange av disse http://www.atmel.com/dyn/products/app_note...p?family_id=607 )

Endret av Dr_VingTor
Lenke til kommentar

Jepp.. måler som regel alt fra 2 til 400V.. Noen ganger kan det også være nødvendig å ohme for å sjekke gjennomgang/strømmer, så det kan være greit å ha et "ordentlig" multimeter med en liten "addon".

 

Jeg regner med at det ikke finnes noe som en "omvendt" 7segment display driver? Dersom det gjorde det, hadde det jo vært genialt i bruk sammen med AVR-chippene du nevner.

Eventuelt kan det ikke være verdens vanskeligste jobb å programmere en slik PIC. "Hvis inngang A, B, E er 1, så er verdien.." osv.

 

Jeg har også vært inne på tanken med en slik "IO Pinne", men ga det opp da man ville hatt behov for 50~ inn/utganger..

 

Hva vil det forresten si å multipleksere? :)

 

 

Interessant det du sier.. Chips er i og for seg greie, men jeg vil også lære protokoller for overføring, hvordan alt bygges "from scratch", etc.. Men er vel lurere å gå inn på detaljer senere.

Lenke til kommentar

Multipleksere er en krets som har flere innganger og en eller flere utganger. Ved å påtrykke et signal til kretsen velger du hvilken inngang som skal gå til utgangen. f.eks. en 8 til 1 mux, det er en krets med 8 innganger og en utgang (og 3 kontroll pinner i tillegg), ved så sette en bestemt verdi på kontroll pinnen velger du hvilken av de 8 som skal kobles til den ene utgangen. Kan være en løsning for å redusere antallet fra 50 nedtil noe mer fornuftig, men om det virker kommer litt ann på hvordan displayet er laget.

 

Når jeg tenker meg om så kan det jo hende at displayet virker som en matrise (bare et element lyser om gang/settes om gangen), noe som gjør at dette kan bli litt vanskelig uansett hvordan dette kobles...

Lenke til kommentar

Jeg har en følelse av at displayet er vanlig LCD med segmentdisplay.. ikkenoe advanced fancy shit over there, tipper jeg.. er tross alt biltema :p

 

 

Hmm.. multipleksere er muligens noe jeg er nødt til å lese litt om :p

 

hva PIC angår (om du har erfaring med det) - vet du om en bra "nybegynnerprosessor" man kan lære litt med?

Endret av Melkekartong
Lenke til kommentar
Hmm.. multipleksere er muligens noe jeg er nødt til å lese litt om :p

 

hva PIC angår (om du har erfaring med det) - vet du om en bra "nybegynnerprosessor" man kan lære litt med?

7550568[/snapback]

Her er en artikkel fra Wikipedia på multipleksere: http://en.wikipedia.org/wiki/Multiplexer

 

Angående PIC: Synes du burde begynne med en mikrokontroller fremfor mikroprosessor. Mikrokontrolleren har lagringsplassen innebygd (flash-minne) + noe RAM, mens mikroprosessoren må ha eksterne minnekretser tilkoblet for å fungere. Mikrokontrolleren jeg begynte med var PIC16F84A fra Microchip (www.microchip.com), og synes denne var kjempegrei. Disse (og en haug andre) kan du sample gratis fra hjemmesiden til Microchip. Bruker utviklingsprogrammet MPLAB IDE (også fra microchip.com) kombinert med CCS sin C-kompilator (www.ccsinfo.com) for å lage koden i C. Er ikke så stiv i Assembly. :) Men hvis du kan Assembly, så er Assembly-kompilatoren allerede levert med MPLAB.

 

Håper ikke du blir helt motløs av å lese om "alt" du trenger før du omsider kan begynne. Mikrokontrollere og prosessorer er en god del mer avansert enn motstander og kondensatorer, så det kreves litt ekstra greier. Men oppsummert: Du trenger først og fremst en mikrokontroller (f.eks. PIC16F84A), du trenger et program for å skrive kildekoden i (f.eks. MPLAB), du trenger en kompilator for å kompilere kildekoden til binærfiler som mikrokontrolleren kan forstå (f.eks. den fra CSS), og til sist trenger du en programmerer for mikrokontrolleren - rett og slett et lite kort med en sokkel på som du kan sette mikrokontrolleren ned i for å programmere den. Programmereren finnes det flust av på nettet (bare søk på 'PIC programmer' på Google).

 

EDIT: Skrev URLen til CCS feil; skal være www.ccsinfo.com.

Endret av Bassmus
Lenke til kommentar

AVR er jo en mikrokontroller det også da, trenger jo ikke noe eksterene komponeter. Du kan skirve kode i C eller assembly. Hvis du skriver koden korrekt er det ikke noe problem å ta med seg koden over til enn annen AVR chip. All programvare du trenger er gratis. Og å bygge en programmeringskrets er veldig enkelt, om en skulle velge å ikke kjøpe en starterkit. Den enkleste programmereren jeg har bygd bestod av 4 motstander.

 

Nå har jeg ikke selv prøvd PIC, men etter hva jeg har lest så mener jeg at AVR er et bedre valg. Spessielt i dette tilfellet da en skal lage en trådløs applikasjon, og dette alt finnes som en produktløsning som bruker AVR og det bør derfor være mulig å finne en del eksempler på bruk som kan hjelpe en i vei. AVR er også et nyere design en PIC, og med tanke på framtiden så trur jeg det er et sikrere valg.

 

Men nå er det jo ikke jeg som skal lage dette da så du må nesten velge selv... Men om du vil lese mer om så ta en titt på www.avrfreaks.net

Lenke til kommentar
Tusen takk :) Skal prøve meg på PIC16F84A. Har sett det er en del relativt enkle programmeringskort der ute, men har aldri vært sikker på hvilken PIC som er best å begynne med.

 

Er det noen spesiell måte man må skrive programmene på? Hvor finer man i så fall "retningslinjer" for C/Mikrokontrollere?

7575821[/snapback]

Jeg tror 16F84A er et greit valg, ja, hvis du skal drive med PIC-kontrollere. Det var jo for så vidt pensumet på skolen som avgjorde at vi begynte med nettopp den kontrolleren da. :) Men når jeg har søkt på nettet, har jeg fått inntrykk av at 16F84A brukes av mange som et startsted.

 

Fant noen linker som kanskje kan være interessante:

 

"Microchip forums" - forum for brukere av Microchip-produkter, med et eget underforum for 16Fxxx-serien. Mye flinke folk der!

http://forum.microchip.com/

 

"PIC16F84 Fundamentals" - online tutorial:

http://www.boondog.com/tutorials/pic16F84/pic16f84.html

 

Bøker om C-programmering, anbefalt av CCS (de som har laga kompilatoren):

http://www.ccsinfo.com/content.php?page=books

 

"Programming in C" - innføring i C-programmering.

http://www.cs.cf.ac.uk/Dave/C/

 

"The International Obfuscated C Code Contest" - konkurranse i å skrive den mest mulig rotete og uforståelige kildekoden. Visste ikke at dette fantes. :)

http://www.ioccc.org/

 

Ellers kan du finne mye bra på nettet bare ved å søke på "c tutorial" på Google. Nå er ikke "PC-C" og "mikrokontroller-C" helt likt da, men hvis du ikke har lyst til å kjøpe bøker, kommer du veldig langt med å lese tutorials som ligger på nettet og lese andres kildekoder.

 

Må forresten bare utheve her at jeg skreiv feil den adressen til CCS. Det skal være www.ccsinfo.com, ikke www.cssinfo.com som jeg skreiv tidligere.

Lenke til kommentar
Nå har jeg ikke selv prøvd PIC, men etter hva jeg har lest så mener jeg at AVR er et bedre valg. Spessielt i dette tilfellet da en skal lage en trådløs applikasjon, og dette alt finnes som en produktløsning som bruker AVR og det bør derfor være mulig å finne en del eksempler på bruk som kan hjelpe en i vei. AVR er også et nyere design en PIC, og med tanke på framtiden så trur jeg det er et sikrere valg.

7576063[/snapback]

Har ikke prøvd Atmel sine brikker noe videre, så tør ikke gå igang med en Microchip vs. Atmel-diskusjon. :)

 

Men nå er den gamle 16Fxxx byttet ut med 16FxxxA, en forandring som i store trekk gikk på å lage mer miljøvennlige mikrokontrollere uten tungmetaller og slikt. Men jeg regner med at de benyttet anledningen til å ordne opp i eventuelle mangler i brikkene. Videre så er jo 16Fxxx-serien en utrolig enkel serie. Har i det siste brukt mest 877A, som har en god del flere muligheter enn 84A (opplagt, ettersom den har det tredoble antallet med pinner :)), men hva RF og slikt angår så har Microchip egne serier på det området. Har dessverre ikke fått testet de noe videre, ettersom de ikke går an å sample. :D Samt at jeg rett og slett ikke har hatt tid.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...