woensdag 28 oktober 2020

ADSN [ 25 : De software : deel 5 --> het glitch filter]

 Ik heb al enkele H brugjes opgeblazen.De laatste keer kon ik ook vaststellen dat dit gebeurde bij het manueel verplaatsen van de schotel.

Het sturen gebeurt gewoon met een drukknopje en daar zat geen ISR achteraan

ISR is een Interrupt Service Routine. Deze loopt " in de achtergrond" en verwittigt het hoofdprogramma dat er op die gedefiniëerde ingang een verandering is gebeurd , de zogenaamde "callback" . Dat kan zowel een positieve als een negatieve flank zijn naargelang de instelling én op alle voorzien GPIO dit in tegenstelling met een Arduino, één van de reden om voor RPI te gaan.

Ik heb deze nu ook laten lopen voor die drukknopjes .

Het resultaat was al een héél stuk beter , maar de ISR kan niet bepalen of de volgende flankverandering gewenst is of dat ze van een dendering van het contact komt.

Gelukkig zit er ook een glitchfilter in voor o.a. die ISR.

Deze heb ik ook mee in de soft genomen en het resultaat is goed .

Het bewijs ziet men op onderstaande foto:



Onderste trace is het schakelgedrag van het drukknopje, de bovenste is het bewerkt signaal met ISR en glitchfilter.

Het bovenste signaal is een direkte copy naar een uitgang hier speciaal voor geprogrammeerd met een ledje als visueel hulpmiddel en een methode om de oscilloscoop er aan te hangen.

Nog een paar mooie voorbeelden

 

 



 




zondag 25 oktober 2020

ADSN [ 24 : De software : deel 4 + uitgevoerde testen]

Ondertussen wat testen gedaan en ook de parkeerpositie geschreven en getest.

Eerst waren er wat afwijkingen in de reproduceerbaarheid van de parkeerpositie , maar ik wijt dit aan het slecht monteren van een richtlaser in het focuspunt .

De laser verplaatste zich door het bewegen van de schotel


Hieronder de ( slechte) laserbevestiging , dit is laters verbetert en zit nu goed vast


De eerste metingen met de slechte bevestiging van de laser.


Spreiding meetpunten

Dus hoe doe ik dat ?


Ik laat eerst de parabool kalibreren op het punt OOST en op zijn laagste elevatie   ( 10°). Deze punten preset ik met een bepaalde waarde ( voorlopig 18000 en 16000).

Daarna laat ik de schotel rijden naar een bepaald punt in het azimuth . dit punt noem ik de parkeerpositie omdat deze positie mij toelaat om gemakkelijk aan de parabool te werken .In het verlengde van die parkeerpositie bevindt zich mijn gastank. Hier kleef ik een etiket op en laat de parabool meerdere malen vanuit de kalibratiepositie naar dit punt rijden.

U ziet de spreiding van de metingen ( hier slechts 3).

Als ik met driehoeksmeetkunde uitrekent  hoeveel dit is in graden kom ik aan < 1°

Ik neem eigenlijk wat extra want het was in werkelijkheid 0.7°.

Dan komt nu de vraag : is dit nauwkeurig genoeg om in eerste instantie de maan te volgen ?

Hiervoor moet ik de openingshoek berekenen van mijn schotel bij 2.3 Ghz, want daar zitten enkele signalen van wat er rond en naar de maan vliegt.

Dit kan met de volgende formule , dit is de openingshoek bij -3dB.

De -3dB openingshoek formule

Voor 2.3 GHz ( 6.5 °) valt dit reuze mee . Ik vermoed wel dat ik deze moet halveren omdat de fout zowel links als rechts van de lobbe kan gemaakt worden .


Voor 8.8GHz wordt dit kritisch , ik moet een reproduceerbaarheid hebben  van de helft van 1.7° dat is 0.85 ° ! om het onderste uit de kan te kunnen halen .

Bij mijn nieuwe laseropstelling is de spreiding beter. De laser kwam steeds juist op een gemarkeert zwart bolletje terecht

Ik heb 10 metingen genomen volgens bovenstaande procedure . De waarden zijn wat de pulsgever mij telkens gaf op de terminal van de RPI.


Als ik mag geloven wat de producent van de rotor beweert is elke unit slechts 0.01 °.

Ik ga dit eens uitproberen door twee metingen te doen met  bv 100 punten verschil.

Dit zou dan op mijn etiket een afstand tussen deze twee punten moeten geven die na omrekening inderdaad 1° verschil maakt 

Het etiket hangt op 4m en met behulp van een tangens is dit gemakkelijk te doen.

Niet volledig perfect maar toch nauwkeurig genoeg.


donderdag 22 oktober 2020

ADSN [ 23 : De software : deel 3]

 Hé , he

We zijn terug op punt waar alles werkte , ttz de manuele sturing en de kalibratie zijn terug OK.

Ik heb ook de code heel wat kunnen uitzuiveren , dwz,  ik doe nu precies hetzelfde met minder code !


Als het dit weekend goed weer is , zal ik alles nog eens aansluiten en testen in het "veld".

Ondertussen ook wat hardwarematig omgebouwd en de RPI voorzien van een behuizing die op een symmetrische rail kan geklikt worden , tesamen met de I/O.



En ja , ik heb nu een ( dubbele) backup van mijn sourcefile 🤭


zondag 18 oktober 2020

ADSN [ 22 : De software : deel 2]

Misschien kent U dit gezegde niet maar " het is van de hond"

Ik ben 90 % van mijn soft kwijt door mijn eigen schuld. Had ik maar een backup genomen !

Het kaartje in de RPI is stuk gegeaan . Er was een kleine crack overlangs en de sd kaart was naar de Filistijnen !


TIP : als U uw eigen RPI opstart en U ziet het groene  ledje vier maal pinken in een herhalende sequentie , mag je denken dat ook Uw sd kaartje eraan is .


Gelukkig heb ik nog mijn flowcharts met mijn gebruikte prototypes van de funkties .

Dit is toch een kleine hulp bij het herschrijven van de soft.Misschien pak ik het wel anders aan ?

zaterdag 10 oktober 2020

ADSN [ 21 : De software : deel 1]

Het heeft wat voeten in de aarde gehad maar uiteindelijk ben ik er in geslaagd om hier op de broodplank  een automatische kalibratie te simuleren .

In principe is het simpel , kijk waar ge staat met de schotel en rijdt tweemaal naar de kalibratiepunten , eenmaal voor elevatie (EL) en nogmaals voor azimuth( AZ).

Eénmaal de kalibratiepunten bereikt , preset de tellers en klaar is Kees ( in dit geval Luc).


Alles is geschreven in C op de raspberry pi . Géén C++ want hierover is nogal wat onduidelijkheid . Het is gewoon " platte"  C , ik werk dus niet met klassen.

Ik werk wel met de PIGPIO bibliotheek, zie pigpio

In de soft van de RPI is er ook een simpel , maar goed bruikbaar IDE aanwezig.

Geany is de naam.


Deze bevat naast de editor ook een mogelijk om te compileren en/of builden en direkt het programma te starten. Tevens kan men ook een terminal oproepen en heeft men in de linkerzijbalk een overzicht van alle variabelen , functie s, macro's enz..

Ik heb ooit in school C gehad , met wat "schooloefeningen" , maar ik heb toch serieus moeten bijstuderen om het weer onder de knie te krijgen . Op een gegeven moment kunt ge niet zonder pointers werken  en dat was toch weer een hindernis . gelukkig is alles terug goed gekomen . Ook met interrupts werken en de daarbijhorende callbacks was effe doorslikken .

Uiteindelijk heeft het mij veel geholpen om flowcharts aan te maken , dit geeft meer inzicht in de code.

 


 

 

Enfin , de auto-kalibratie werkt en nu wordt het uittesten in werkelijkheid . Ik moet dit nog steeds buiten doen , dus het mag stoppen met regenen .

De volgende stap is een sequentie schrijven om hem naar een parkeerplaats te brengen. Dit is de positie van de schotel waar ik dan gemakkelijk toegang heb om er aan te werken.