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
-
C'est pas le même boitier, mais
https://forum.recalbox.com/topic/11228/nespi-fan-control-2-problèmes-résolus-en-même-temps/2 -
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
-
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.
-
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.jpgC'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) -
@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
-
@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 -
-
-
@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 ?