| BALA2BAL (Bal à 2 balles) | |
|
+6CleoN DMARRION RaynalN Fantasio Derf Yves07 10 participants |
|
Auteur | Message |
---|
mistigris Membre
Age : 56 Localisation : Maisons Alfort Nombre de messages : 473 Date d'inscription : 11/04/2012
| Sujet: Re: BALA2BAL (Bal à 2 balles) Mer 20 Jan 2021 - 12:59 | |
| Très interessant : "Un module de canton nécessite:•Un microcontrôleur ATtyiny85: 1,37€•Un Mosfet canal N à enrichissement IRLU024N: 0,50€•2 résistances.Soit 1,87€, le but est atteint!" J'utilise regulierement des ATiny85 pour de petites animations… mais je préfere pour ce type de chose utilisée directement un arduino nano (env 3/4 euros chine) permettant un chainage et un retour d'info par exemple… pour le PWM un pont en H plutôt qu'un "simple mofset" marche arrière possible… (Env 3 euros Chine)… Mon projet utilisera le BAL de Dmarrion couplé à des Arduinos pour "tracer le chemin et les commandes, ainsi que la prise d'info avec capteur ou/et directement sur la BAL de Dmarrion" sur base d'un tableau avec retour TCO… pour piloter les servos des aiguilles aussi… et comme le dis DMarrion, les relais c'est pas si mal… J'ai essayé de m'en passer pendant longtemps avec des Mofset mais c'est "compliqué" et "au moins ausssi cher en soussous et en temps" pour un résultat identique… Par contre l'idée de faire un BAL à 2 Balles j'adore et vais suivre le sujet… Suggestion : je mettrai 5 euros pour être bien… un petit potard pour le ralenti et un autre pour la vitesse (comme Dmarrion) et un inter de décantonnement marche arrière / arrêt, le PWM à base de L298N et bien sur ULN 2003 pour le pilotage des relais et/ou diodes… Bon courage ! impatient de voir les schèmas et codes (et c'est pas de l'humour !) |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Mer 20 Jan 2021 - 17:18 | |
| Merci mistigris, Pour les schémas, y'aura pas grand chose à voir J'envisage (si possible) 3 pots sur un module commun de pilotage (qui utiliserait bien sûr un ATtyiny85) pour 3 vitesses différentes selon la zone. 3 parce qu'il n'y a que 6 broches. |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Lun 25 Jan 2021 - 17:33 | |
| Voici un schéma avec quelques nouveautés ! Suppression du module de pilotage global. Ajout d'un (ou plusieurs) "bus" de réglage de vitesse générale pour toutes les zones (ou un groupe de zones). Ajout d'une limitation de vitesse optionnelle par zone. La zone B n'en n'a pas. Sauf erreurs ou omissions . . . |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Lun 25 Jan 2021 - 17:44 | |
| L'autre chantier en cours . . . ça avance . . . |
|
| |
mistigris Membre
Age : 56 Localisation : Maisons Alfort Nombre de messages : 473 Date d'inscription : 11/04/2012
| Sujet: Re: BALA2BAL (Bal à 2 balles) Lun 25 Jan 2021 - 18:13 | |
| Joli Schéma… Il y a aussi L'ATTiny 84 (plus de broches ) et pas plus cher qui pourrait etre utilisable pour 2 cantons voir peut être 3… Concernant la detection, j'ai pas tout compris… Vous captez sur l'analogique divisé par 3 ? (c'est R3 et R6 par exemple qui s'en chargent ??)… parce que du 12 volts sur l'analogique d'un ATTiny ça grille à mon avis… il faudrait un composant complémentaire AMHA genre un capteur à effet de hall pour dissocier le circuit logique du circuit 12V… mais je me trompe peut être. Vivement le code ! |
|
| |
Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2367 Date d'inscription : 15/11/2019
| Sujet: Re: BALA2BAL (Bal à 2 balles) Lun 25 Jan 2021 - 18:43 | |
| @mistigris Certes, l'ATtiny84 a plus d'E/S et là je suis d'accord avec toi, mais je pense qu'un ATtiny85 par zone doit simplifier grandement le programme. Pas de soucis de multitâche vu que chacun s'occupe de sa zone. Bien sûr comme toi j'attends les précisions d'Yves07 Le code viendra plus tard! @Yves 07 Bonne continuation dans ton projet et je précise sans moquerie |
|
| |
Derf Membre
Age : 56 Localisation : 31 Nombre de messages : 990 Date d'inscription : 05/03/2011
| Sujet: Re: BALA2BAL (Bal à 2 balles) Lun 25 Jan 2021 - 19:13 | |
| Bonjour Beau projet. A suivre. Au niveau des signaux il faut se les câbler soit même. Ceux commercialisé sont souvent à cathode commune ou anode commune il me semble |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Lun 25 Jan 2021 - 20:06 | |
| - mistigris a écrit:
- . . .
Concernant la detection, j'ai pas tout compris… Vous captez sur l'analogique divisé par 3 ? (c'est R3 et R6 par exemple qui s'en chargent ??)
Oui, le courant d'entrée étant ridicule on peut utiliser par exemple 470K/220K (tiens, ça fait 3.14 !), les diodes de protection sur les entrées résisteront ... je crois - Citation :
. . .il faudrait un composant complémentaire AMHA genre un capteur à effet de hall pour dissocier le circuit logique du circuit 12V… mais je me trompe peut être.
Mon deal, c'est de mettre le moins de composants possible ! Une manie attrapée quand je bossais dans l'industrie Une boîte située Z.I des Petites Haies à Maisons Alfort. - Citation :
Vivement le code !
Je cherche des algorithmes d'accélération et de freinage "doux" @ Fantasio:Certains cantons seront composés de plusieurs zones successives. DMARRION dixit !Mais préférablement un seul logiciel . . . - Derf a écrit:
Au niveau des signaux il faut se les câbler soit même. Ceux commercialisé sont souvent à cathode commune ou anode commune il me semble
Bah, un Tiny85 en plus peut faire la conversion +1€ |
|
| |
mistigris Membre
Age : 56 Localisation : Maisons Alfort Nombre de messages : 473 Date d'inscription : 11/04/2012
| Sujet: Re: BALA2BAL (Bal à 2 balles) Lun 25 Jan 2021 - 20:50 | |
| "Z.I des Petites Haies à Maisons Alfort"… drôle, c'est là que j'habite… enfin à 2 mn à pied… Je vends ma maison d'ailleurs Je cherche des algorithmes d'accélération et de freinage "doux"… J'ai pas mal cherché dans le domaine avec des courbes expo etc… mais en fait, j'ai finalement opté pour un mixe par pallier avec bidouille avec test sur machine… après 100 Mhz évidemment… |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Sam 30 Jan 2021 - 11:13 | |
| Et pour trois résistances de plus: Choisir les durées d'accélération et de freinage sur chaque zône. Les coûts augmentent, on a maintenant pour une zône: - 1 Tiny85 - 1 Mosfet - 1 Diode - 3 Leds - 9 Résistances en option: - 1 Potentiomètre de vitesse locale (c'est le plus gros poste du budget !) - 1 Potentiomètre de vitesse générale Mise à jour du schéma à venir . . . |
|
| |
DMARRION Membre
Age : 66 Localisation : THEZEY ST MARTIN (54) Nombre de messages : 4343 Date d'inscription : 27/12/2010
| Sujet: Re: BALA2BAL (Bal à 2 balles) Sam 30 Jan 2021 - 12:37 | |
| Bonjour Yves,
Je viens de regarder ton schéma, et apparemment tu as une seule zone de détection par canton.
J'avais fait ça dans mes premiers travaux sur le BAL, ça marchait mais avec un inconvénient de taille. En effet, il s'est avéré lors des essais qu'il est pratiquement impossible de trouver une courbe de ralentissement qui convienne à tous les engins moteurs. Certaines machines s'arrêtent avec 4 V à la voie, d'autres roulent encore avec 2,5V. En conséquence, avec un même réglage de ralentissement certaines locos s'arrêtent au beau milieu du canton quand d'autres n'en finissent pas de ralentir mais roulent encore, et à l'extrême, grillent le feu rouge et entrent dans le canton suivant !
C'est pourquoi j'ai abandonné l'idée pour passer à 2 zones par canton : - Une zone principale où le train va ralentir doucement jusqu'à se stabiliser sur une "vitesse d'approche" - Une zone dite d'arrêt ou le train ralentit à nouveau jusqu'à l'arrêt. Avec ce système, il est bien plus facile de faire arrêter les trains près du signal quelque soient les performances des locos. A noter que seule la détection est doublée, c'est le même transistor de puissance qui alimente les 2 zones qui ne sont électriquement séparées que par des diodes (à chaque instant la tension à la voie est la même dans les 2 zones). |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Sam 30 Jan 2021 - 14:00 | |
| Salut Dominique - DMARRION a écrit:
- . . .
Je viens de regarder ton schéma, et apparemment tu as une seule zone de détection par canton.
J'avais fait ça dans mes premiers travaux sur le BAL, ça marchait mais avec un inconvénient de taille. En effet, il s'est avéré lors des essais qu'il est pratiquement impossible de trouver une courbe de ralentissement qui convienne à tous les engins moteurs. Certaines machines s'arrêtent avec 4 V à la voie, d'autres roulent encore avec 2,5V. En conséquence, avec un même réglage de ralentissement certaines locos s'arrêtent au beau milieu du canton quand d'autres n'en finissent pas de ralentir mais roulent encore, et à l'extrême, grillent le feu rouge et entrent dans le canton suivant !
C'est pourquoi j'ai abandonné l'idée pour passer à 2 zones par canton : - Une zone principale où le train va ralentir doucement jusqu'à se stabiliser sur une "vitesse d'approche" - Une zone dite d'arrêt ou le train ralentit à nouveau jusqu'à l'arrêt. Avec ce système, il est bien plus facile de faire arrêter les trains près du signal quelque soient les performances des locos. A noter que seule la détection est doublée, c'est le même transistor de puissance qui alimente les 2 zones qui ne sont électriquement séparées que par des diodes (à chaque instant la tension à la voie est la même dans les 2 zones). Il y a quinze jours tu écrivais: Je profite de ce post pour revenir sur la notion de canton, je pense qu'elle est mal comprise par la plupart des modélistes qui confondent souvent cantons et zones isolées, et quand tu dis qu'il te faut 12 cantons pour un réseau qui tient sur 2m², ça me conforte dans cette idée.
J'avais capté! Du coup il suffit de renommer le "module de canton" en "module de zone" et d'en utiliser autant que nécessaire pour constituer un canton. Et Voilà Vu leur coût, pas de problème La vitesse, la durée d'accélération et la durée de freinage sont propres à chaque zones. Le schéma mis à jour : Reste à terminer et tester le logiciel |
|
| |
DMARRION Membre
Age : 66 Localisation : THEZEY ST MARTIN (54) Nombre de messages : 4343 Date d'inscription : 27/12/2010
| Sujet: Re: BALA2BAL (Bal à 2 balles) Sam 30 Jan 2021 - 21:47 | |
| En l'état actuel chacun de tes modules se comporte comme un canton : s'il est occupé le module précédent retiendra les trains, ce qui n'est pas le comportement attendu de 2 zones constitutives d'un même canton. Je pense que pour pouvoir faire un canton avec plusieurs modules, il te faudra personnaliser le logiciel de chacun des modules suivant sa place dans le canton pour obtenir le résultat recherché. |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Dim 31 Jan 2021 - 10:35 | |
| - DMARRION a écrit:
- En l'état actuel chacun de tes modules se comporte comme un canton : s'il est occupé le module précédent retiendra les trains, ce qui n'est pas le comportement attendu de 2 zones constitutives d'un même canton.
Euh ... oui, mais pourquoi pas ? Il n'est pas censé y avoir de train sur la zone amont, donc peu importe qu'elle soit ou non alimentée. Ai-je râté une subtilité ? Peut être pour une UM "longue" ? - Citation :
- Je pense que pour pouvoir faire un canton avec plusieurs modules, il te faudra personnaliser le logiciel de chacun des modules suivant sa place dans le canton pour obtenir le résultat recherché.
Je tente d'éviter ça à tout prix ! |
|
| |
DMARRION Membre
Age : 66 Localisation : THEZEY ST MARTIN (54) Nombre de messages : 4343 Date d'inscription : 27/12/2010
| Sujet: Re: BALA2BAL (Bal à 2 balles) Dim 31 Jan 2021 - 11:08 | |
| Pour résumer, le problème que j'évoquais est que lorsqu'un train doit s'arrêter dans un canton, il est presque impossible à cause des différences de performances des locos (en analogique) d'obtenir l'arrêt des trains à l'endroit voulu si on assigne la fonction "ralentissement jusqu'à l'arrêt" à un seul contrôleur de canton. La parade la plus simple utilisée par presque tous les systèmes (du commerce ou faits maison) est de définir dans un même canton 2 zones distinctes : la première zone fait ralentir le train jusqu'à atteindre une vitesse d'approche, la deuxième zone, plus courte, le fait s'arrêter sur quelques cm. Tu proposes de faire un canton avec deux de tes modules pour arriver à l'équivalent. Je comprends bien l'idée, mais je me pose 2 questions : 1) comment fais tu pour que le premier module ralentisse seulement le train et que le deuxième l'arrête ? , 2) comment fais tu pour gérer la présentation des signaux ? Si 2 modules forment un canton, seul le premier doit être équipé d'un signal (l'entrée du canton), ce signal devant présenter le sémaphore lorsque le 1° ou le 2° module sont occupés, et l'avertissement lorsque le canton suivant (et non le module suivant) est occupé. C'est sûrement possible, mais pour ça la personnalisation des instructions des microcontrôleurs pour chacun de ces 2 modules me parait incontournable Ton but étant de faire à très bas prix un block fonctionnel, le fait d'avoir 2 scripts différents suivant les modules n'augmente pas le coût de réalisation, c'est juste du boulot supplémentaire pour toi ! |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Dim 31 Jan 2021 - 13:56 | |
| Mais oui, tu as raison bien sûr ! Chaque zone disposant d'une entrée analogique "vitesse", il faudrait dans certains cas la ralentir sans pour autant l'arrêter. Des OU à diodes, ou des ponts de résistances peut être depuis les sorties STOP des zones aval . . . . |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Sam 6 Fév 2021 - 10:54 | |
| Des nouvelles du front.
Merci à SavignyExpress qui m'a fait passer quelques outils grâce auxquels je peux compiler du C pour les AVR ou le PC . . . au choix ! |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Mar 9 Fév 2021 - 18:58 | |
| |
|
| |
SavignyExpress Membre
Age : 61 Localisation : yyy Nombre de messages : 2043 Date d'inscription : 10/10/2010
| Sujet: Re: BALA2BAL (Bal à 2 balles) Mer 10 Fév 2021 - 12:16 | |
| Hello Yves,
Pour la PWM, il faut utiliser le générateur de waveform couplé à l'un des 2 timers. La durée de l'impulsion sera définie par la valeur d'un registre OCRx. Le timer et le générateur de waveform ont l'avantage de tourner en parallèle tandis qu'une interruption toutes les 30 us pénalisera trop le programme principal, surtout si le processeur tourne à 1 MHz.
Je posterai très prochainement les exemples de code pour Attiny45.
Meilleures salutations.
PS: Bravo pour l'ampli à tubes présenté sur ton site ! |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Mer 10 Fév 2021 - 13:27 | |
| - SavignyExpress a écrit:
- . . .
Pour la PWM, il faut utiliser le générateur de waveform couplé à l'un des 2 timers. La durée de l'impulsion sera définie par la valeur d'un registre OCRx. Le timer et le générateur de waveform ont l'avantage de tourner en parallèle tandis qu'une interruption toutes les 30 us pénalisera trop le programme principal, surtout si le processeur tourne à 1 MHz. . . . Hello ! Ca fait partie des fonctionnalités aux quelles je n'ai encore rien compris et qui pourraient effectivement simplifier les choses Quoi qu'il en soit, je suis maintenant sûr à 99,9999% que ça va marcher ! J'ai lancé les appros Pour les amplis à tubes, j'ai un sîte "spécialisé" http://dissident-audio.com |
|
| |
SavignyExpress Membre
Age : 61 Localisation : yyy Nombre de messages : 2043 Date d'inscription : 10/10/2010
| Sujet: Re: BALA2BAL (Bal à 2 balles) Mer 10 Fév 2021 - 15:56 | |
| Bonjour Yves, Voici l'exemple tiré de mon projet actuel. - Code:
-
// Sorties. #ifdef AVR #define OSCILLO _BV(PB0) #define POS_PWM _BV(PB1)
// Relais d'inversion du sens de marche et leds d'indication. #define SET_REL _BV(PB4) #define CONFIG_DDRB (POS_PWM|SET_REL|OSCILLO) #endif
// Timer 1 #define CONFIG_TIMER1 (_BV(PWM1A)|_BV(CTC1)|_BV(COM1A1)|_BV(CS12)|_BV(CS11)|_BV(CS10)) // Clear on compare, pwm, prescaler = 64 #define PFM_PULSE 40
Dans le programme principal, avant de partir dans la boucle infinie: - Code:
-
// La broche PWM doit être définie en sortie. DDRB = CONFIG_DDRB;
// Timer 1 TCCR1 = CONFIG_TIMER1; OCR1A = PFM_PULSE; OCR1C = 4 * PFM_PULSE;
La sortie PWM (PB1) doit être paramétrée comme une sortie. Le timer 1 est utilisé avec une division de la fréquence d'horloge par 64. Le processeur tournant par défaut à 1 MH7, un incrément du timer se produit toutes les 64 us. Le registre OCR1A contient la durée de l'impulsion, ici 40 * 64 us = 2.56 ms. Le registre OCR1C contient la durée totale (période), ici 10.24 ms. Ces 2 registres peuvent être mis à jour dans le programme principal. Dans mon projet, je prévois de fixer la durée de l'impulsion et modifier la période pour faire du PFM, mais pour du PWM il faut faire le contraire et modifier la durée de l'impulsion. Pour mettre au point ton ampli à tubes tu as sans doute un oscillo, c'est très utile pour voir si les signaux ont bien l'allure attendue. Bonne suite de réalisation. |
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Mer 10 Fév 2021 - 17:16 | |
| Ah . . . . D'où viennent ces raccourcis: "_BV(xyz) " ? Une doc ou ils seraient listés et définis ? Un #include <> ? |
|
| |
CleoN Membre
Age : 69 Localisation : 33 Bouliac Nombre de messages : 1624 Date d'inscription : 26/11/2010
| Sujet: Re: BALA2BAL (Bal à 2 balles) Mer 10 Fév 2021 - 17:59 | |
| C'est défini dans avr/sfr_defs.h
#define _BV(bit) (1 << (bit))
Lequel include est appelé par avr/io.h
qui contient une multitude d'includes, chacun étant spécifique d'un modèle de microcontroleur !
Il y a de sacré jeux de piste là dedans .....
A propos des defines que tu as mis en tête de ton fichier .c: #define PB0 1 #define PB1 2 #define PB2 4 #define PB3 8 #define PB4 16 #define PB5 32
Ces définitions existent déjà dans avr/io.h et suivants, avec évidement d'autres valeurs, ce qui risque de provoquer des catastrophes.
Il y a souvent de multiple dénominations pour la même chose, PORTDx, PDx,.... ce qui ne simplifie pas toujours la compréhension.
Accessoirement, il est préférable de placer tes includes tout au début de ton fichier .c
Bon courage.
|
|
| |
Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: BALA2BAL (Bal à 2 balles) Mer 10 Fév 2021 - 18:12 | |
| Bon, pourquoi pas ! Le modèle de microcontroleur est il celui défini dans le Makefile: MCU = attiny85
et il se débrouille avec ça ? |
|
| |
CleoN Membre
Age : 69 Localisation : 33 Bouliac Nombre de messages : 1624 Date d'inscription : 26/11/2010
| Sujet: Re: BALA2BAL (Bal à 2 balles) Mer 10 Fév 2021 - 18:33 | |
| Normalement oui !
Quel IDE utilises tu ? ou bien fais tu une compilation "à la main" en appelant directement avr-gcc ?
Sur Windows ?
As tu déjà lancé une compilation de ce programme ?
|
|
| |
Contenu sponsorisé
| Sujet: Re: BALA2BAL (Bal à 2 balles) | |
| |
|
| |
| BALA2BAL (Bal à 2 balles) | |
|