Upgrade Kids-Car

Projecten die niet passen in bovenstaande onderwerpen
Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Upgrade Kids-Car

Berichtdoor Koepel » 12 Sep 2017, 23:53

Het mysterie is opgelost: het was wel griep of zoiets. Ik heb het nu te pakken.
Het leek net alsof ik weer op school zat en het probleem totaal niet zag, dus er moest iets mis zijn ;)

In mijn sketch zonder delay draaide de loop() zo snel, en daardoor zette ik zo vaak de interrupts uit, dat vervolgens de interrupt routine niet lekker meer liep.
De anderen op internet laten de interrupts gewoon doorlopen. De kans dat het dan verkeerd gaat is uiterst klein. Ik schat dat het minder is dan 1 op de 10000 dat er een verkeerde waarde uit zou kunnen komen. Wanneer je iedere 10ms de Servo.write() doet, dan merkt je van die ene verkeerde waarde niets.

De normale manier is om iedere 10ms of iedere 20ms een servo aan te sturen met Servo.write(). Dat wordt dan gedaan met een software timer met millis().

Maar als het ingangssignaal weg valt, dan zou dat gedetecteerd moeten worden. Dan kan bijvoorbeeld een Servo.detach() gedaan kunnen worden.

Advertisement

Berichten: 8
Geregistreerd: 10 Sep 2017, 07:42
Woonplaats: Klazienaveen

Re: Upgrade Kids-Car

Berichtdoor AJK77 » 24 Sep 2017, 12:14

FF een update
Gaspedaal is binnen (verrassend snel, net iets meer dan een week)
De zooi in het autootje gebouwd, gekalibreerd en het werkt als een zonnetje.
Het overschakelen van local naar remote laat ik nog telkens door een relais doen.
Krijg het wel enigszins werkend via de arduino maar niet naar behoren dus laat maar zitten.

Iedereen bedankt voor het mee denken.

Berichten: 5
Geregistreerd: 02 Dec 2017, 02:02

Re: Upgrade Kids-Car

Berichtdoor Angel_D » 02 Dec 2017, 02:06

Heeft u de definitieve complete code nog voor mij?
Deze zou ik ook graag gebruiken voor mijn project :-)
Bij voorbaat dank!

Groeten, Sascha

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Upgrade Kids-Car

Berichtdoor Koepel » 02 Dec 2017, 12:10

Ha ha, ik had nog geprobeerd om iets te maken met een hele korte interrupt routine waarbij de interrupts niet uitgezet hoeven te worden. De code om met die weinige gegevens er toch iets goeds uit te krijgen liep flink uit de hand. Dus dat gaat het niet worden.

Je kunt zelf code van internet halen, waarbij er een digitalRead() en een millis() in de interrupt routine zit, of dat rommeltje van mij gebruiken waarbij je "noInterrupts();" en "interrupts();" weg haalt.

Op dit moment lukt het me niet om er iets netjes van de te maken. Ik zou wel code op internet voor je kunnen zoeken als je wit.

Berichten: 5
Geregistreerd: 02 Dec 2017, 02:02

Re: Upgrade Kids-Car

Berichtdoor Angel_D » 04 Dec 2017, 12:02

Helasas gaat mijn programmeer kennis niet zo diep :cry: als u nog iets zou kunnen vinden waarbij de servo bestuur kan worden door de pedaal, en deze met een knop de andere kant op draait met het pedaal, zou ik dit geweldig vinden. Nu danst mijn servo onrustig heen en weer.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Upgrade Kids-Car

Berichtdoor Koepel » 04 Dec 2017, 12:47

De meest gebruikte manier staat hier: http://www.camelsoftware.com/2015/12/25/reading-pwm-signals-from-an-rc-receiver-with-arduino/

Met attachInterrupt() wordt de interrupt routine 'calcSignal' aan de interrupt verbonden. Vervolgens is in de loop() de 'pulse_time' beschikbaar.

Kijk even goed naar de functie attachInterrupt(): https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/ en vooral naar de recommended syntax.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Upgrade Kids-Car

Berichtdoor shooter » 04 Dec 2017, 20:38

de servo library heeft een hekel aan interrupts, dus anders oplossen, bijvoorbeeld met een externe timer (555).
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Upgrade Kids-Car

Berichtdoor Koepel » 04 Dec 2017, 22:20

@shooter, denk je dat de interrupt voor het binnenkomende servo signaal en de interrupt voor het uitgaande servo signaal elkaar teveel in de weg zitten ?
Volgens Wikipedia is het binnenkomende servo signaal 40 tot 200 Hz (https://en.wikipedia.org/wiki/Servo_control). Dat valt nog best mee.

Er is ook een PWMservo (https://github.com/PaulStoffregen/PWMServo) die bij een Arduino Uno de Timer1 gebruikt en geen interrupts nodig heeft.

@Angel_D, die PWMservo heeft vaste pinnen voor het uitgaande servo signaal. Alleen pin 9 en 10 zijn mogelijk.
De PWMservo zit in de Arduino IDE in Biblioteek Beheer.

Misschien is het mogelijk om dan nog een software filter toe te voegen. Om eventuele kleine variaties er uit te halen.

Berichten: 5
Geregistreerd: 02 Dec 2017, 02:02

Re: Upgrade Kids-Car

Berichtdoor Angel_D » 04 Dec 2017, 23:58

Hoi Kids-Car,

Bedankt voor je reacties, hier ga ik weer even mee aan de slag.
Dat van pin 9 en 10 wist ik niet, zal zeker schelen bij het testen van verschillende codes.

gr AngelD

Berichten: 5
Geregistreerd: 02 Dec 2017, 02:02

Re: Upgrade Kids-Car

Berichtdoor Angel_D » 09 Dec 2017, 17:04

Inmiddels heb ik wat codes samengesteld, de servo aangesloten op pin 9, en nu werkt alles perfect.
Als pedaal had ik nog een naaimachine voetpedaal.
Vandaag heb ik toch even zo'n hall pedaaltje gescoord op E_bay.

THX voor jullie hulp!

VorigeVolgende

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 6 gasten