Bi-directioneel RC-control zelfbouw! (verslag)

Later komt het draadloos gebeuren!
Ik schuif dat toch altijd een beetje naar voren toe, het is tenslotte toch wel een belangrijk onderdeel van de besturing.
Draadloos data versturen en ontvangen, werkt altijd een tikkeltje beroerder dan via een kabeltje.:(
 
cb cm.jpg
 
Even een docje aangepast en uitgeprint, nu open vlakjes.
Handig om tijdens aansluiten/bouwen vd zender de I/O-map ( ivm de software ) in te vullen.


680.jpg
 
Voorlopig dus nog met een draadje!

Het DataCommunicatieTechnische gedeelte zeg maar.
Langzaam aan alles aansluiten en testen/proggen/etc met de juiste Data.

Later komt het TeleComTechnische gedeelte, zorgen dat de Data draadoos wordt overgedragen.

Eerst volgende stap is het netjes inlezen van de potmeters vd joysticks en schuifjes.
Hier bij wordt rekening gehouden met bv: als je rijdt met de truck hoef niet alles inlezen te worden.
Tijdens het rijden, ga je bv niet de diepladerhals bedienen of een as latten zakken.


De zender doet zoveel mogelijk 'denkwerk' de ontvanger krijgt alleen opdrachten binnen.


BV: s01p90m03L70s07p35 etc
Servo01 naar Positie90
Motor03 Linksom met snelheid 70%
Servo07 naar Positie35





Wordt vervolgd...
 
Nog ff uurtje geklooid:

Alle potmetertjes zichtbaar op lcd-tje.

Nu in 8 bits oplossing, dus 127 ligt middenin.
numr.jpg


Uiteraard is de 'achtergrond'een oude foto...
 
Zomaar ff:

Als programeur kun je letterlijk uren bezig zijn met iets wat in een fractie van een seconde moet gebeuren.
Uiteraard test je je een eind in de ronde, maar een 'vergrootglas in de tijd' biedt extra houvast!

Een simpele Logic Analzyzer!

Theoretisch is alles uit te rekenen bv tijdsduur van een bepaalde code-deel.


screenshot.png


uart2_write: het tellertje op zendscherm wordt naar het serial gedeelte gestuurd vd microprocessor.
Deze handelt het vervogens zelf af.

Read JoySticks: alle 16 analoge inputs inlezen EN de waarde in een lijst zetten.
Ook wordt de waarde gelijk omgezet naar text-formaat, zodat ie later gemakkelijk naar scherm kan worden geplaatst. Dit zie je hier als 1 puls!

to LCD: direct na de 'read' wordt e.a.a. naar scherm verzonden. Dit gaat relatief langzaam. Kmt wel bij dat mn code hier ff flats-flats is...
 
Om e.e.a. verder te verduidelijk omtrent 'read', hier zie je de tijdsduur van een enkele analoge ingang. Dus zonder het opslaan en omzetten-naar-text-en-opslaan vd waarde.

UItgezoomd van vorig plaatje:

16ch.jpg


Het inlezen duurt dus 111,8us. ( read1 potmeter )

De ruimte tussen de pulsjes is de tijds voor het opslaan en 'omzetten-naar-text-en-opslaan'.

Vinde het jullie het trouwens interessant als ik dit soor dingen plaats?
 
Zeker interessant, een andere kant van modelbouw/besturing waar je als toeschouwer weinig van ziet maar wat wel enorm creatief en zorgvuldig werk is.

Vergelijk het met een lier maken uit messing plaat of bestellen in een winkel. Besturing, modules kun je kopen en dan weet je niks over de binnenkant. Keuzes zijn voor je gemaakt.

Dus wat mij betreft zeer interessant om te zien wat hier bij komt kijken.
 
Even een uurtje proggen.

Heb de servo controlelr binnen. Een veel uitgebreidere dan de vorige ( beetje lomp geweest en paar spoortjes aan gort. )

De nieuwe heeft een heel ander protocol voor aansturen via TX serial.

Na wat pluiswerk in de PDF van het controlleretje, eerste resultaat geboekt.
Er hangen nog geen servos'aan het printje maar via de LogicAnalzyer zie ik welbekende servo-stuur-pulsjes.
Bij powerON, alles pulsjes in 'middenpositie'.
Na wat mieren met code, 1 pulsje kunnen veranderen!

anservo.png
 
Voorbeeld stukje code:

uart2_write( 0xff ); // strartcode FF
uart2_write( 0x02 ); // comand: 02 = position control
uart2_write( 0x03 ); // channel: servo 03
uart2_write( 0x00 ); // DATA low byte
uart2_write( 0x00 ); // DATA high byte
 
Nog ff een uurtje bezig geweest.
Wat getest! Servo's hebben pulsewidth van [ 1ms..2ms] voor [-90'..+90']. En gebruikelijke refreshfrequentie van 50Hz.
Bij de servo controller gaat dat met de 'waarden' [1000..2000], dus microseconden.
Heb ontdekt dat de controller iig alles 'slikt' van 500 tot 2500 en dit ook daadwerkelijk als pulsbreedte uitstuurt ( zie ik op de logicanalyzer ).


Bij powerON, alles pulsjes in 'middenpositie'.

Nee dus! Net bij aanzetten: alleen servo 3 kreeg een puls, de rest is ( nog ) pulsloos...

la 02.png
 
Heb ontdekt dat de controller iig alles 'slikt' van 500 tot 2500 en dit ook daadwerkelijk als pulsbreedte uitstuurt ( zie ik op de logicanalyzer ).

Benieuwd wat het hele bereik is! Voor het zelfde geldt kan het van 0% to 100% !
Dan heb ik gelijk PWM via dit printje voor de d-c-motertjes! Ga ik nog uitzoeken ( proberen ), maar zal ook wel in PDF staan...
 
Heel ff wat gedaan. Opzet I/O-map.
Tot nu toe: Transmitter Inputs en aantal Receiver Outputs.

O.a. komen er nog de Inputs op de Receiver zoals verschillende eindcontacten.

io sc.jpg




trsn.jpg
 
Back
Top