Problème de lancement de script sous RaspBianOSJessie

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
WolsterKing
Messages : 3
Enregistré le : mar. 6 sept. 2016 19:50

Problème de lancement de script sous RaspBianOSJessie

Message par WolsterKing » mar. 6 sept. 2016 19:54

Bonjour, j'aimerai executer un script copier de fred-j.org pour reproduire son robot mais lors de l'éxecution du script, j'ai : RuntimeError: rpio-pwm: Page 0 not present (pfn 0xa10000000005e5) ...
J'ai toute les permissions, je suis en "root" et voilà le script :

#!/usr/bin/python
# -*- coding:Utf-8 -*-

from RPIO import PWM
import RPIO
import socket
import RPi.GPIO as GPIO
import time
import sys

HOST = "0.0.0.0"
PORT = 12345

#-------------[ CABLAGE ]--------------------
My_LED = 22

Moteur_1_Forward = 25
Moteur_1_Reverse = 24
Moteur_2_Forward = 23
Moteur_2_Reverse = 18

LED_R = 22
LED_V = 27
LED_B = 17
BUZZER_PIN = 04

#-------------[ Initialisation ]--------------

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(Moteur_1_Forward, GPIO.OUT)
GPIO.setup(Moteur_1_Reverse, GPIO.OUT)
GPIO.setup(Moteur_2_Forward, GPIO.OUT)
GPIO.setup(Moteur_2_Reverse, GPIO.OUT)

GPIO.setup(LED_R, GPIO.OUT)
GPIO.setup(LED_V, GPIO.OUT)
GPIO.setup(LED_B, GPIO.OUT)

BUZZER = RPIO.PWM.Servo()


#--------------------------------------------
def BIP() :
BUZZER.set_servo(BUZZER_PIN,15000)
time.sleep(.1)
BUZZER.stop_servo(BUZZER_PIN)
time.sleep(.01)
BUZZER.set_servo(BUZZER_PIN,15000)
time.sleep(.1)
BUZZER.stop_servo(BUZZER_PIN)

def AVANT() :
print "Marche Avant"
GPIO.output(Moteur_1_Forward, GPIO.HIGH)
GPIO.output(Moteur_2_Forward, GPIO.HIGH)

def ARRIERE() :
print "Marche Arriere"
GPIO.output(Moteur_1_Reverse, GPIO.HIGH)
GPIO.output(Moteur_2_Reverse, GPIO.HIGH)
time.sleep(0.5)
STOP()

def DROITE() :
print "tourne a droite"
GPIO.output(Moteur_1_Forward, GPIO.HIGH)
GPIO.output(Moteur_2_Reverse, GPIO.HIGH)
time.sleep(0.5)
STOP()

def DROITE_Toute() :
print "tourne a droite"
GPIO.output(Moteur_1_Forward, GPIO.HIGH)
GPIO.output(Moteur_2_Reverse, GPIO.HIGH)

def GAUCHE() :
print "tourne a gauche"
GPIO.output(Moteur_1_Reverse, GPIO.HIGH)
GPIO.output(Moteur_2_Forward, GPIO.HIGH)
time.sleep(0.5)
STOP()

def GAUCHE_Toute() :
print "tourne a gauche"
GPIO.output(Moteur_1_Reverse, GPIO.HIGH)
GPIO.output(Moteur_2_Forward, GPIO.HIGH)


def STOP () :
print "stop"
GPIO.output(Moteur_1_Forward, GPIO.LOW)
GPIO.output(Moteur_2_Forward, GPIO.LOW)
GPIO.output(Moteur_1_Reverse, GPIO.LOW)
GPIO.output(Moteur_2_Reverse, GPIO.LOW)


def LED_R_UP() :
print "LED Rouge Marche"
GPIO.output(LED_R, GPIO.HIGH)
def LED_V_UP() :
print "LED Vert Marche"
GPIO.output(LED_V, GPIO.HIGH)
def LED_B_UP() :
print "LED Bleu Marche"
GPIO.output(LED_B, GPIO.HIGH)
def LED_DOWN() :
print "LED Stop"
GPIO.output(LED_R, GPIO.LOW)
GPIO.output(LED_V, GPIO.LOW)
GPIO.output(LED_B, GPIO.LOW)

def MENU() :
connexion.send( "\n\r" )
connexion.send( " A --> en Avant\n" )
connexion.send( " R --> en Arriere\n" )
connexion.send( " D --> a Droite\n" )
connexion.send( " DD --> a Droite (sans stop)\n" )
connexion.send( " G --> a Gauche\n" )
connexion.send( " GG --> a Gauche (sans stop)\n" )
connexion.send( " S --> STOP\n" )
connexion.send( " 1 --> LED Rouge ON\n" )
connexion.send( " 2 --> LED Vert ON\n" )
connexion.send( " 3 --> LED Bleu ON\n" )
connexion.send( " 0 --> LED OFF\n" )
connexion.send( " B --> BIP\n" )
connexion.send( " M --> MENU\n" )
connexion.send( "\n" )

print "GO"
print "Start\n"

# Creation du socket
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Liaison du socket avec l'interface
try:
mySocket.bind((HOST, PORT))
except socket.error:
print "La liaison du socket à l'adresse choisie a échoué."
sys.exit()

BIP()
# --------------------------------------
while 1:

print "Serveur en attente ..."
mySocket.listen(5)

# Etablissement de la connexion :
connexion, adresse = mySocket.accept()
print "Client connecté, adresse IP %s, port %s" % (adresse[0], adresse[1])

# Envoi d'un message qu client :
connexion.send("\nWelcome to Fred's Robot Server\n\n")
MENU()

# Reception des message client
while 1:
msgClient = connexion.recv(10).rstrip()
print "C>"+msgClient+"<"
if msgClient.lower() == "fin" or msgClient =="" or msgClient.lower() == "stop":
print "Break !!!"
break

elif msgClient.upper() == "M" :
MENU()

# Commandes Robot
elif msgClient.upper() == "A" :
AVANT()
elif msgClient.upper() == "R" :
ARRIERE()
elif msgClient.upper() == "D" :
DROITE()
elif msgClient.upper() == "DD" :
DROITE_Toute()
elif msgClient.upper() == "G" :
GAUCHE()
elif msgClient.upper() == "GG" :
GAUCHE_Toute()
elif msgClient.upper() == "S" :
STOP()
elif msgClient.upper() == "1" :
LED_R_UP()
elif msgClient.upper() == "2" :
LED_V_UP()
elif msgClient.upper() == "3" :
LED_B_UP()
elif msgClient.upper() == "0" :
LED_DOWN()
elif msgClient.upper() == "B" :
BIP()


# Fin de la session
connexion.send("By By !")
print "Connexion interrompue."
connexion.close()

# fin du programme
if msgClient.lower() == "stop":
break


Merci d'avance, WolsterKing

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Problème de lancement de script sous RaspBianOSJessie

Message par Manfraid » mar. 6 sept. 2016 20:09

Salut,

as-tu tout tes modules d'installer correctement car pour moi le module RPIO n'est pas dans la version que l'auteur du script utilise
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

WolsterKing
Messages : 3
Enregistré le : mar. 6 sept. 2016 19:50

Re: Problème de lancement de script sous RaspBianOSJessie

Message par WolsterKing » mar. 6 sept. 2016 21:54

Manfraid a écrit :Salut,

as-tu tout tes modules d'installer correctement car pour moi le module RPIO n'est pas dans la version que l'auteur du script utilise

Merci pour ta réponse, je ne connais ni la version du développeur, ni la mienne comment faire ? Et dans les premières lignes, à "host" je dois mettre l'ip local du pi ?

bruno83
Messages : 72
Enregistré le : lun. 11 mai 2015 13:29

Re: Problème de lancement de script sous RaspBianOSJessie

Message par bruno83 » ven. 18 nov. 2016 20:45

je réponds hyper tard mais le truc est simple
tu crées une instance ;BUZZER = RPIO.PWM.Servo()
qui va chercher des objets qui ne sont pas dans les librairies
sudo apt-get install python-setuptools
sudo easy_install -U RPIO
a+ BRUNO

Répondre

Retourner vers « Python »