GoPiGO time.sleep werkt niet

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • verbatim
  • Registratie: November 2010
  • Laatst online: 17-01-2024
Hallo,

GoPiGo is een klein robotje op twee wielen en wordt geleverd door http://www.dexterindustries.com.

De code die ik gebruik hiervoor is python als ook de code van het robotje.
Met de volgende code werkt time.sleep(2) niet. Vorige week heb ikhet ook geprobeerd en toen werkte het wel. Is er iemand die misschien een oplossing weet voor dit probleem. De api code staat op deze pagina http://www.dexterindustri...-the-raspberry-pi-gopigo/

code:

from gopigo import *
import time

fwd() # wielen gaan vooruit
time.sleep(2) # twee seconden wachten
bwd() # wielen gaan acheruit.
time.sleep(2)
stop()

Acties:
  • 0 Henk 'm!

  • z1rconium
  • Registratie: Augustus 2014
  • Laatst online: 17-09 11:26
error: ?

Acties:
  • 0 Henk 'm!

  • verbatim
  • Registratie: November 2010
  • Laatst online: 17-01-2024
Dat is het hem juist. Ik krijg geen error.

Acties:
  • 0 Henk 'm!

  • S3BASTI3N
  • Registratie: Mei 2011
  • Laatst online: 06-10 19:52
verbatim schreef op woensdag 09 september 2015 @ 17:21:
[...]


Dat is het hem juist. Ik krijg geen error.
Dus je robotje beweegt nu helemaal niet?

Stop eens wat print statements na de aanroepen van de bewegingen van de robot. Wanneer de output van je print statements gelijk achterelkaar in je terminal verschijnt weet je zeker dat het aan de sleep functie ligt.

Python:
1
2
3
4
5
6
7
8
9
10
from gopigo import *
import time

fwd() # wielen gaan vooruit
print 'moving forward'
time.sleep(2) # twee seconden wachten
bwd() # wielen gaan acheruit.
print 'moving backward'
time.sleep(2)
stop()

Acties:
  • 0 Henk 'm!

  • verbatim
  • Registratie: November 2010
  • Laatst online: 17-01-2024
Dank voor je reply.

Het robotje gaat wel vooruit en achteruit. Alleen de sleep.functie doet het niet.
Dit is de ouput van jouw script:

pi@raspberrypi ~/Desktop $ sudo python gogo.py
moving forward
moving backward

Acties:
  • +1 Henk 'm!

  • S3BASTI3N
  • Registratie: Mei 2011
  • Laatst online: 06-10 19:52
verbatim schreef op woensdag 09 september 2015 @ 19:56:
Dank voor je reply.

Het robotje gaat wel vooruit en achteruit. Alleen de sleep.functie doet het niet.
Dit is de ouput van jouw script:

pi@raspberrypi ~/Desktop $ sudo python gogo.py
moving forward
moving backward
Wat bedoel je dan met doet het niet? Hij rijdt niet 2 seconden lang beide kanten op?

De volgende code print ook de tijd (minuten en seconden) van wanneer de print statements worden uitgevoerd, probeer deze ook eens.

Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from gopigo import *
import time
import datetime

fwd() # wielen gaan vooruit
ts = time.time()
st = datetime.datetime.fromtimestamp(ts).strftime('%M:%S')
print st + ' moving forward'

time.sleep(2) # twee seconden wachten
bwd() # wielen gaan acheruit.

ts = time.time()
st = datetime.datetime.fromtimestamp(ts).strftime('%M:%S')
print st + ' moving backward'
time.sleep(2)
stop()

Acties:
  • 0 Henk 'm!

  • verbatim
  • Registratie: November 2010
  • Laatst online: 17-01-2024
Het is de bedoeling van time.sleep(2) dat het robotje 2 seconden wacht voordat het achteruit gaat. En dat doet het robotje niet.
Dit is jouw uitkomst.
30:25 moving forward
30:27 moving backward

Acties:
  • 0 Henk 'm!

  • Kiwi
  • Registratie: Juli 2012
  • Laatst online: 05-10 23:04

Kiwi

Gadgetfreak

Moet je de robot dan niet een stop commando geven, vervolgens 2 seconden laten slapen, en dan het nieuwe commando geven? Nu geef je 2 seconden nadat hij naar voren moet rijden het commando om meteen naar achteren te rijden.

Acties:
  • 0 Henk 'm!

  • S3BASTI3N
  • Registratie: Mei 2011
  • Laatst online: 06-10 19:52
verbatim schreef op woensdag 09 september 2015 @ 20:33:
Het is de bedoeling van time.sleep(2) dat het robotje 2 seconden wacht voordat het achteruit gaat. En dat doet het robotje niet.
Dit is jouw uitkomst.
30:25 moving forward
30:27 moving backward
ik denk dat je de code verkeerd begrijpt. Op het moment dat jij fwd() aanroept begint de robot naar voren te rijden. Vervolgens gaat je programma door naar de volgende regel, hier staat dat het programma 2 seconden moet wachten voordat hij weer verder gaat naar de volgende regel. Na twee seconden vooruit rijden zal de robot dus beginnen met achteruit rijden aangezien dat op de regel staat onder de sleep functie.

Acties:
  • 0 Henk 'm!

  • verbatim
  • Registratie: November 2010
  • Laatst online: 17-01-2024
Kiwi schreef op woensdag 09 september 2015 @ 20:37:
Moet je de robot dan niet een stop commando geven, vervolgens 2 seconden laten slapen, en dan het nieuwe commando geven? Nu geef je 2 seconden nadat hij naar voren moet rijden het commando om meteen naar achteren te rijden.
Hier is een voorbeeld van een video waarin ik precies het zelfde script heb als in de video. En bij hem werkt het wel.

YouTube: Programming Robot Basics - Robotics with Python Raspberry Pi and GoPiGo p.3

Acties:
  • 0 Henk 'm!

  • verbatim
  • Registratie: November 2010
  • Laatst online: 17-01-2024
S3BASTI3N schreef op woensdag 09 september 2015 @ 20:38:
[...]


ik denk dat je de code verkeerd begrijpt. Op het moment dat jij fwd() aanroept begint de robot naar voren te rijden. Vervolgens gaat je programma door naar de volgende regel, hier staat dat het programma 2 seconden moet wachten voordat hij weer verder gaat naar de volgende regel. Na twee seconden vooruit rijden zal de robot dus beginnen met achteruit rijden aangezien dat op de regel staat onder de sleep functie.
Inderdaad, het robotje moet 2 seconden wachten voordat het achteruit rijd en dat doet het robotje dus niet die 2 seconden wachten.

Acties:
  • 0 Henk 'm!

  • Kiwi
  • Registratie: Juli 2012
  • Laatst online: 05-10 23:04

Kiwi

Gadgetfreak

verbatim schreef op woensdag 09 september 2015 @ 20:47:
[...]

Hier is een voorbeeld van een video waarin ik precies het zelfde script heb als in de video. En bij hem werkt het wel.

YouTube: Programming Robot Basics - Robotics with Python Raspberry Pi and GoPiGo p.3
Daar doet hij dus precies wat S3BASTI3N en ik zeggen, hij gaat eerst twee seconden vooruit, dan twee seconden achteruit. Hij wacht niet nog 2 seconden er tussen.

Dit zou wel moeten werken.
Python:
1
2
3
4
5
6
7
8
9
10
11
12
from gopigo import *
import time

fwd() # wielen gaan vooruit
print 'moving forward'
time.sleep(2) # twee seconden vooruit
stop() # wielen stoppen
time.sleep(2) # twee seconden wachten
bwd() # wielen gaan acheruit.
print 'moving backward'
time.sleep(2)
stop()

Acties:
  • 0 Henk 'm!

  • S3BASTI3N
  • Registratie: Mei 2011
  • Laatst online: 06-10 19:52
Jouw programma doet het volgende, dit gebeurd ook precies in het filmpje.

je geeft het commando dat hij naar voren moet rijden
je wacht twee seconden voordat je het volgende commando geeft
je geeft het commando dat hij naar achter moet rijden
je wacht twee seconden voordat je het volgende commando geeft
je laat het robotje stoppen

De functie fwd() geeft alleen aan dat de robot moet beginnen met naar voren rijden en niet voor hoelang, dit doe je door je programma 2 seconden te laten wachten met de sleep functie.

Het programma van Kiwi beschrijft het gedrag wat jij verwacht. Zie je het verschil?

[ Voor 28% gewijzigd door S3BASTI3N op 09-09-2015 21:01 ]


Acties:
  • 0 Henk 'm!

  • verbatim
  • Registratie: November 2010
  • Laatst online: 17-01-2024
Ja inderdaad het werkt inderdaad met dat stop() commando er tussen.
Dank jullie wel. Nu kan ik verder gaan met mijn script.

Thanks

  • soepah
  • Registratie: December 2006
  • Laatst online: 15:47
Ik heb nog niet het idee dat je precies snapt wat je aan het doen bent als ik je laatste post lees (niet verkeerd bedoeld).
Zoals S3BASTI3N en Kiwi mooi aangeven doet je robotje precies wat je hem zegt dat hij moet doen.

Het commando forward / fwd is alleen het "aanzetten" van de mode Vooruit, als je daarna een sleep doet van 10 seconden, gevolgd door een stop() zal hij dus 10 seconden doorrijden.

Misschien is doorlezen wat het forward commando precies doet of wat meer inleren in Python een goed vervolg.

wie van vissen houdt, houdt niet van vissen


  • verbatim
  • Registratie: November 2010
  • Laatst online: 17-01-2024
Om jouw bericht even toe te lichten moet ik wel even vermelden dat ik het robotje nog maar pas in huis heb. En inderdaad moet ik mijzelf nog in Python gaan verdiepen.
Overigens is er nog weinig bekend op het internet van examplescripts voor de GoPiGo.

groeten,

Acties:
  • 0 Henk 'm!

  • soepah
  • Registratie: December 2006
  • Laatst online: 15:47
Het is ook geen verwijt aan je ofzo :), iedereen is ergens begonnen!
Als ik even google vind ik wel een redelijke API; http://www.dexterindustri...-the-raspberry-pi-gopigo/
Hier staan behoorlijk wat Commando's uigtgelegd.

Daarnaast via het forum deze pagina gevonden: http://www.dexterindustri.../gopigo-python-tutorials/
Hier staat:
If you’re just starting out with either Python or the GoPiGo, we really recommend you check it out!
En als je vragen hebt altijd stellen, of hier of op het GoPiGo forum, maar blijf er niet te lang mee zitten want dan wordt het vervelend en ben je je projectje zo zat.

wie van vissen houdt, houdt niet van vissen

Pagina: 1