Posts tonen met het label RPI. Alle posts tonen
Posts tonen met het label RPI. Alle posts tonen

maandag 13 april 2026

ADSN [ 135 : het RPI- sd kaartje ]

Op een bepaald moment kon ik geen VNC connectie meer maken met mijn tracker.

Ook bleek soms het geheel niet of slecht op te starten  ?

Kaartje eruit , soft nagekeken maar niets speciaal gevonden .Toen ik echter keek met het linux commando df -h zag ik dat mijn kaartje volgeschreven was !

Waarom , dat weet ik nog altijd niet maar waarschijnlijk een log-bestand dat in de loop van de tijd alle vrije plaats  volgeschreven heeft.

Wou ook eens een update doen , maar ik had nog versie " buster" en die bleek geen ondersteuning meer te krijgen .

Dus dan maar een nieuwe versie voor de RPI ( én een backup kaartje én een iso bestand ) gemaakt . Het is deze keer " trixie " geworden .

Ik moet nog uitvlooien waarom het volgeschreven wordt en als ik het vind kom ik hier nog op terug.

Lesson learned ! 

 

14 april 2026. Het log systeem in Linux heeft een ingebakken rotatie-systeem en zorgt zelf voor het aanmaken , roteren en verwijderen van log bestanden .

Ik vermoed dat er ergens iets is misgegaan met de timing hiervoor door de lange stilstand van minstens 2 jaar.

Daarom volg ik nu de logbestanden op of deze overbodige bestanden wel gewist worden .

cfr : logrotate 

 

maandag 25 september 2023

ADSN [ 125: Software verfijningen]

Poosje hier niet geweest en met reden.

Elk nieuwjaar beloof ik mezelf om mijn soft eens aan te pakken .

Let wel , het heeft altijd gewerkt maar er waren nog wat platte kantjes aan het wiel.

Zo kon ik met de server van  de RPI connecteren en alle commando's doorvoeren , maar als ik de client afsloot , kon ik niet meer herconnecteren of ik moest rebooten .

Internet afgezocht en iedereen heeft een antwoord " op papier" . je voelt zo aan dat er veel doorgecopieerd wordt  en zichzelf daar mee belachelijk maakt.

Ik heb het stukje soft van de server  apart genomen en testen gedaan met putty als client en hierdoor is het één en ander duidelijk geworden .

Na wat dieper onderzoek op het internet ( ja dan toch) kwam ik iets interessant tegen . Je moet niet uw socket sluiten maar voordien ook je filedescriptor én je moet ook aangeven aan je socket dat je het opnieuw wilt gebruiken (SO_REUSEADDR).

Dus opgelost en ik blij.

Tweede probleem.

Tijdens het aansturen van de rotor(en) moet ik met een lus werken omdat ik de sturing van de H-bridgen zelf doe. Ik gebruik geen ( latch)  relais , dus ik moet de b rotor blijven aansturen totdat de positie is bereikt.

Dat geeft consequenties : u kan ondertussen niets anders zien of doen.

Ik moet ( nou ja , ik wil) tijdens het aansturen ook de actuele posities terugsturen naar de client zodat er visueel laters iets te beleven valt.

Hiervoor moest ik eerst het programmeren van threads onder de knie krijgen . Dat is gelukt in de nodige mate.

Ik heb ook nog een stukje soft bijgeschreven dat dit pas elke graad gebeurt zodat er niet teveel overhead is.

We zijn al een héél stuk verder . Nu nog de client side visueel iets fabrieken .

Dit zal ws met Python en PyQT zijn . weeral leren geblazen.

vrijdag 20 januari 2023

ADSN [ 115 : Multithreading met RPI ]

Volop terug in de software.

Mijn rotorbesturing werkt tot volle tevredenheid, maar er zijn nog twee probleemkes die ik opgelost wil zien :

1. De afhandeling van de TCP  verbinding bij afsluiten .

2. Tijdens de rotorsturing kan ik niet de actuele positie terugsturen via TCP , dit komt omdat alles zich maar in één draadje ( thread) afspeelt , namelijk in de main.

Dus , ik ben nu aan de studie voor multithreading onder C . 

Dit lukt aardig op mijn Intel/AMD machine voor een simpel programmaatje  maar de RPI heeft een ARM processor en ik wist niet of er een library is voor die processor.

Na wat gezoek ( er is niet zoveel te vinden over multithreading met de RPI 4)

heb ik gevonden welke lib ik moet installeren in de RPI: 


sudo apt-get install libpthread-stubs0-dev
 
Dankzij :https://gist.github.com/pvrego/7fd2610d0bf5ca063e63db6ab776e89c 
 
 

Wat ge dan nog moet doen , is bij het compileren de volgende parameter meegeven in de syntax:

 gcc -Wall -c -pthread "%f".  ( Dit komt uit de  Geany  IDE)

Het is de -pthread dat belangrijk is !

En deze header insluiten in uw programma :

#include <pthread.h>

En ge kunt starten 

Hieronder een klein voorbeeld van multithreading.

*******************************************************************************

 

#include <stdio.h>
#include <unistd.h>   // posix library
#include <pthread.h>


void* myturn (void * arg)
{
   for(int i=0;i < 8;i++)
    {
    sleep(1);
    printf("My Turn ! %d\n",i);
    }
    return NULL;
}

void yourturn ()
{
   for(int i=0;i < 3;i++)
    {
    sleep(2);
    printf("Your Turn ! %d\n",i);
    }
    
}

int main(int argc, char **argv)
{
    
    pthread_t newthread;
    
    pthread_create(&newthread ,  NULL , myturn , NULL);
    
      
    yourturn();
    
    pthread_join(newthread , NULL);
    
    pthread_exit(NULL);
    return 0;
} 

en het resultaat:


en dit gebeurt er als de code niet juist is , m.a.w.  geen threads.




***********************************************************************************







zaterdag 5 december 2020

ADSN [ 36 : Skytrack ]

 Volgend hoofdstuk.

Het tracken van de maan ( of andere hemellichamen ) vanuit de shack.

Hiervoor is  een Python software gevonden op Github die aan de meeste volwachtingen voldoet, nl skytrack.

Skytrack


Spijtig liep alles niet van een leien dakje omdat er nog wat foutjes inzaten .

Ook moest ik nog twee bibliotheken installeren die ik nog mistte , maar dat was snel opgelost.

Op te lossen met :


pip3 install skyfield

pip3 install tzlocal.

 

Toen ik echter ook nog de limieten meegaf waar de rotor niet voorbij mocht gaan , kreeg ik telkens een foutmelding.

Gelukkig is wat na try and error ook dat opgelost.

Het was een vergelijk tussen een string  en een float en dat kan nie! 

Bijgevoegd een afdruk van het terminalscherm waarbij ik Mars aan het tracken ben , bij afwezigheid van de maan.


Ik hoop deze avond op helder weer , want na 21h20 komt de maan te voorschijn.

Ben benieuwd of alles een beetje klopt.

Laters hoop ik deze software in een GUI te plaatsen , zo dat  alles wat netter is.


23 okt 2021.

Bij een install op een andere laptop heb ik ook nog volgende pythonmodule moeten installeren met:


pip3 install astropy


 



zondag 29 november 2020

ADSN [ 35 : Gpredict+ RPI + rotor --> Succes !]

Eindelijk is het zover !

Na errors in de  code , segmentation faults, NULL pointers is het systeem eindelijk werkend .

De C code bestaat uit 2290 regels code ( met witruimte erbij gerekend) en 24 zelfgeschreven functies . Aan de declaraties van alle variabelen ben ik niet eens begonnen met tellen .

Er zijn nog enkel kleine akkefietjes , zoals het vrijgeven van de socket bij ongeoorloofd afsluiten , maar dat is meer een praktijkfout dan wat anders.

Gisteren heb ik de CHANG'E5 getrackt , dit is de Chinese satelliet die ondertussen aangekomen is aan de omloopbaan van de maan . Hiermee was ik in feite ook de maan aan het tracken , wat uiteindelijk mijn eerste bedoeling zal zijn.

Ik heb echter nog geen echt maantrackings programma , dat wordt dus de volgende stap. De H bridgen houden het zonder verpinken uit , dit was een probleem bij de aangekochte modules , maar de zelfgebouwde werken prima.

Ik heb al zekers 100 keer een kalibratie uitgevoerd . Het is te zeggen de soft heeft dat gedaan omdat ik een automatische kalibratie laat uitvoeren bij het opnieuw opstarten van de RPI nadat er weer een verbeterde versie ingeladen was.

Ook de omloopsatellieten zijn te volgen , enkel wel in de zuidelijk hemisfeer maar de rotoren kunnen de snelheden aan. Dit was meer een test , is geen uiteindelijk doel.

Ik heb wel vastgesteld dat ik in het begin een deel van het maanvolgen mist omdat de maan vroeger of het echte Oosten (90°) opkomt . Dus overweeg ik om de schotel van bv 70° en tot 250 ° te laten werken ipv van 90 ° naar 270° . Mijn Westen kant wordt toch een deel geblokkeerd door mijn huis.

Dit was het voor vandaag.

woensdag 11 november 2020

ADSN [ 29 : hardware : Hbridge uitgevoerd]

 De praktijk van het vorige schema.



Links de eerste versie en getest op Azimuth en goedgekeurd , rechts de nieuwere versie met minder brugjes en nog te testen op Elevatie.

Gebruikte MOSFETS:

P  kanaal : IRF4905

N kanaal : IRLZ44N

Gate wordt aangestuurd via fotokoppelaars zo ben ik gescheiden tussen "vermogen" en het RPI gedeelte. Hierdoor is ook de levelshifter niet nodig.

Er zijn ook leds voorzien zo dat ik kan zien welke MOSFET er aangestuurd wordt.



zondag 1 november 2020

ADSN [ 26 : De software : deel 6 --> Hbridge perikelen]

Nog steeds problemen met de  H bridge sturing.

Nu ik er zeker van ben dat deze niet ongewild wordt aangestuurd in een eventuele onbekende modus, ben ik eens in de datatsheet gaan kijken van de L298N.

(Had dit beter al vroeger gedaan !)

Deze zou 25 W kunnen  dissiperen en volgens mijn manual van de rotor vragen deze maar 18 W . In principe zou dit voldoende moeten zijn . 

Ik ga nog één poging wagen met deze H bridge en anders wordt het een zwaarder type of bouw ik hem zelf.

Wat ik een beetje over het hoofd heb gezien is dat door inertie de schotel bij het afschakelen nog effe doordraait . Hierdoor wordt de motor een generator en stuurt deze een emk terug naar de brug. Dit had ik trouwens ook al opgemerkt doordat de ledjes die parallel aan de rotor , met een dimeffekt uitdoofden en niet plots .

Dit effekt noemt men breaking of bij ons remwerking of remfase.

Dat doordraaien had ik ook reeds gemerkt bij het debuggen van de soft . Er kwamen nog  tientallen  pulsen door ná het afschakelen . Ik had reeds in de soft een variabele voorzien om hierop te anticiperen en zelfs uitgesplitst naar beide richtingen ( dus of ik van Oost of van West naar het punt kwam) en dit werkte goed .

Op internet , dit gevonden  :  http://www.bristolwatch.com/ele/h_bridge.htm. 

Hier wordt de break functie uitgelegd , die bij sommige H bridgen kan toegepast worden en gelukkig ook bij de mijne. 


Ik heb nu de soft aangepast en twee kleine motoren hier in de shack aangesloten op mijn electronica zodat ik kan kijken of het remeffekt ook daadwerkelijk plaatsvindt.

Eerst getest zonder remwerking natuurlijk en ook hier gingen de ledjes zachtjesaan uit. Met remwerking doven ze onmiddellijk.


Nu nog " in het veld" testen , hopelijk zijn de weergoden mij gunstig gezind.


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

 

 



 




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 ?

zondag 6 september 2020

ADSN [ 18 : premature opstelling test H bridge deel 3]

Ondertussen is er al wat gewijzigd .


De electronica is nu aangesloten aan de rotor , dus geen controller meer van het originele )
D.m.v. de drukknoppen kan ik zelf bevel geven en de richting kiezen .
Ook de orig schakelaars komen binnen en tijdens beweging komen de pulsen nog steeds binnen .

De twee losgekoppelde printjes " simulatie" was om in de shack te testen , maar nu hangt er de rotor aan.

Volgende stap ,in  het C programma verder programmeren en veiligheden inbouwen ( bv als de orig komt stop de motor en keer de keuze automatisch om.)

De levelshifter is een oude ( recup) CD4050. Het is niet hét van hét , maar het doet zijn werk , nl omzetten van de rpi uitgangen van 3.3 V naar 5V die de H bridge nodig heeft.
De CD4050 kan wel niet veel stroom sinken of sourcen  , dit laat ook de datasheet zien . De groene ledjes vragen enkele mA en het uitgangsniveau zakt al naar 4V , wat nog ruim voldoende is voor de H bridge . Deze groene ledjes zeggen mij of de brug vriigegeven is


zondag 23 augustus 2020

ADSN [ 12 : premature opstelling test H bridge deel 2]

Wel , ik heb de H bridge kunnen aansturen en keuze richting werkte ook , maar ik kwam al snel tot de conclusie , als ik daar ook nog minimaal vier interrupts zou moeten bij programmeren ( tweemaal A en B) die van de positiegevers komen van de rotoren AZ en EL de arduino al snel niet meer meespeelde.

Dus ben ik nu overgeschakeld op een RPI.

  • Deze kan méér interrupts aan
  • Heeft een biblio die interrupts ondersteunt zowel in C , C++ als Python
  • Heeft direkt ook een ethernetverbinding.
  • Kan " on the fly" een aanpassing in de soft doorvoeren zonder dat er moet geflasht worden.
  • en nog veel meer ....


dinsdag 7 juli 2020

RPI [ Nieuwe Image Writer]

De Raspberry Pi community heeft een nieuwe kaartschrijver  gelanceerd.

Deze heeft een keuze menu wat ge wenst te doen . deze bevat tevens een formatter voor de SD kaart.


Ik heb deze voor de Ubuntu gemeenschap en wordt op de cmd lijn gestart met :

rpi-imager  

of met Imager vanuit de desktop menu





Tevens kan je dan meevolgen wat er precies gebeurt.


Meer info nodig ?

https://www.raspberrypi.org/downloads/