utilisation de pi4j

Notre framboise peut faire tourner les applications Java. Comment faire, comment développer ces applications, et les failles de sécurité de java ? Parlez en ici...

Modérateur : Francois

danaos
Messages : 5
Enregistré le : sam. 19 déc. 2015 00:21

utilisation de pi4j

Messagepar danaos » sam. 19 déc. 2015 00:32

Bonjour,

quelqu'un utilise il pi4j car j'essaye de moduler un signal pwm et j'ai un tats d'erreur de compilation ??

voici mon test :
public static GpioController gGPIOController = GpioFactory.getInstance();

GpioPinPwmOutput pin; la ok

pin = gGPIOController.provisionPwmOutputPin(getPin(nGPIO)); la ok

utilisation de pin.pwmSetMode et pin.setPwm pas ok ??

voilà l'erreur :

error: cannot find symbol pin.pwmSetMode(2);

symbol: method pwmSetMode(int)
location: variable pin of type GpioPinPwmOutput

quelqu'un peut il m'aider

Avatar de l’utilisateur
vague nerd
Modérateur
Messages : 1391
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: utilisation de pi4j

Messagepar vague nerd » lun. 4 janv. 2016 10:52

Bonjour.
Vous pouvez donner la portion de code complète, et la sortie d'erreur complète correspondante ?
Je galère pour comprendre...
Cdt.
Cordialement,

Vague Nerd

danaos
Messages : 5
Enregistré le : sam. 19 déc. 2015 00:21

Re: utilisation de pi4j

Messagepar danaos » mar. 12 janv. 2016 20:38

Bonjour,

tout d'abord merci pour votre réponse je me sens moins seul.
en gros j'essaye de fournir un signal pwm pour contrôler un servo avec pi4j et a mon avis je n'utilise pas la bonne syntaxe.
en python j'y arrive.
un petit exemple serais le bienvenu.

d'avance merci

danaos
Messages : 5
Enregistré le : sam. 19 déc. 2015 00:21

Re: utilisation de pi4j

Messagepar danaos » ven. 15 janv. 2016 18:46

voici l'erreur que j'obtiens lors de la création de l'archive java :

Code : Tout sélectionner

java:242: error: cannot find symbol
         pin.pwmSetRange();
            ^
  symbol:   method pwmSetRange(int)
  location: variable pin of type GpioPinPwmOutput
1 error


a mon avis il me manque une librairie ou quelque chose du genre, j'utilise la librairie pi4j-core.jar
peut etre que les fonction pwmSetMode, pwmSetRange ne sont pas define

la portion de code c'est un test qui fait quelques lignes que je ne garantis pas

Code : Tout sélectionner

public static boolean GPIOPwm(int nGPIO,int cycle){
   GpioPinPwmOutput pin;
   int DC=50;
   try{
      pin = gGPIOController.provisionPwmOutputPin(getPin(nGPIO));
      if(pin != null){
         pin.setPwm(DC); //en python GPIO.PWM(port, freq)
         pin.pwmSetRange(cycle)n python pwm.ChangeDutyCycle()
         gGPIOController.unprovisionPin(pin);
         return true;
      }
      else{
         return false;
      }
}


voilà en gros la question c'est comment faire l'équivalent en java de ce code python et quelle librairie utiliser ?

Code : Tout sélectionner

GPIO.setup(port,GPIO.OUT)
pwm=GPIO.PWM(port,frequence) //Ex: 11,50
pwm.start()
pwm.ChangeDutyCycle()
pwm.stop()


je ne sais pas comment mieux décrire ma situation, help

Avatar de l’utilisateur
vague nerd
Modérateur
Messages : 1391
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: utilisation de pi4j

Messagepar vague nerd » sam. 16 janv. 2016 00:13

Bonjour.

Pour ma part, j'ai eu besoin des librairies suivantes.
    pi4j-core.jar
    pi4j-device.jar
    pi4j-gpio-extension.jar
    pi4j-service.jar

Concernant votre message d'erreur, il dit plutôt que la classe GpioPinPwmOutput n'a pas de méthode pwmSetRange().
Voulliez-vous taper setPwm() ?

pin.pwmSetRange(cycle)n python pwm.ChangeDutyCycle()

Cette ligne semble la contraction de deux lignes... un copier/coller raté ?

D'après ce que me dit google, il ne faut pas faire du PWM pour bouger une servo, mais du PPM.
Le PPM à une durée de cycle de 20 ms, et c'est la taille de l'état haut qui définit l'angle du servo...
Ok je suis pas clair. Pour mettre le servo au mini, il faut envoyer :
Image
Pour center le servo ;
Image
Pour mettre le servo au max :
Image
Cdt.

PS : je me suis permis d'éditer votre post pour plus de facilité de lecture.
Cordialement,

Vague Nerd

danaos
Messages : 5
Enregistré le : sam. 19 déc. 2015 00:21

Re: utilisation de pi4j

Messagepar danaos » sam. 16 janv. 2016 00:19

merci pour cette réponse je vais tester de nouveau

danaos
Messages : 5
Enregistré le : sam. 19 déc. 2015 00:21

Re: utilisation de pi4j

Messagepar danaos » sam. 16 janv. 2016 00:25

concernant pwmSetRange().

quel est l'équivalent du ChangeDutyCycle de python en pi4j il faut donner une fréquence de base j'imagine que c'est setPwm()comme par exemple 50hz. et une longueur de pulse comme par exemple 10% ou 1 ms. et là je cale.

Avatar de l’utilisateur
vague nerd
Modérateur
Messages : 1391
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: utilisation de pi4j

Messagepar vague nerd » sam. 16 janv. 2016 00:40

Pour que le pwm soit du ppm, il faut effectivement fixer la longueur de cycle.
Par contre, je pense que c'est setPwm() qui doit fixer la longueur du HIGH (j'imagine...)

Mais avez vous essayé de ne faire que setPwm() ? La taille de cycle par défaut est peut-etre la bonne !

J'arrive pas à trouver d'exemple... c'est agaçant !

Cdt.
Cordialement,

Vague Nerd


Retourner vers « Java »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité