Si on a ps les mêmes broches, normal que ça fonctionne pas
J'ai WIN_AD en C.5 et pas C.2.
Je vais revoir le dessin des cartes.
Bonnes vacances
MM
-----
Si on a ps les mêmes broches, normal que ça fonctionne pas
J'ai WIN_AD en C.5 et pas C.2.
Je vais revoir le dessin des cartes.
Bonnes vacances
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Bonjour,
il me semble que mes declarations soit bonnes.
Bonne journée
Bonjour,
Oui, mais il y a d'autres mises au point à faire:
Le reset est donc un contact NF, et le contact but, quel est le sens?
Pour essayer la carte équipe1 sans équipe 2, il faut WIN_AD à 0v, sinon ça bloque.
J'ai un autre programme, mais pas le temps de poster, je pars trois jours, on verra la suite à ton retour.
A suivre
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Le voici, rapidement, avec quelques nouveautés, à voir pour les vacances.
Code:;babyfoot elwe 09082017 ;pour 20X2, avec partie gratuite ;**** nominations ports ;sorties B.0 à C.1 (de 0 à 9) sorties but #picaxe 20X2 symbol PGratuite=A.0 symbol WIN_AD = pinC.2 ;adversaire gagnant symbol BT_RAZ = pinC.3 ;Bouton RAZ :ouvert=reset symbol L_BUT = C.4 ;les 4 ampoules du gardien symbol L_LOGO = C.5 ;les 3 ampoules de la marque symbol BT_BUT = pinC.6 ;contact temporairement fermé quand l'equipe marque un but symbol DONG = C.7 ;La cloche ;*** nominations variables symbol FlgPG = bit0 ;flag passage par partie gagnante symbol C_BUT = b1 ;Compteur de buts symbol cpt =b2 ;variable compteur divers symbol temps =b3 ;variable temps aléatoire symbol Nchance =b4 ;chance partie gagnante = 1/Nchance symbol T_DONG = w13 ;tempo dong symbol T_LAMPE = w12 ;tempo lampe on symbol T_PAUSE = w11 ;************** dirsB= %11111111 ;Désiagnation des ports B dirsC= %10110011 ;Désiagnation des ports C pullup %0100110000000000 ;pullup sur C.2 C.3 et C6 T_DONG = 14000 ; pulsout pour le dong (en x5µs) T_LAMPE = 500 ; pulsout des lampes en ms T_PAUSE = 500 ; temps de pause settimer t1s_8 ;timer réglé pour 1s à 8MHz if BT_RAZ=1 then gosub chance read 0,Nchance : high Nchance : pause 1000 Nchance=1 ;pour simu, à supprimer en réel setint %1000,%1000 ;interruption niveau haut sur C.3(photo) gosub test do do pauseus 1 ;bug simu à supprimer en réel inc temps if WIN_AD=1 and flgPG=0 then gosub partie_gratuite loop while BT_BUT=0 or WIN_AD=1 ;blocage pas de but ou advers a gagné do loop while BT_BUT=1 ;y a un but! attente relachement switch but if C_BUT > 0 then ;si ce n'est pas le premier cpt = C_BUT - 1 ;on éteint low cpt ;le but précédent endif high C_BUT 'on allume l'ampoule du But inc C_BUT 'on incremante le compteur de but If C_BUT <=9 then 'si pas 10 buts Dong + lumiere du gardien high L_BUT pulsout DONG, T_DONG low L_BUT else for cpt=0 to 3 'si 10 buts Dong + lumiere du gardien 3 Fois pulsout DONG, T_DONG high L_BUT high L_LOGO Pause 200 low L_BUT low L_LOGO pause 200 next endif if C_BUT>9 then gosub partie_gratuite do loop while C_BUT > 9 ;ON A GAGNÉ!!...attente appui sur RESET loop ;***************************************** partie_gratuite: temps=temps//Nchance if temps=0 then high Pgratuite pulsout DONG, T_DONG ' 2 Dong pause 100 pulsout DONG, T_DONG endif flgPG=1 return chance: do loop while BT_RAZ=1 high PGratuite cpt=0 : high cpt timer=0 do if BT_RAZ=1 then do loop while BT_RAZ=1 timer=0 low cpt: inc cpt : high cpt endif loop while timer <3 write 0, cpt return test: for C_BUT=0 to 9 high C_BUT pause T_PAUSE low C_BUT pulsout L_LOGO, T_LAMPE next high L_BUT: pause T_LAMPE low L_BUT: pause T_LAMPE: high L_BUT: pause T_LAMPE low L_BUT pulsout DONG, T_DONG ;test de dong C_BUT=0 ;RAZ compteur but return interrupt: do loop while BT_RAZ=1 for C_BUT=0 to 9 low C_BUT next low L_BUT low L_LOGO C_BUT=0 flgPG=0 low Pgratuite pause 1000 setint %1000,%1000 ;interruption niveau haut sur C.3
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
J'ai trouvé cette video sur pullup/pulldown :
Donc dans mon cas de reset.
La patte est déclarée en pullup. Le reset est fermé donc la patte est a 0 et 1 quand ouvert ?
Pour le but c'est le contraire, la balle passe sur l'interrupteur pour faire le contact. la patte est à 1 et passe à 0 lorsqu'un but est inscrit.
Pour simplifier la comprehension du code, ne faudrait-il passer le BT_BUT en pulldown ?
Le fait de remplacer un 0 par un 1 n'aide pas la compréhension du code, et si ça te perturbe, il faut ajouter un petit commentaire.
Il n'y a pas de R pulldown programmable dans les PIC, si nécessaire, il faut une R externe, mais c'est inutile ici.
Si la balle ferme le contact, on écrit : "loop while BT_BUT=1", et c'est fini .
Histoire de s'amuser, il y a dans le nouveau code, une procédure pour introduire le pourcentage de change de gagner une partie gratuite, de 1/1 à 1/10, ce qui devrait être suffisant. Lancer si besoin à la mise sous tension. La variable "Nchance" est mémorisée en EEPROM.
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Ratage de copier-coller du dernier code, manque le dernier return à la fin de l'interruption.
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Bonjour,
Apres vacances et rentrée, je me remets sur le projet...
Je ne comprends pas tout le code, mais quand je demarre le babyfoot, avec le X2 et le M2 charger.
Coté Equipe 1 (X2) ça initiale, puis fait un cycle jusqu’à la partie gagnée puis ça se bloque. (but 10 allumé/ 3 Dongs).
Bonne soirée.
Bonjour,
J'ai pas relu le total du code transmis, mais il manque déjà le return en fin d'interruption.
En voilà une autre copie, le simulateur va bien jusqu'à l'attente du but.
Si les codes ne sont pas interconnectés, il faut WIN_AD ( broche C.2) à 5 vCode:;babyfoot elwe 09082017 ;pour 20X2, avec partie gratuite ;**** nominations ports ;sorties B.0 à C.1 (de 0 à 9) sorties but #picaxe 20X2 symbol PGratuite=A.0 symbol WIN_AD = pinC.2 ;adversaire gagnant symbol BT_RAZ = pinC.3 ;Bouton RAZ :ouvert=reset symbol L_BUT = C.4 ;les 4 ampoules du gardien symbol L_LOGO = C.5 ;les 3 ampoules de la marque symbol BT_BUT = pinC.6 ;contact temporairement fermé quand l'equipe marque un but symbol DONG = C.7 ;La cloche ;*** nominations variables symbol FlgPG = bit0 ;flag passage par partie gagnante symbol C_BUT = b1 ;Compteur de buts symbol cpt =b2 ;variable compteur divers symbol alea =b3 ;variable temps aléatoire symbol Nchance =b4 ;chance partie gagnante = 1/Nchance symbol T_DONG = w13 ;tempo dong symbol T_LAMPE = w12 ;tempo lampe on symbol T_PAUSE = w11 ;************** dirsB= %11111111 ;Désiagnation des ports B dirsC= %10110011 ;Désiagnation des ports C pullup %0100110000000000 ;pullup sur C.2 C.3 et C6 T_DONG = 14000 ; pulsout pour le dong (en x5µs) T_LAMPE = 500 ; pulsout des lampes en ms T_PAUSE = 500 ; temps de pause settimer t1s_8 ;timer réglé pour 1s à 8MHz if BT_RAZ=1 then gosub chance ;si BT_RAZ appuyé, réglage Nchance read 0,cpt high cpt ;on allume le chiffre pour info Nchance=cpt+1 : pause 1000 ;chiffre 1 correspond à cpt=0 setint %1000,%1000 ;interruption niveau haut sur C.3(photo) gosub test ;test des ampoules ;****************************************** do flgPG=0 ;RAZ passage partie gratuite low Pgratuite ;RAZ affichage do pauseus 1 ;bug simu à supprimer en réel inc alea ;variable pour tirage aléatoire if WIN_AD=1 and flgPG=0 then gosub partie_gratuite loop while BT_BUT=1 or WIN_AD=1 ;blocage pas de but(0=but) ou advers a gagné do loop while BT_BUT=0 ;y a un but! attente relachement switch but if C_BUT > 0 then ;si ce n'est pas le premier cpt = C_BUT - 1 ;on éteint low cpt ;le but précédent endif high C_BUT 'on allume l'ampoule du But inc C_BUT 'on incremante le compteur de but If C_BUT <=9 then 'si pas 10 buts Dong + lumiere du gardien high L_BUT pulsout DONG, T_DONG low L_BUT else for cpt=0 to 3 'si 10 buts Dong + lumiere du gardien 3 Fois pulsout DONG, T_DONG high L_BUT high L_LOGO Pause 200 low L_BUT low L_LOGO pause 200 next endif if C_BUT>9 then gosub partie_gratuite ;on va au tirage au sort do loop while C_BUT > 9 ;ON A GAGNÉ!!...attente appui sur RESET loop ;***************************************** partie_gratuite: alea=alea//Nchance ;reste de la division (de 0 à Nchance-1) if alea=0 then ;si Nchance =1,on a toujours 0 high Pgratuite pulsout DONG, T_DONG ' 2 Dong pause 100 pulsout DONG, T_DONG endif flgPG=1 ;mémo passage par un seul passage return chance: do loop while BT_RAZ=1 ;attente relachement high PGratuite ;allumage annonce cpt=0 : high cpt ;allumage n° 1 timer=0 ;RAZ timer do if BT_RAZ=1 then ;attente appui do loop while BT_RAZ=1 ;attente relachement timer=0 ;reset tempo 3s low cpt: inc cpt : high cpt ;chenillard affichage endif loop while timer <5 ;on fait rien 5s, on sort write 0, cpt ;enregistrement en EEPROM Nchance=cpt+1 ;valeur Nchance return test: ;test de toutes les ampoule + gong for C_BUT=0 to 9 high C_BUT pause T_PAUSE low C_BUT pulsout L_LOGO, T_LAMPE next high L_BUT: pause T_LAMPE low L_BUT: pause T_LAMPE: high L_BUT: pause T_LAMPE low L_BUT pulsout DONG, T_DONG ;test de dong C_BUT=0 ;RAZ compteur but return interrupt: do loop while BT_RAZ=1 ;attente relachement for C_BUT=0 to 9 ;extinction des buts low C_BUT next low L_BUT low L_LOGO C_BUT=0 ;RAZ compteur but pause 1000 flgPG=0 ;RAZ passage low Pgratuite setint %1000,%1000 ;interruption niveau haut sur C.3 return
A suivre
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Bonjour,
Oui, il est normalement a 0V.
Je suis en train de bosser sur le programme du M2 (equipe 2). les tests avec le X2 seul ne fonctionne pas.
Bonjour,
Il est normalement à 0 si la carte de l'adversaire est connectée.
Pour faire fonctionner les cartes indépendamment, il faut placer l'entrée WIN_AD à 0, en la mettant au 0v.
Je pense qu'il faut tester les deux cartes indépendamment dans un premier temps.
Il faut refaire le tour et bien se mettre d'accord sur les conditions initiales des switchs but et raz et vérifier le fonctionnement, sans carte.
Ensuite seulement, connecter les cartes, en cas de problème, il sera plus facile de trouver l'origine. Ex, le but 10 va s'allumer au test, comment va réagir l'autre carte qui fait un test au même moment ?
Signaler les modifs que tu fais dans les codes.
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Bonjour,
Quelques années après l'arrêt du projet, je me remets dessus.
J'ai un souci sur une entrée (C.6) du picaxe, il y a toujours 20mv alors 0v quand l'interrupteur de but et fermé. ça devrait être 5v interrupteur fermé et 0v interrupteur ouvert !
Si quelqu'un pouvait m'aider,
merci d'avance.
J'ai trouvé, la patte C.6 est sur la masse et non sur le + d'ou le 0V quand interrupteur fermé.
Equipe 1 terminé
https://youtu.be/Answke8SGV0
La suite bientot
Bonsoir,
Je ne m'attendais pas à revoir cette discussion après six ans d'interruption.
J'ai dû relire tout l'historique.
Daudet est parti du forum, fâché avec les modos, dommage...pour le forum.
Mea culpa, en fait, la sortie serial out du picaxe 20M2 fonctionne avec le nom de A.0 mais ce n'est mentionné nulle part dans la doc (mais on ne peut pas lui donner de n°, comme 16 pour le 20X2).
Les chinois font 5 PCB (identiques) pour 2 euros, qualité professionnelle, découpés, percés, etc
A suivre...
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
2€ c'est le prix d'appel... une fois payé les frais de mise en production, la TVA et le port ça revient plutôt à 5€ par PCB avec un minimum de 5 (j'en ai fait faire encore 2 différents le mois dernier) mais ça reste TRES compétitif par rapport aux prix de fabricants européens (le dernier que j'ai fait faire c'était de l'ordre de 100€ le PCB)
Tout projet flou conduit à une connerie précise !
Bonjour,2€ c'est le prix d'appel... une fois payé les frais de mise en production, la TVA et le port ça revient plutôt à 5€ par PCB avec un minimum de 5 (j'en ai fait faire encore 2 différents le mois dernier) mais ça reste TRES compétitif par rapport aux prix de fabricants européens (le dernier que j'ai fait faire c'était de l'ordre de 100€ le PCB)
Je ne me souviens plus exactement combien j'ai payé les derniers. 5 PCB d'environ 20 x 20 cm pour une quinzaine d'euros, tout compris. peut être que ça à changé.
Je me souviens qu'il faut bien choisir la modalité des frais de port (de 3 à 22 euros)
MM
Dernière modification par mag1 ; 24/04/2023 à 08h39.
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Et oui, beaucoup de travaux dans la maison prioritaire, changement radical de métier... et j'en avais assez de voir ce babyfoot en chantier !!! je m'y suis remis.
Ah mince. mais impressionné de te voir encore là
Pour le moment, j'ai bricolé un truc pour les tests sur les cartes, on verra par la suite ce que je fais. Par contre, la carte reset souvent (avec le dong activé), je pense que ca tire trop sur le Polyswitch RUEF250, si j'ai bien tout compris.Mea culpa, en fait, la sortie serial out du picaxe 20M2 fonctionne avec le nom de A.0 mais ce n'est mentionné nulle part dans la doc (mais on ne peut pas lui donner de n°, comme 16 pour le 20X2).
Les chinois font 5 PCB (identiques) pour 2 euros, qualité professionnelle, découpés, percés, etc
A suivre...
MM
encore merci pour tout le temps passé.
Dernière modification par elwe31 ; 24/04/2023 à 19h06.
C/C le polyswitch si plus de problème, le supprimer.Par contre, la carte reset souvent (avec le dong activé), je pense que ca tire trop sur le Polyswitch RUEF250, si j'ai bien tout compris.
Diode de roue libre à souder directement sur la bobine du gong (le faire en priorité), si pas suffisant: augmenter les découplages, ensuite, on voit.
MM
Dernière modification par mag1 ; 24/04/2023 à 19h45.
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Oui les frais de port ça peut être un facteur 10 en fonction de l'option choisie... et franchement les options les plus chère n'apportent pas grand chose pour un particulier qui n'est pas à quelque jours.
Ma dernière commande fin mars : 2 circuits différents un de 106x100m et l'autre de 125x108mm = fabrication 17.5$, frais de port 18$, frais de douane 7.2$ soit au total en euros : 41.2 avec les frais de change de la banque. ça met donc le PCB à 4.12€ c'est clairement pas cher, surtout pour la qualité du produit et pour un PCB double-face "toutes options".
Bon le truc c'est que s'il te faut un seul PCB, t'en paye 4 autres pour rien.
Tout projet flou conduit à une connerie précise !
ça y est tu m'as perdu !
- C/C le polyswitch si plus de problème, le supprimer: ça veut dire remplacer le polyswitch par un fils ? mais le circuit n'est plus protégé ?
- Diode de roue libre à souder directement sur la bobine du gong (le faire en priorité) : c'est à dire ?
La carte equipe2 fonctionne, me reste plus qu'a les faire discuter et faire fonctionner le bouton RAZ.
Le courant est déjà limité par la R en série, le risque est limité. Mets un fusible si ça te rassure.
La diode de roue libre est actuellement soudée sur la carte , ce qui fait que le fil de liaison véhicule le courant de rupture, ce qui sera évité en soudant la diode directement sur la bobine (dans le bon sens).
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Ok, je pense m'y remettre ce WE.
Je vous tiens au courant.
Il y a le meme probleme avec le bouton RAZ sur la patte C3. ce n'est pas alimenté !
Bonjour,
Un truc d'abord: Sur la carte "équipe 2", la sortie "serial out" (ou A.0) est reliée au 0v. as tu coupé cette liaison, comme demandé? Sinon, il faut le faire, A.0 est une sortie, il y a un risque pour le µC.
Il y a une pullup sur C.3 dans les deux programmes, les deux C.3 des deux cartes sont reliés ensemble. Si on appuie pas sur le poussoir, on doit avoir 5V sur les deux, sinon, revoir le circuit.
MM
Dernière modification par mag1 ; 29/04/2023 à 14h11.
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Bonjour,
Non, pas encore, ca ne serait tardé. mais l'équipe 2 fonctionne très bien.
Je n'ai pas encore réactivé le "DONG", mais j'ai de temps en temps de reset de la carte sur l'équipe 1.
Maintenant, il y a du 5V, voila le circuit modifié pour le BUT et RAZ.(Je sais mes soudure sont déguelasses)
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
A.0 déconnecté de la masse.Je n'ai pas encore réactivé le "DONG", mais j'ai de temps en temps de reset de la carte sur l'équipe 1.
Pièce jointe 478591
Il y avait encore un dong sur l'equipe2 qui trainait.
Ca fonctionne bien maintenant.
Manque la communication entre les 2 équipes, et la partie gratuite....
La balle tombe dans un compartiment métallique, ça fait office de dong !
Encore merci