Yannicflight
Ymax.nl rc webshop
Hallo allemaal,
Zoals jullie denk ik wel zien ben ik net nieuw op dit forum,
toch kijk ik al een paar jaartjes op de site maar ik heb me nooit aangemeld.
Ik heb nu enige ervaring met PIC`s en het programeren enzo.
Dus ik wil nu voor mijn andere hobby ( RC vliegen )
Een schakeling maken die ledjes in een bepaald patroon kan laten knipperen zoals een echt vliegtuig dat ook heeft.
Dit is ook allemaal geen probleem,
Waar ik eigenlijk alleen tegenaan loop is dat ik de schakeling wil laten reageren op de ontvanger.
Normaal stuur je met de ontvanger de servo`s aan die dan je roeren bedienen.
Nu wil ik dus dat de schakeling herkend of de schakelaar op mijn zender aan of uit staat.
Normaal betekend dit dus dat een servo op 0 graden of op zijn maximale uitslag staat.
Ik heb alleen geen enkel idee hoe ik dit zou kunnen doen.
Op internet heb ik na lang zoeken een site gevonden van iemand in amerika die dit ook heeft gemaakt maar die geeft de HEX code niet (begrijpelijk).
Heeft iemand misschien een idee hoe ik dit zou kunnen laten werken ??
Groeten:
Yannic van Moerkerk
flipflop
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Als eerste moet je dan gaan uitvinden hoe dat signaal uit de ontvanger eruit ziet. Het servo signaal dus. Dat is alom bekend, en is zeker te vinden op internet. Als je dat weet kun je verder.
(zoek ook eens op het forum, want het is volgens mij regelmatig aan de orde geweest)
Yannicflight
Ymax.nl rc webshop
Hoi FlipFlop,
Ik zal eens het forum doorzoeken op zoiets.
Bedankt voor de tip.
Als ik niks vind dan zal ik eens gaan uitzoeken wat er precies voor signaal uit de ontvanger komt.
Ik heb even het forum afgezocht maar niet echt gevonden wat ik zocht.
Ik heb ook nog ff gegoogled en ben erachter gekomen dat een servo normaal word aangestuurd door een blokspanning en de tijd dat de blokspanning hoog is bepaald de stand van de servo :
II. Servo Motor Timing Diagram
EDIT!! IK heb de tekening even weggehaald was niet zon succes. kijk op deze site :
http://www.robotstore.com/download/Servo_Motor_Timing_1.pdf
Figure 7.20: An unmodified servo is a three-wire device that takes
power, ground, and a pulse-code modulated signal, such as the one shown
above. Wider or thinner pulses tell the servo to move to a designated
position, either clockwise or counterclockwise from center.
Ik moet de pic dus zo programeren dat hij deze pulsen kan onderscheiden.
Kan ik dit met een timer doen die om de zoveeel Ms de ingang checked ??
Of kan dit nog makkelijker ?
Groeten Yannic van Moerkerk
[Bericht gewijzigd door Henry S. op (68%)]
Toch is er een hoop over te vinden:
http://www.circuitsonline.net/forum/search.php?query=servo+puls+%2B+PI…
Dit topic kende ik nog, hierin wordt een stukje programma in basic gegeven:
http://www.circuitsonline.net/forum/view/62797/1/servo+puls+PIC
OP het modelbouwforum worden verschillende van deze apparaatjes besproken. Ook voor zelfbouw.
Het adres is: modelbouwforum.nl
Yannicflight
Ymax.nl rc webshop
Ik heb dus idd niet goed genoeg gezocht.
Ik zal de aangegeven forums een afbladeren.
Bedankt voor de tips en sorry voor de dubbelposts.
Yannic van Moerkerk
Anonieme Gebruiker
Hier kan ook uw advertentie staan!
Een analoge servo word aangestuurd door een puls tussen de 1 en 2 milliseconden en dat ongeveer 20 keer per seconde. dat is eigenlijk alles wat je hoeft te weten. een puls van 1,5 ms is dus ongeveer het midden, en 2 ms is helemaal uitgeslagen naar de ene kant, 1 ms naar de andere kant.
Je zou iets in elkaar kunnen knutselen in een pic met een timer, die adhv de waarde bepaalt of je schakelaar aan is of uit. Bijv door de teller te starten / stoppen met interupt on change.
Yannicflight
Ymax.nl rc webshop
Ik wil wel eens graag weten in welke talen jullie dit normaal zouden programeren ik werk nu in assembler.
EDIT: ik gebruik een PIC 16F628
[Bericht gewijzigd door klein is fijn op (14%)]
Anonieme Gebruiker
Hier kan ook uw advertentie staan!
Ik zou dit zelf in assembly programmeren, omdat zoiets simpel te doen is in assembler. Je zou ook basic kunnen gebruiken, als je dat toch hebt, gaat iets minder tijd inzitten waarschijnlijk.
Yannicflight
Ymax.nl rc webshop
Ik al de vorige projecten en proeven zelf gemaakt in assembler *gewoon met kladblok* ik ken de andere talen niet echt dus.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Hier staat een kompleet bouwpakket voor 35 dollar...
Yannicflight
Ymax.nl rc webshop
Ja ik ken die site inderdaad daarvan weet ik ook dat het mogelijk is met een PIC16F628
Maar zelf maken is natuurlijk leuker en leerzamer 
@ Yannicflight.
Ja je kan inderdaad een RC signaal van je ontvanger inlezen in PIC basic, dat doe je met het pulsin commando.
Ik gebruik het zelf voor toeren regelaars voor schepen en tanks, of voor robotica.
Je hebt twee programma's nodig, één voor het uitlezen van je ontvanger, en als je die code weet dan kan je een programma gaan maken voor je eigen schakeling.
Groeten Lambiek.
Hier heb je de code voor het uitlezen van je ontvanger.
'* Name : PULS IN TEST_1.
'* Author : H.v.Zwieten.
'* Notice : Copyright (c) 2008.
'* Notice : All Rights Reserved.
'* Date : 4-11-2008.
'* Version : 1.0.
'* Notes : Met dit programma kan de puls van een
'* Notes : modelbouw zender worden gemeten.
'* Notes : De waarde wordt op een diplay gezet.
'* Notes : 336 programma woorden en 19 variabele bytes.
Device 16F628A ; processor type
Config WDT_OFF,_ ; WatchDog Timer uit
PWRTE_ON,_ ; Power-up Timer Enable aan
LVP_OFF,_ ; Low Voltage Programming uit
MCLRE_OFF,_ ; Externe Master Reset Enable uit
HS_OSC ; cristal groter dan 4 Mhz
XTAL = 10 ; cristal 10 Mhz
ALL_DIGITAL true ; alle poorten digitaal
Declare LCD_ENPIN PORTB.2 ; enable display poort B.2
Declare LCD_RSPIN PORTB.3 ; reset display poort B.3
; data display poort B.4 t/m B.7
Symbol On = 1 ; 1 is hoog
Symbol off = 0 ; 0 is laag
Dim var1 As Word ; variabele var1
Dim waarde As Word ; variabele waarde
Clear ; wis geheugen
DelayMS 2000 ; wacht 2 seconden
Cls ; wis display
;poortb 543210 ; hulpregel poort B
TRISB = %000001 ; ontvanger op poort B.0
test: ; begin test
waarde = var1 ; variabele is waarde
var1 = PulsIn PORTB.0,1 ; lees puls en zet in variabele
Print At 1,3,"WAARDE_ONTVANGER" ; zet text op display
Print At 2,9,Dec waarde," " ; zet waarde op display
GoTo test ; naar begin test
End ; einde programma
Als je de waarde's weet kan je dat in een ander programma verwerken.
Groeten Lambiek.
Yannicflight
Ymax.nl rc webshop
Bedankt voor de informatie 
Ik zal eens gaan experimenteren met deze gegevens,
Ik hou jullie op de hoogte van de vorederingen.
Groeten Yannic van Moerkerk
Yannicflight
Ymax.nl rc webshop
Hallo allemaal,
Sorry dat ik de laatste tijd zo weinig heb gedaan maar ik heb het de laatste weken nogal druk met school enzo.
Dit gaat toch voor dit project.
Ik ga zo snel mogelijk weer verder.
Groeten Yannic
Yannicflight
Ymax.nl rc webshop
Nou nou na een tijdje hevige drukte heb ik toch nog een kans gezien om wat uit te zoeken.
Ik ben erachter gekomen hoeveel ms mijn 0 punt is van de zender en ook het meest links en meest rechts.
Nu is mijn vraag natuurlijk nu ik dit weet dat ik een blokspanning heb waarvan ik de tijd in ms weet hoe kan ik hier dan een pic op laten reageren ?
Groeten Yannic
Jordi
Bier zonder alcohol is als een beha aan een waslijn: het beste is er uit!
Ik dacht dat zo'n beetje kon variëren tussen 1 en 2 ms, en dat 20x per seconde.
Ik heb het zelf nooit geprobeerd, maar met het PULSIN commando (zoals omschreven in Lambiek z'n code) lijkt me dat er een waarde tussen de 0-255 opgeslagen wordt. Daar kun je vervolgens weer wat mee doen...