AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Planering och tankar kring eventuella framtida projekt.
Användarvisningsbild
JohnA
Inlägg: 215
Blev medlem: 19 september 2011, 12:25:51
Ort: Vallentuna
Kontakt:

AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av JohnA »

För några år sedan lekte jag med minimalistiska blinkfyrar (LED i mörker) och pejlbara radiofyrar. En viktig egenskap var extremt låg strömförbrukning, samtidigt som fyrarna ska vara igång då det är störst chans för någon att upptäcka dem. För radioamatörer och geocaching kan sändning begränsad till vissa klockslag när som helst under dygnet vara lämpligt, medan sändning riktad till spontana upptäckare sällan är meningsfull då de flesta sover eller arbetar.

En kristallstyrd realtidsklocka fixar tiden perfekt, men förr eller senare driver den iväg och till sist blir det helt galet. Tanken är att en sådan blink- eller radiofyr ska klara sig på egen hand utan batteribyte eller annan handpåläggning under månader eller med hjälp av solceller under flera år. Att synkronisera realtidsklockan mot dagsljuscykeln borde vara möjligt, men det gäller att ta hänsyn till hur ljuset varierar med årstiderna, såväl som att filtrera bort vädervariationer, bilstrålkastare, gatubelysning m.m.

Att lågpassfiltrera dagsljuset ur tillräckligt många mätvärden borde vara en bra start som resulterar i något slags förvrängd sinusvåg. Det känns vettigt att inte fatta några förhastade beslut, utan basera synkroniseringen på flera dygns mätningar. Oavsett årstid och plats på jorden borde midnatt och mitt på dagen inträffa mitt mellan gryning och skymning och med en befintlig realtidsklocka kan man lätt sätta klockslag på detta och med några dygns mellanrum göra små justeringar. Naturligtvis kommer en sådan dagsljussynkad realtidsklocka inte kunna ta hänsyn till sommartid/vintertid med mindre än att den förses med en kalender, vilket i sig kan bli helt galet om den faller ur synk.

Målet är att skapa en pryl som alltid kan "hitta rätt" på egen hand inom loppet av några dygn, även om den varit utsatt för strömavbrott eller andra störningar. Drivs prylen med solceller kan t.ex. några iskalla och mörka vinterveckor dränera batterierna så microcontrollern "brown-outar" och helt tappar takten. När sedan solen tittar fram igen sätter prylen igång att sampla dagsljus under minst ett dygn, ställa "soluret" hyfsat rätt, återuppta arbetet att sända vid rätt tidpunkt och sedan jobba vidare på att justera in realtidsklockan allt mer exakt.

----------

Jag är varken bra på statistiska beräkningar eller programmering så jag vet inte hur detta kan byggas upp. Det känns som att det inte borde vara så komplicerat, bara man kommer på ett fiffigt sätt att göra det på. Skymning och gryning borde vara de tillfällen under dygnet då dagsljuset ändras mest distinkt. Redan efter ett dygn borde man ha ett preliminärt resultat, men det kan naturligtvis påverkas ganska mycket av väder/moln. Oavsett årstid borde midnatt inträffa mitt mellan gryning och skymning. Om man applicerar rullande medelvärdesbildning för tidpunkten då midnatt BORDE inträffa, och sedan väntar flera dygn eller kanske en vecka med att justera realtidsklockan kanske man kan träffa ganska nära verklig tid?

Hur nära faktiskt tid skulle man kunna träffa efter någon vecka? Känns som något en meteorolog borde kunna hjälpa till att svara på.
Nerre
Inlägg: 26700
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av Nerre »

Jag har också varit inne på det där och det borde väl gå att göra det som en PLL av en signal med en tidsperiod på 24 timmar.

De flesta PLL:er är väl dock tillverkade av hårdvara (med nån form av fasdetektering), men hittar man bara nåt vettigt kodexempel att lösa det i mjukvara borde det ju gå att anpassa.

Algoritmen ser ju ju precis likadant ut oavsett om det är 100 MHz eller 11 uHz (blir väl 24 timmars periodtid?), det är bara samplingsfrekvensen som skiljer.
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av Icecap »

Kolla på DS3232 eller liknande, det är RTC'ar som driver max. +/-2 minuter/år.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 16772
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av grym »

hm, den metoden med solljus annvänds väl för extremt strömsnåla "kolla vart små små fåglar är" saker som limmades på dom små fåglarna som inte kan bära en större sak


du kan om du gör lite fult få en mycket god tidssynkning om du har en tunn spalt och en solcell ex riktad rakt dit solen står kl 12 få en signal om solen skiner att klockan är 12
Gimbal
Inlägg: 7919
Blev medlem: 20 april 2005, 15:43:53

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av Gimbal »

Jag har också varit inne på den tanken men det är nog väldigt svårt att få någon som helst precision på det.

Mitt armbandsur å andra sidan drivs av en solcell samt synkar mot en atomklocka varje natt. Där kan man prata om rätt tid. Skottsekunden som inföll vid nyår korrigerades vid nästa synkning som råkade vara 2 timmar senare.

Något sådant vore väl egentligen det bästa, men funkar förstås inte hur långt norrut som helst.
Användarvisningsbild
farbrorvattenmelon
Inlägg: 255
Blev medlem: 29 januari 2009, 21:38:21

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av farbrorvattenmelon »

Tror tekniken finns i vissa skymningsreläer, tex detta:

http://images.clasohlson.com/medias/sys ... 191646.pdf
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45272
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av TomasL »

om du nöjjer dig med +/- 2h eller så, så funkar det med solen.
Problemet du har är att avgöra när klockan är 12, dvs när solen står som högst på himlen, vilket i princip är omöjligt.
Dels för att det beror på var man befinner sig, det skiljer väl nästan en timma mellan Sveriges västligaste del och dess östligaste del.
Dessutom, hur högt skall du titta, solhöjden beror på vilket datum det är.
När man navigerar med sextant, så, även om man kallar det för middagshöjden, så är det aldrig middagshöjden man tar, utan strax före eller strax efter, eftersom solen står stilla ungefär en timma runt middagen.
Så, nej du uppnår betydligt högre noggrannhet med en bra kristallstyrning.
Bättre är då att periodvis synka mot gps, eller i södra Sverige mot DCF.
Användarvisningsbild
JohnA
Inlägg: 215
Blev medlem: 19 september 2011, 12:25:51
Ort: Vallentuna
Kontakt:

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av JohnA »

Kul att tankarna engagerar fler och tack för era kommentarer! Eftersom en viktig grund för projektet/frågeställningen är att lösningen ska vara minimalistisk går de flesta former av hårdvarulösningar "fetbort". En annan grund är att prylarna ska gå att installera nästan hur som helst, bara det finns dagsljus "fritt" från störande människoskapad belysning. Lösningar med DCF77 och liknande radiobaserad tidssignal, GPS, RTC-chip m.m. är alltså ingenting för detta projekt. Eftersom placeringen sannolikt blir utomhus kan man också räkna med stora temperaturvariationer, vilket kan få även en förhållandevis bra RTC att glida iväg.

Jag ser hellre en lösning som glider omkring någon timme eller två lite hit och dit men hela tiden håller sig synkroniserad med dygnet, än något som lite lite i taget glider och efter en längre tid är totalt ur fas med verkligheten.

Nerres förslag om mjukvarubaserad PLL är nog precis vad jag själv varit inne på, fast jag aldrig insett att det faktiskt är en PLL det handlar om. Kan man bara komma på HUR den ska skrivas måste det gå att applicera den på extremt låga frekvenser. Kanske radioamatörer med ELF och QRS som extremintresse sitter inne på lösningar? -Det finns ju t.ex. radiofyrar som tar timmar eller dagar på sig att sända en enkel identifieringssignal med extremt låga effekter, frekvenser och/eller hastigheter. För att ta emot en sådan signal behövs en del hembyggd elektronik inkopplad till en PC.

Ett av mina specialområden inom elektronikhobbyn är rörbaserade"antika" prylar. Analog TV-teknik är väldigt intressant och därifrån har jag lånat en del funderingar kring detta att synkronisera en RTC med dagsljus. -När TV-tekniken var väldigt ung, alltså i början av 50-talet, fanns en del principiellt korrekta lösningar som funkade dåligt i praktiken. En sådan sak var just synkroniseringen av linje- och bildhållningen. Att låta varje inkommande synkpuls direkt påverka linje- och bildoscillatorerna gör att minsta störning får bilden att hoppa omkring. Ganska snart lärde man sig att bygga "svänghjulskretsar" med faskomparator/diskriminator eller s.k. nycklad synkronisering som bara "öppnar" för inkommande synkpuls när det är rimligt att nästa synkpuls bör infalla. PLL tror jag inte är en riktigt relevant jämförelse, men funderingarna har definitivt fått en hel del ny input! :)

Sedan gäller det ju att förstå vad man letar efter också! Ofta tar vi många saker för självklara, men när man börjar titta närmare inser man att det inte alls funkar så som man trott. Därför läser jag nu på om hur dagsljuscyklerna faktiskt ser ut:

https://en.wikipedia.org/wiki/Daylight
https://en.wikipedia.org/wiki/Daytime

Slutligen ska ju sensortekniken vara lämplig att följa dagsljuset också! -Och vara billig/enkel. Av artiklarna ovan verkar det vara ganska enkelt att skilja natt från dag, även när dagen har tjocka moln och natten är molnfri med fullmåne.

Är det kanske något slags bandpassfiltrering med 24-timmars periodtid man bör ge sig på, i stället för lågpass?
Användarvisningsbild
JohnA
Inlägg: 215
Blev medlem: 19 september 2011, 12:25:51
Ort: Vallentuna
Kontakt:

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av JohnA »

TomasL skrev:om du nöjjer dig med +/- 2h eller så, så funkar det med solen.
Problemet du har är att avgöra när klockan är 12, dvs när solen står som högst på himlen...
Att hitta höjdpunkten på en sinusliknande vågform med kraftiga störningar är nog svårt i sig. Att däremot söka mittpunkten mellan de tillfällen då den FILTRERADE signalen ändras som snabbast borde vara lättare. -Alltså söka efter gryning och skymning. Kanske problemet ändå är svårare än jag först tänkte när jag jämfört med nollgenomgångsdetektering för t.ex. triac-baserade ljusdimmrar? -För i dagsljusfallet finns ju ingen tydlig nollgenomgång, och vill man hitta den "virtuellt" antar jag man måste känna vågformens max- och minvärde. Eftersom vädret påverkar dessa väldigt mycket blir nog "nollgenomgången" en lite svårare sak att hitta.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45272
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av TomasL »

Rätt konstruerad så kan du ju få en RTC med några sekunders onoggrannhet per år.
Nerre
Inlägg: 26700
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av Nerre »

JohnA skrev: Att hitta höjdpunkten på en sinusliknande vågform med kraftiga störningar är nog svårt i sig. Att däremot söka mittpunkten mellan de tillfällen då den FILTRERADE signalen ändras som snabbast borde vara lättare. -Alltså söka efter gryning och skymning. Kanske problemet ändå är svårare än jag först tänkte när jag jämfört med nollgenomgångsdetektering för t.ex. triac-baserade ljusdimmrar? -För i dagsljusfallet finns ju ingen tydlig nollgenomgång, och vill man hitta den "virtuellt" antar jag man måste känna vågformens max- och minvärde. Eftersom vädret påverkar dessa väldigt mycket blir nog "nollgenomgången" en lite svårare sak att hitta.
En PLL går väl inte på max/min utan nollgenomgång, men man behöver väl inte just en nollgenomgång? Tankefelet som flera verkar göra här är att man ska synka inom ett dygn, men det fungerar ju inte. Man kommer antagligen behöva åtminstone 3-4 helperioder för att synka in helt. Finessen är ju att det är en regelbunden signal man försöker detektera, om man feldetekterar skumningen med 2 timmar ena dan så kommer det att kompenseras nästa. På grund av hur det hela är uppbyggt så kan det i princip inte driva iväg okontrollerat.

För att förklara vad jag menar: Säg att vi bestämmer oss för att synka på "mitt på dagen". Visst, vi får kanske 2 timmars fel. Men om vi bara justerar med max 5 minuter per dygn så är det ingen risk att vi driver iväg flera timmar.

Säger vår klocka 11 men solljuset indikerar 12 så ställer vi inte vår klocka till 12 direkt, vi ställer den "mot" 12, på 11:05. Sen ser vi nästa dag om den fortfarande är fel.

5 minuter per dygn ger kanske lite väl långsam insvängning, men det var bara tänkt som ett illustrerande exempel. Vi ska ju heller inte synka på 12-slaget utan på en virtuell "nollgenomgång".


Jag googlade på "PLL software" och hittade den här sidan
http://liquidsdr.org/blog/pll-howto/
som verkar väldigt pedagogisk och bra.


En RTC som bara driver med några sekunder om året oavsett temperaturvariationer lär inte vara så jättebillig att bygga. Poängen med den här lösningen var ju också att den ska kunna "starta om" från att ha varit helt död (d.v.s. den ska inte vara beroende av batteribackup).
Användarvisningsbild
JohnA
Inlägg: 215
Blev medlem: 19 september 2011, 12:25:51
Ort: Vallentuna
Kontakt:

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av JohnA »

Bra tankar Nerre! Och ja, det ÄR en stor poäng i att en pryl som i princip saknar användarinterface helt på egen hand hittar hyfsat rätt, och kan göra det efter kanske en halv vinters dvala. (måste erkänna att jag inte har någon specifik applikation för detta, men det är en kul nöt att knäcka och med problemet löst kan man säkert hitta på både kul och praktiska saker att ha det till)

Till ljusmätningen tror jag man kan klara sig med något så primitivt som en vanlig enkel lysdiod. Man behöver knappast fånga hela dagsljuscykelns enorma dynamik. Tvärt om kan det kanske vara en fördel om ljusmätningen tillåts bottna redan under en dag med tjocka ovädersmoln. Samma sak med att mäta väldigt svagt ljus. -Med en bakvänd lysdiod som sensor är självurladdningen relativt hög/snabb så att mäta låga ljusstyrkor relativt går inte så bra. Denna beskärning av dynamiken borde framhäva flankerna, d.v.s. skymning och gryning.

Att det fungerar bra att använda lysdioder ihop med microcontroller som skymningsrelä har jag redan experimenterat med och det funkar ...eh.... klockrent! :) Jag har då använt små AVR ATtiny13A med lysdioden mellan två portar så att den både kan blinka och mäta infallande ljus. För att radikalt minska strömförbrukningen har jag använt watchdog-timern för all timing och låtit resten av chippet sova. Med en lysdiod som blinkar HELA natten har jag för mig det gick att få någon månads drift ur en liten CR2032 knappcell.

Ett enkelt sätt att förlänga drifttiden är att begränsa den aktiva drifttiden till några få timmar efter att dagsljuset har gett upp för dagen. Med en liten ATtiny13A finns ändå inga möjligheter att ha en strömsnål realtidsklocka. Den uppenbara nackdelen är att tidpunkten för när sändningen startar kan skilja ett kvarts dygn mellan årstiderna. Handlar det om radioamatörer som ska pejla en dold sändare (typ rävjakt) eller geocachare som får möjlighet att hitta en blinkfyr endast under en liten del av dygnet kan det förstås funka utmärkt om de i förhand får veta att prylen bara är aktiv några timmar strax efter skymningen (eller gryningen) Vill man i stället att nyfikna människor utan förkunskaper om vad de letar efter ska ha maximal chans att upptäcka prylen, ja då är behovet av något slags RTC mycket större.

Jag ska kolla Nerre-länken om soft-PLL lite senare!
Användarvisningsbild
JohnA
Inlägg: 215
Blev medlem: 19 september 2011, 12:25:51
Ort: Vallentuna
Kontakt:

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av JohnA »

Kollade nyss igenom http://liquidsdr.org/blog/pll-howto/
-Än en gång fick jag dystert konstatera min bristande förmåga att snabbt förstå mer avancerad matematik, vilket i sin tur säger något om min förmåga att få ihop fiffiga programlösningar på knepiga mätproblem... :(
Användarvisningsbild
JohnA
Inlägg: 215
Blev medlem: 19 september 2011, 12:25:51
Ort: Vallentuna
Kontakt:

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av JohnA »

Hittade lite grafisk tänkarhjälp på Wikipedia:

Bild

https://en.wikipedia.org/wiki/Day_length_fluctuations
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45272
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: AVR/PIC - Digitalt solur - Synka RTC med dagsljus?

Inlägg av TomasL »

En RTC som bara driver med några sekunder om året oavsett temperaturvariationer lär inte vara så jättebillig att bygga. Poängen med den här lösningen var ju också att den ska kunna "starta om" från att ha varit helt död (d.v.s. den ska inte vara beroende av batteribackup).
Nej det är nog inte så svårt att bygga en sådan RTC.
En normal hemmasnickrad RTC, bör hamna inom 5s/dag eller så, dvs oerhört mycket bättre än vad man överhuvudtaget kan åstadkomma med solen som källa.

Sollösningen kan aldrig någonsin starta upp och fixa till rätt tid själv, det är en omöjlighet. Möjligtvis inom +/- 4380 timmars noggrannhet, om man inte skall ha med årtalet också, då blir onoggrannheten oändlig.
Det finns en orsak till att man vid solnavigering (Sextant) använder sig av en mycket omfattande nautisk almanacka och en synnerligen exakt klocka, och dödräkning mellan fixarna.

Som kuriosa kan nämnas att förr i tiden, när klockan var mekanisk, så vreds den alltid upp exakt samma tid och alltid av en specifik person.
Man ville inte att olika personer skulle vrida upp fjäderverket eftersom olika hastighet och moment vid uppvridningen påverkade klockans noggrannhet.

Har pysslat en hel del med "astronavigering" (förr tiden, när man var ung och galen (sas), när man funderade på att ensam segla jorden runt) och det här med att plocka solhöjden med sextant, och jag kan bara konstatera att det inte är helt enkelt att göra korrekt, inte ens när man står på landbacken.

Personligen skulle jag nog försöka synka mot RDS eller GPS en gång per dygn, typ. Och det går naturligtvis att tillverka extremt strömsnåla radiomottagare.
Skriv svar