Aide script ajout ventilateur pour boitier Kintaro



  • Salut à tous,

    J'ai reçu mon boitier Kintaro Super Ursus ( la version PAL de la Snes ) j'ai télécharger le script qu'ils ont crée pour Racalbox.

    Le problème c'est que ce script ne gère que le bouton ON/OFF , RESET et la LED. aucune ligne de code pour gérer un ventilateur.

    J'ai réussi à mettre des lignes de code pour qu'il s'allume tout le temps mais bonjour le bruit ! (c'est un ventilo 25x25x10mm, pas le choix) voila le script modifié.

    J'ai regardé leur script version retropie et la il y a des lignes de code qui gere le ventilo. Il démarre à 60°C et s'eteint à 55°C

    je ne connais rien en code python. J'ai besoin de votre aide pour créer les lignes de code qui gère le lancement du ventilo a une certaine température.

    voila ce que j'ai dans mon script modifié

    voila.

    Merçi d'avance pour votre aide :D


  • Banned



  • oui je l'ai vu ton post. pour le pin je ne sais pas son numéro. dans le script il y a de marqué Fan=8 est ce le pin 8 ?

    @Substring j'ai besoin de ton aide :)


  • Banned

    Fan=8 ? Tu vois ça ou ?
    La dernierère version du script que j'utilise permet de changer tous les paramêtres au début du script, simpliste

    #!/usr/bin/env python3
    # Author: Edoardo Paolo Scalafiotti
    import os
    from time import sleep
    import signal
    import sys
    import RPi.GPIO as GPIO
    pin = 18 # The pin ID, edit here to change it
    maxTMP = 60 # Over put on fan
    minTMP = 55 # Under put off fan 
    def setup():
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(pin, GPIO.OUT)
        GPIO.setwarnings(False)
        return()
    def getCPUtemperature():
        res = os.popen('vcgencmd measure_temp').readline()
        temp =(res.replace("temp=","").replace("'C\n",""))
        #print("temp is {0}".format(temp)) #Uncomment here for testing
        return temp
    def fanON():
        setPin(True)
        return()
    def fanOFF():
        setPin(False)
        return()
    def getTEMP():
        CPU_temp = float(getCPUtemperature())
        if CPU_temp>maxTMP:
            fanON()
        if CPU_temp<minTMP:
            fanOFF()
        return()
    def setPin(mode): # A little redundant function but useful if you want to add logging
        GPIO.output(pin, mode)
        return()
    try:
        setup()
        while True:
            sleep(8) # Read the temperature every x sec, increase or decrease this limit if you want
    	getTEMP()
    except:
        GPIO.cleanup() # resets all GPIO ports used by this program
    

    Il suffit alors de créer un fichier custom.sh
    /recalbox/share/system/custom.sh
    avec le contenu

    #!/bin/bash
    
    python /recalbox/share/myscripts/run-fan.py &
    

    L'emplacement du script run-fan.py ou de son nom, tu peux évidement changer.
    Maintenant, si tu as d'autres scripts en plus à lancer lors du start, tu peux définir custom.sh autrement

    #!/bin/bash
    
    start() {
    python /recalbox/share/myscripts/kintaro.py &
    python /recalbox/share/myscripts/run-fan.py &
    }
    
    stop() {
    echo -n ""
    }
    
    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
    esac


  • Salut,

    Je ne sais pas si tu as regardé mon script que j'ai posté plus haut. Recalbox ne prend pas en charge nativement mon boitier. Donc j'ai installé le script fourni par kintaro.

    Il y a dedans un fichier s100kintaro.sh

    En gros faudrai rajouter ton code dans mon fichier script kintaro.py

    D'ailleurs comme fait on pour afficher du code ici ?

    Voilà le lien de mon fichier scripts :

    https://drive.google.com/file/d/1eEpg99W4Ps37qC30v8eSU00HOz0m6FEA/view?usp=drivesdk

    Pour l'instant je suis en week-end à la mer je rentre que demain soir.


  • Banned

    Evite les méduses avec plus de 4 tentacules. Pour le code c'est 3x "```" pour ouvrir et même chose pour finir.
    La commande du ventilateur à partir du GPIO pin 8, il faut voir le connecteur du boîtier ou il s'enfiche sur le PI3. Dans ton script, je ne vois aucune fonction de température.
    Alors vaut mieux séparer en 2 scripts. Pour commander un fan à partir du GPIO il faut un transistor intermédiaire et les 5Volt. Maintenant si sur la platine de ton boîtier une commande du ventilo dans cet sens est comprise, pas besoin de le faire. Les sorties GPIO sont à 3,3V et n'ont pas assez de puissance.
    Alors, ou bien si tel schéma existe dans le boitier, enlever tous les lignes se rapportant à fan dans le script kintaro et mettre le script fan avec pin = 8 derrière. L'appel de plusieurs script est parfois un avantage.



  • @mikefly tu peux tout à fait utiliser le script de Dragu tel qu'il l'a posté, rien n'oblige à tout centraliser dans un seul fichier ;)

    Le truc, c'est que le script de Dragu ne gère pas d'hystérésis, juste une température seuil



  • Je vais regarder ça.

    Comme je n'y connais pas grand chose. Le faire un seul fichier aurait plus simple car je colle le code et hop je le met dans recalbox.

    Je vais regarder dimanche soir comment faire.



  • @dragu said in Aide script ajout ventilateur pour boitier Kintaro:

    Evite les méduses avec plus de 4 tentacules. Pour le code c'est 3x "```" pour ouvrir et même chose pour finir.
    La commande du ventilateur à partir du GPIO pin 8, il faut voir le connecteur du boîtier ou il s'enfiche sur le PI3. Dans ton script, je ne vois aucune fonction de température.
    Alors vaut mieux séparer en 2 scripts. Pour commander un fan à partir du GPIO il faut un transistor intermédiaire et les 5Volt. Maintenant si sur la platine de ton boîtier une commande du ventilo dans cet sens est comprise, pas besoin de le faire. Les sorties GPIO sont à 3,3V et n'ont pas assez de puissance.
    Alors, ou bien si tel schéma existe dans le boitier, enlever tous les lignes se rapportant à fan dans le script kintaro et mettre le script fan avec pin = 8 derrière. L'appel de plusieurs script est parfois un avantage.

    Alors là je ne sais pas du tout je sais que la carte électronique se connecte directement sur les premiers pin voir photo:
    0_1533377383294_IMG_20180803_120304.jpg

    C'est quoi l'hysterisis ?

    @Dragu Est ce que je doit supprimer les lignes que j'ai rajouté dans le script kintaro pour activer le ventilo tout le temp ?

    Celle là :

    def fan(status):
    if status == 0:
    GPIO.output(FAN, GPIO.LOW)
    if status == 1:
    GPIO.output(FAN, GPIO.HIGH)


  • Banned

    @Mikefly
    Prend le script original kintaro.py et lance le juste avant celui du ventilateur.
    Ton script modifié fera erreur de toute façon. Pour la platine, il faudrait voir de l'autre coté s'il y a une commande électrique du ventilateur ou pas. (Q1 ?) C'est pas sur, parce que dans kintaro.py il met juste la variable FAN =8, et rien derrière, même pas si c'est un pin IN ou Out.
    Si ça marche tout le temps après l'installation du script, il faut faire aussi la mod. avec transistor S8050.



  • @mikefly un hystérésis, c'est le fait de ne pas être sur une température de seuil (60 dansle script de Dragu), mais 2 : un pour l'activation, l'autre pour la désactivation


  • Banned

    @Substring
    Mais en dessous de 55, dans l'exemple, il se désactive à nouveau . Il ya 2 seuils.



  • @dragu said in Aide script ajout ventilateur pour boitier Kintaro:

    @Mikefly
    Prend le script original kintaro.py et lance le juste avant celui du ventilateur.
    Ton script modifié fera erreur de toute façon. Pour la platine, il faudrait voir de l'autre coté s'il y a une commande électrique du ventilateur ou pas. (Q1 ?) C'est pas sur, parce que dans kintaro.py il met juste la variable FAN =8, et rien derrière, même pas si c'est un pin IN ou Out.
    Si ça marche tout le temps après l'installation du script, il faut faire aussi la mod. avec transistor S8050.

    Oui le script pour recalbox originale est incomplet.

    Par contre celui pour retropie est vraiment complet avec la température et tout donc ça devrait fonctionner sans modification.
    Car dans la notice côté retropie il y a de marqué que le ventilo s'enclenche à 60 et j'arrête à 55.

    Tiens tu peux regarder ce que ça donne :
    https://github.com/MichaelKirsch/KintaroSnes



  • @dragu ben c'est ce que je dis :D En gros :

    text alternatif

    Faut remplacer 100 par 55 et 100.8 par 60 pour se comprendre la chose.

    @Mikefly peu importe d'avior un script complet Recalbox ou non, tu peux utiliser le script et Dragu direct du moment que c'est la bonne broche qui est configurée



  • @mikefly tu as essayé le pcb.py directement sans modifs ?



  • @Substring oui dès que je rentre demain soir je crée un fichier avec le code de @Dragu .

    Il suffit sur je fasse un copié collé ? Et que je rajoute la ligne dans le fichier .sh ?

    Ah non pas essayé le fichier pcb.py de retropie. Tu crois qu'il est compatible ?



  • @mikefly pas vu grand chose qui soit propre à retropie dedans. Vérifie bien que /opt/kintaro existe.

    Après, peut-être 2-3 tweaks par-ci par-là pour que ca marche au pire, mais pas grand chose.

    Le plus simple pour toi faire :

    cd
    wget https://raw.githubusercontent.com/MichaelKirsch/KintaroSnes/master/pcb.py
    python pcb.py
    

    A faire en SSH bien sûr. Tu me dis ce que ca sort dès que tu lances la commande python.



  • @Substring le problème dans le fichier c'est qu'il veut lancer une vidéo d'introduction kintaro.



  • @mikefly osef de la vidéo, elle se désactive dans /opt/kintaro/kintaro.config



  • @Substring Le fichier kintaro.config va se créer tout seul ou je dois copier tout les fichiers scripts de la page ?



Want to support us ?

Join us on :

270
Online

31345
Users

15155
Topics

113971
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.