Servo motor probleem


Sine

Moderator

Ik denk dat het dan een hardware probleem wordt. :)

Natuurlijk, maar wel eentje wat je hard kunt afvangen. Met een eindachakelaar kun je natuurlijk prima een draairichting blokkeren.

Angaben sind wie immer ohne Gewähr.
Lambiek

Special Member

Op 24 augustus 2019 10:10:02 schreef Sine:
Natuurlijk, maar wel eentje wat je hard kunt afvangen. Met een eindachakelaar kun je natuurlijk prima een draairichting blokkeren.

Helemaal mee eens.

Maar we weten eigenlijk weer veel te weinig, "zoals altijd" we weten bijv. niet of er tegen die klep aangedrukt wordt, "eventueel door het product" dan is een motor met een vertraging niet zelf remmend genoeg als de spanning er van af gaat. Misschien is een heel andere constructie wel beter? Weer veel te weinig info om een goed antwoord te geven.

Laar de TS eerst maar eens reageren. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 24 augustus 2019 09:30:27 schreef Lambiek:
[...]
Natuurlijk, NOT.

[...]
Hierin ga ik met je mee.

@TS,
Op je board kunnen 16 servo's, ga je die ook gebruiken? Of gebruik je maar één servo?

we gebruiken maar 1 servo.

Op 24 augustus 2019 08:43:12 schreef Lambiek:
Eerst even een vraagje. Is het een school opdracht, is het voor de hobby, of is het een professionele oplossing? Voor de eerste twee geld dat je daar wel een modelbouw-servo voor kunt gebruiken, voor de laatste geld: is eigenlijk geen goede oplossing.

Ik neem aan dat de Raspi in de slaapstand gaat en niet het servo board? Want de servo moet niet in de slaapstand gaan "als dat al mogelijk is met dat board" omdat hij anders zijn positie niet behoud.

Ik zou het zo doen: Je neemt een kleine microcontroller, dat kan bijv. een PIC zijn of een Atmel of een Arduino uno, of een ander type. Dan ben je niet afhankelijk van de data die uit de Raspi komt als hij uit de slaap stand gaat.

Heb een voorbeeldje gemaakt met een pic 12F683. Is gemaakt in basic, maar dat kan ook in C.

Hierbij heb je ook geen I2C nodig, gewoon een uitgang op je Raspi. Je zou er een optocoupler tussen kunnen zetten als level shifter, maar dat moet je maar even bekijken of dat nodig is.

Als de ingang van de pic hoog is staat de servo in positie 1000. En als de ingang van de pic laag is staat de servo in positie 2000. Die waardes kun je aan passen naar jou wens. Je kunt eventueel ook nog een kleine pauze toevoegen mocht dat nodig zijn.

pic basic code:


Device 12F683               ; processor type 12F683

Xtal 10                     ; Kristal 10MHz

Config HS_OSC,_             ; Oscilator op 10MHz
       WDT_OFF,_            ; WatchDog Timer uit
       PWRTE_ON,_           ; Power-up Timer Enable aan
       MCLRE_OFF            ; Externe Master Reset Enable uit
     
All_Digital TRUE            ; Alle ingangen digitaal
                                   
Symbol IN_1 = GPIO.0        ; Ingang 

Symbol SERVO_MOTOR = GPIO.2 ; Uitgang sevo 

Clear                       ; Wis geheugen

         ;543210            ; Hulpregel Poort IO
GPIO   = %000000            ; Zet poort op nul    
TRISIO = %000001            ; Poort I/O

;---------------------------
; STUKJE CODE VOOR DE SERVO.
;---------------------------

RUN:

    If IN_1 = 1 Then
     Servo SERVO_MOTOR, 1000 
     DelayMS 10
    EndIf
    
    If IN_1 = 0 Then
     Servo SERVO_MOTOR, 2000
     DelayMS 10
    EndIf
GoTo RUN

End        

Zorg er voor dat je klep net afsluit zodat de servo niet te hard tegen de aanslag staat te drukken, als de klep net dicht is moet het goed zijn. Als je dat niet doet zal de servo heet worden en niet lang mee gaan, plus dat hij een hoop stroom staat te verbruiken.

Hier heb je nog wat info over het werken met servo's, lees het eens rustig door, misschien kun je er nog iets uithalen.

https://www.circuitsonline.net/artikelen/view/48

we hebben eigenlijk C# nodig.
en is pic 12F683 geen 8bit ? Onze servo is 12 bit.

het is bedoeld als prototype.

de klep kan net ver genoeg op en dicht nu zonder dat deze ergens tegen aanduwt. het zoemen is minder maar nog niet weg.

Zoemen? mogelijks is het servosignaal niet stabiel genoeg maar dat moet je meten of zit er al teveel sleet op.

Op 24 augustus 2019 10:45:54 schreef Goodstuff:

we hebben eigenlijk C# nodig.
en is pic 12F683 geen 8bit ? Onze servo is 12 bit.

Hier is er spraakverwarring, een servo luistert enkele naar de breedte van het signaal of dat nu 8bit of 12bit resolutie heeft dat ga je toch niet zien.

[Bericht gewijzigd door MGP op 24 augustus 2019 10:53:33 (61%)]

LDmicro user.

Op 24 augustus 2019 10:22:00 schreef Lambiek:
[...]
Helemaal mee eens.

Maar we weten eigenlijk weer veel te weinig, "zoals altijd" we weten bijv. niet of er tegen die klep aangedrukt wordt, "eventueel door het product" dan is een motor met een vertraging niet zelf remmend genoeg als de spanning er van af gaat. Misschien is een heel andere constructie wel beter? Weer veel te weinig info om een goed antwoord te geven.

Laar de TS eerst maar eens reageren. :)

er word met niks tegen de klep aangedrukt. de klep opent naar boven toe.

-Als er een correct product ingevoerd word moet de klep net snel genoeg open gaan zodat het product kan passeren richting de ruimte waar het gecollecteerd word.

-Is het geen goed product (zonder werkende Rfdid Tag) blijft de klep dicht en word het product terug naar buiten afgevoerd.

op de foto zie je het klepje die dus snel genoeg open en dicht gaat om het product te laten passeren.

Op 24 augustus 2019 10:45:54 schreef Goodstuff:
en is pic 12F683 geen 8bit ? Onze servo is 12 bit.

Zo! Je haalt nu 2 heel verschillende dingen door elkaar :-) De interne structuur van een micro heeft 0.00000000000 niks met de interface die het kan aansturen te maken. Je kunt met een 8bitter prima een ADC van 24 bit aansturen. Kwestie van 3 bytes opsturen.

Maar ehm, servo is 12 bit?? Een servo heeft toch 1-bits digitale interface die je met een PWM signaal aanstuurt. Of heb jij iets heel speciaals daar?

@Lambiek, je bent wel heel erg overtuigd van het feit dat een servo op positie blijft als je geen pwm meer aanbiedt. Je daagt me bijna uit om het te proberen. Check: dus ik biedt alleen voeding aan en hang de control aan gnd of 5V, en dan zeg jij dat ie in de hoek slaat?

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Op 24 augustus 2019 10:49:51 schreef MGP:
Zoemen? mogelijks is het servosignaal niet stabiel genoeg maar dat moet je meten of zit er al teveel sleet op.

[...]
Hier is er spraakverwarring, een servo luistert enkele naar de breedte van het signaal of dat nu 8bit of 12bit resolutie heeft dat ga je toch niet zien.

we hebben nadat de vorige (nieuwe) na drie dagen het heeft begeven een nieuwe geplaatst die net hetzelfde probleem geeft.

Op 24 augustus 2019 10:58:35 schreef Goodstuff:
we hebben nadat de vorige (nieuwe) na drie dagen het heeft begeven een nieuwe geplaatst die net hetzelfde probleem geeft.

Vermoedelijk krijgt de servo teveel tegendruk of is het signaal niet stabiel genoeg en ik verdenk het laatste.

LDmicro user.
Lambiek

Special Member

Op 24 augustus 2019 10:55:41 schreef flipflop:
@Lambiek, je bent wel heel erg overtuigd van het feit dat een servo op positie blijft als je geen pwm meer aanbiedt.

Ik geloof dat je de boel nu aan het verdraaien bent. Was jij dat niet die dat zei. :)

Op 24 augustus 2019 08:57:43 schreef flipflop:
Een servo houdt prima z'n positie als ie niet meer aangestuurd wordt. Blijft gewoon staan waar ie staat.

Je kunt normaal het signaal niet van een servo afhalen, als een servo geen signaal meer krijgt gaat hij wilt heen en weer slaan. En als er een belasting aan hangt zal de servo verdraaien.

Op 24 augustus 2019 10:52:36 schreef Goodstuff:
er word met niks tegen de klep aangedrukt. de klep opent naar boven toe.

Maar in het geval van de TS zou het kunnen werken omdat de klep in rust door het gewicht van de klep naar beneden gedrukt wordt. Maar dan moet ook de voedingsspanning van de servo af, zodat hij helemaal spanningsloos is en zonder signaal. En als de Rpi uit zijn slaapstand komt, moet eerst het signaal erop en dan de voedingspanning van de servo. En daar hoeft maar een paar mS tussen te zitten.

@TS,
Ook een digitale servo werkt met het zelfde signaal als een analoge servo. Je bied een signaal aan tussen de 1 en 2mS. Heb je het artikel doorgelezen, daar staat precies hoe het allemaal werkt.

Als je haar maar goed zit, GROETEN LAMBIEK.
fred101

Golden Member

Kun je niet een eind-schakelaar/sensor plaatsen die detecteert dat de boel die 180 graden de verkeerde kant op gaat. Daar kun je in software wat mee doen maar misschien ook direct om iets uit te schakelen, resetten of om te draaien.

www.pa4tim.nl, Reparatie van meet- en calibratie apparatuur, ook oud en exotisch

Als je leest wat de TS allemaal schrijft zou je denken dat de software niet goed gemaakt is wegens gebrek aan kennis van servo's (no offense)
12bit, defecte servo, zoemen, 16kanaalsmodule...mijn buikgevoel speelt weer op.

Misschien meer info om mij te overtuigen dat het niet zo is ;)

Sowieso is een zo'n servo niet geschikt voor dat werk.

LDmicro user.

Op 24 augustus 2019 12:22:50 schreef MGP:
Als je leest wat de TS allemaal schrijft zou je denken dat de software niet goed gemaakt is wegens gebrek aan kennis van servo's (no offense)
12bit, defecte servo, zoemen, 16kanaalsmodule...mijn buikgevoel speelt weer op.

Misschien meer info om mij te overtuigen dat het niet zo is ;)

Sowieso is een zo'n servo niet geschikt voor dat werk.

Welke motor raad je dan aan ?

Ik heb geen idee wat er nodig is maar als je eens rondkijkt op Ebay dan zal er wel iets tussen zitten.

LDmicro user.
Lambiek

Special Member

https://www.circuitsonline.net/artikelen/view/48[/quote]

Op 24 augustus 2019 12:22:50 schreef MGP:
Sowieso is een zo'n servo niet geschikt voor dat werk.

Daarom vroeg ik dit ook aan de TS.

Op 24 augustus 2019 08:43:12 schreef Lambiek:
Eerst even een vraagje. Is het een school opdracht, is het voor de hobby, of is het een professionele oplossing? Voor de eerste twee geld dat je daar wel een modelbouw-servo voor kunt gebruiken, voor de laatste geld: is eigenlijk geen goede oplossing.

Op 24 augustus 2019 12:41:46 schreef Goodstuff:
Welke motor raad je dan aan ?

Er zijn zat motoren geschikt voor zoiets, kijk eens naar een RB35. Die zijn er met verschillende vertragingen. Maar je zal dan het hele gebeuren om moeten bouwen en met eindschakelaars moeten werken voor je positie open en dicht.

Als je haar maar goed zit, GROETEN LAMBIEK.

Ik zou in dit geval niet voor een servo kiezen. Je schakelt tussen twee vaste eindstanden, dat kan heel goed met een gewone motoraandrijving. Kan zelfs met 1 eindschakelaar. Je kiest een motor met tandwielvertraging en op de uitgaande as zet je een excentriek met een slag die precies groot genoeg is voor de beweging van de klep. Je laat dat excentriek 1 slag maken en die stopt dan bij de eindschakelaar in de rustpositie. Dus gewoon in 1 slag open-dicht-stop.

Lambiek

Special Member

Op 24 augustus 2019 13:24:19 schreef KlaasZ:
Je laat dat excentriek 1 slag maken en die stopt dan bij de eindschakelaar in de rustpositie. Dus gewoon in 1 slag open-dicht-stop.

Is een idee, maar daar moet je wel genoeg ruimte voor hebben.
Maar het kan. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 24 augustus 2019 11:42:43 schreef Lambiek:
Ik geloof dat je de boel nu aan het verdraaien bent. Was jij dat niet die dat zei. :)

Wat ik zei was dat een servo op positie blijft als z'n sturing wegvalt. En dat doet ie. Uiteraard moet je er dan niet mechanisch erg aan gaan draaien want dan draait ie mee. Moet je nog wel tegen een flinke overbrenging indraaien, dus voordat dat gebeurt moet je nog aardig je best doen. In geval van TS is dat sowieso niet aan de orde. Dus.

Ik vindt een servo voor deze toepassing helemaal zo gek niet. Dat afschakelen van power is misschien wel goed.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Lambiek

Special Member

Op 24 augustus 2019 14:13:24 schreef flipflop:
Wat ik zei was dat een servo op positie blijft als z'n sturing wegvalt. En dat doet ie.

Nou sluit jij maar eens een servo aan op alleen de voedingspanning "zonder signaal dus" en kijk wat er gebeurt. Vooral als er langere bedrading aan zit en in een wat vuilere omgeving zijn werk moet doen.

En een servo heeft een close loop systeem en daar ga je niet het ingang signaal van wegnemen. Een servo stuur je naar een positie en die hoort zijn positie te behouden klaar.

Ik vindt een servo voor deze toepassing helemaal zo gek niet.

Het lijkt mij een beetje een industriële oplossing en dan gebruik je zoiets niet.

Maar goed ieder zijn mening en daar verschillen we in. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Je kan voor 2 euro een servo kopen bij banggood. Dat is heel wat anders dan een servo van 33 euro bij Conrad. Nu zou het kunnen dat het dezelfde servo is, maar ik denk het eerlijk gezegd van niet....

Op 24 augustus 2019 14:22:26 schreef Lambiek:
Nou sluit jij maar eens een servo aan op alleen de voedingspanning "zonder signaal dus" en kijk wat er gebeurt.

Ik heb het experiment gedaan en... De servo doet vrijwel niets. Soms even een klein pulsje naar de motor dat ie een klein stukje draait.

Als je met "lange draden in een industriele omgeving" rotzooi oppikt waardoor de servo dingen gaat doen die je niet wilt dan moet je die ingang beter beschermen. Misschien een optocoupler+weerstand dicht bij de servo en de STROOM door de sturende led gebruiken om een soort "current loop" te maken?

Update: Bij het terugleggen van de test-servo zag ik nog een andere servo liggen. Ik dacht: "Laat ik die ook eens proberen". Deze tweede doet altijd: "pietsie links" als je hem aanzet (totdat ie na zoveel keer tegen de linker kantlijn aanstaat). Het hangt uds van de servo af.

[Bericht gewijzigd door rew op 24 augustus 2019 16:25:33 (14%)]

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 24 augustus 2019 15:08:59 schreef rew:
Als je met "lange draden in een industriele omgeving" rotzooi oppikt waardoor de servo dingen gaat doen die je niet wilt dan moet je die ingang beter beschermen.

Om te beginnen moet je bij een servo de stuurpuls zo dicht mogelijk bij de servo zelf genereren. En vanaf de stuurpulsgenerator moeten de pulsdraad en de voedingsdraden parallel lopen, liefst nog getwist. Als die draadbundel langer is dan een halve meter kun je in een elektromagnetisch vijandige omgeving wachten op ongewenste effecten. Daarom ben ik er voorstander van om in zo'n situatie zo veel mogelijk naar een mechanische oplossing te streven en met een gewone motor te werken. Die raakt niet zo gauw van streek door wat rondzwervende rotzooi.

Wat wel eens wil helpen tegen ongewenste bewegingen is de stuurdraad dicht bij de servo belasten met een weerstand in de grootteorde van 5k. Afhankelijk van de manier van aansturen (sinken of sourcen) moet die weerstand naar de plus of de min.

En dan is er nog een truc die soms helpt: eerst de stuurpuls inschakelen en dan pas de voeding.

Op 24 augustus 2019 14:22:26 schreef Lambiek:
Nou sluit jij maar eens een servo aan op alleen de voedingspanning "zonder signaal dus" en kijk wat er gebeurt.

Eigenwijs. Het ging erom of die servo op z'n plek blijft zonder pwm signaal. Natuurlijk is dat niet zo als je pulsen oppikt, want dan heb je wel een signaal op de ingang. Ik had zelfs nog geschreven dat de ctrl aan gnd of vcc zit. En nou terug in je mand jij :-)

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Lambiek

Special Member

Op 24 augustus 2019 21:13:23 schreef flipflop:
En nou terug in je mand jij :-)

Krijg ik wel een koekje dan.
En niks eigenwijs, je hoort dat signaal niet weg te halen.

Als je haar maar goed zit, GROETEN LAMBIEK.

In de toepassing "RC vliegtuig" zet je het systeem aan en is het eigenlijk niet de bedoeling dat de servo geen signaal krijgt.

Maar je kan wel nadenken over wat het beste is voor het vliegtuig voor het geval dat dit toch gebeurt. Ik denk: "Motor geheel niet aansturen", "positie houden", of "direct naar middenstand" opties zijn. Die laatste wordt toch vervelend als je bijvoorbeeld een bocht wil vliegen maar het signaal af en toe onderbroken raakt. dan wil ie steeds weer rechtuit in de "gaps".

Dat positie houden kan ook, maar kost energie terwijl je niet weet of de besturing dat ook echt wil.

Motor geheel uit lijkt me niet zo'n rare keuze.

Dan is "geen signaal" van nature een "sleep mode". Als je de servo gebruikt op een positie waar ie NIET met de besturing van het vliegtuig te maken heeft (*) (of in een geheel andere toepassing), dan is het helemaal niet zo gek om weinig stroom te trekken om zonder veel koppel op dezelfde positie te blijven.

Dan kan je ook in de handleiding gaan zetten dat DIT het gedrag is als er geen pulsen komen. Je moet je ook realiseren dat het 1-2ms signaal precies daarom zo ontworpen is: Er is onderscheid tussen "helemaal links" (1ms) en "geen signaal" (geen pulsen).

Wat een servo doet als ie van geen signaal naar "wel signaal" gaat of "zonder signaal wel ineens voeding krijgt", dat hangt van de implementatie af. Ik kan me voorstellen dat een digitale servo best goed gedefinieerd gedrag kan hebben dat je dat buiten het RC-vliegtuigjes-gebeuren kan gebruiken.

(*) Denk aan "landingsgestel". Enerzijds niet vlieg-kritisch: het ding blijft vliegen als dat niet werkt, anderzijds, in de uiterste standen is vaak heel weinig kracht nodig om de boel op z'n plek te houden. Met servo-motor uit heb je dan het meeste nut van je accupack.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Op 24 augustus 2019 15:08:59 schreef rew:
Misschien een optocoupler+weerstand dicht bij de servo en de STROOM door de sturende led gebruiken om een soort "current loop" te maken?

Zou een mogelijkheid kunnen zijn. Dan kun je de stroom in de ruststand van de klep laag houden.

Als je haar maar goed zit, GROETEN LAMBIEK.