Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - trimarco232

Pages: [1]
1
Composants / arduino nano : faut-il se dépêcher d'en acheter ?
« le: septembre 05, 2021, 11:32:46 am »
Bonjour,
c'est en passant commande pour des nouveaux avr que je me suis rendu compte d'une indisponiblilté durable - 1 an - de ces produits microchip
le covid et la pénurie mondiale de semiconducteurs sont passés par là
pour les atmega328p chers à nos uno, nano, micro, c'est pareil
le microcontrôleur coutait 1€50 du temps de sa disponibilité, c'est 3-4€ maintenant
il serait logique que cette hausse de prix et cette pénurie touchent aussi les arduino à base de ces atmega : pour l'instant, il y a encore du stock et des prix corrects : si vous avez des projets dans les ... 2 années à venir, je me permetrais de vous suggérer d'anticiper
affaire à suivre
les prix ont été multipliés par 4 sur beaucoup de produits, et comme la tva s'est ajoutée, ça fait x5 ...

pour ma part, je vai passer sur stm8s pendant cette période (repasser, en fait, je connais) : mais bien que fabriqués en chine, donc en principe non soumis aux aléas de la production occidentale, il subissent quand-même une hausse de tarif par ricochet
j'en ai commandé une cinquantaine pour être tranquile, on verra bien si le vendeur veut les expédier au prix affiché ...

2
Bonjour,
j'avais présenté le projet ici : https://forum.e-train.fr/viewtopic.php?f=18&t=93174
l'interrêt, c'est que la découpe de la cible, la couleur noire du fond, le liseré blanc, et le câblage de la cible viennent avec la fabrication du pcb ; on pourrait commander les pcb avec les leds directement soudées, "plus qu'à" mettre les visières et poser la cible sur le mât ...
comment ça marche ? il y a plusieurs manières de faire, voici la mienne
d'abord, à quoi ressemble le dessin du pcb, devant, et derrière :

3
Vos projets / projet : barrette à led strip rvb
« le: avril 26, 2021, 10:56:22 pm »
bonsoir,
le résultat de ma cogitation de la journée :
le but, c'est d'utiliser un strip rvb du commerce, genre WS2812B, pour pouvoir disposer les leds où on veut et on peut, dans l'axe, sur la longueur d'une voiture voyageurs
sur la pj., la barrette du haut est vue du haut et celle du bas ... du bas
les strips sont sécables, cela permet de les interrompre, si pas besoin de led, ou si il y a une traverse qui gène au niveau de la toiture ; on ne le voit pas, mais les lignes gnd, data et +5v sur la barrette sont étamées, ce qui permet de souder les extrémités de chaque segment de strip ; la ligne data de la barrette est en fait une suite continue de ponts de soudure, interrompus pour éviter de cravater les datas des segments de strip, et sur lesquels on peut facilement faire la continuité de la data entre 2 strips
des pastilles dont disposées régulièrement jusqu'à la fin de la barrette, car celle-ci est sécable, pour pouvoir s'adapter à la longueur des voitures ; ainsi on dispose au droit de l'extrémité coupée de la barrette, de pastilles permettant de raccorder au rail, mettre (au choix de l'extrémité) le condensateur du 15v et le supercondensateur du 5v, ainsi que la suite gnd+data+5v pour pouvoir mettre des leds rvb hors barrette, je pense notamment aux feux blancs et rouges d'une voiture pilote
à la base, le mcu chargé de décoder le dcc n'utiliserait que 2 broches : le dcc et la data des leds ; c'est pour ça que je me suis tourné vers un attiny412 ; ce sera l'occasion pour moi (pour nous ?) de découvrir le nouveau core avr
il reste des broches de libre, alors je les ai affectées : détection ABC (pour quoi faire ?), allumage/extinction par "contact" capacitif (en mode analogique), commande de la charge du supercondensateur

4
Bonjour,
pour signaler l'existance d'un mcu à 99% compatible avec l'ATMEGA328P
il a quelques avantages, notamment de fonctionner à 32MHz au lieu de 16MHz, cela peut être très intéressant si vous avez besoin de + de puissance, vitesse sur un nano ou un mini
j'en ai brièvement parlé ici https://forum.arduino.cc/index.php?topic=729831.0
vous y trouverez les liens utiles

5
Bonjour,
pour vous informer qu'après un bref examen du système C/MRI, je me suis rendu compte du fait que mes cartes décrites :
ici https://forum.locoduino.org/index.php?topic=728.0
et ici https://forum.locoduino.org/index.php?board=11.0
présentent une compatibilité certaine C/MRI / JMRI, alors que ce n'était pas prévu au départ

la carte "TCO en mode analogique" a en effet une interface rs485, et 48 sorties sur 74hc595, dont 40 sont dotées de mosfets pour la commande de moteurs peco ; on doit donc pouvoir la faire tourner sous C/MRI avec un minimum d'adaptations, je pense notamment :
- tenir compte du fait que c'est un micro pro (leonardo)
- utiliser la cdu incorporée, ce qui demande d'attendre la recharge de la capa avant la prochaine commande d'aiguille ; sur la carte ça se fait en mesurant la tension aux bornes de la capa par diviseur de tension et une entrée adc de l'arduino

il n'y a pas de registre à décalage pour lire des entrées, mais avec un peu de code on peut par exemple utiliser l'i2c et des modules mcp23018


la carte "8 relais à 74HC595" peut être commandée par un arduino 'par exemple un nano muni d'une interface rs485, qui peut donc commander 6 cartes à 8 relais
on pourait-même raccorder les cartes "8 relais à 74HC595" à une carte "TCO en mode analogique", (comme c'est prévu "chez moi"), mais ce serait moins léger au niveau au niveau de la programmation


6
Shields et Modules / carte 8 relais à 74HC595
« le: mars 03, 2020, 07:37:00 pm »
Bonjour,
abondance de biens ne nuisant pas, je vous propose cette carte destinée à alimenter (ou pas) les zones d'arrêt d'un réseau analogique


les points particuliers sont :
- alim en 5V, y compris les relais pour simplifier
- seul le contact travail est sorti, il peut avoir pour origine au choix le rail de gauche ou de droite, par pont de soudure
- registre 74HC595 pour simplifier le câblage et permettre le chaînage de plusieurs modules
- ULN2803 pour simplifier la vie
- pas de LED ni d'optocoupleur

7
Le logiciel DCC++ / DCC++ avec ESP32 ?
« le: octobre 05, 2019, 08:08:01 pm »
Bonjour,
juste pour vous dire que j'ai écrit un bout de code qui pourrait servir de petit début à une station dcc animée par un esp32

le but est de générer des bits 0 et 1 en dcc, selon un principe proche de celui utilisé pour dcc++

explication :
un bit dcc ressemble à une période pwm, dont la durée est 200µs pour le bit 0 et 116µs pour le bit 1, le rapport cyclique étant dans tous les cas 1/2 ... simple ...
il faut donc après l'émission de chaque bit dcc, générer une interruption au service de laquelle on indiquera au timer la prochaine période à respecter : si la valeur du bit dcc change, on rentre la nouvelle période (200 ou 116µs) ; si la valeur du bit dcc ne change pas, il n'y a rien à faire /// dans tous les cas on dispose de 58µs pour rentrer la nouvelle période, un éternité pour l'esp32

auparavant il faut configurer un canal de timer :
- en pwm
- avec un rapport cyclique de 1/2
- pour qu'une interruption se déclenche à la fin de chaque période

concrètement :
(je suis loin d'être un pro du soft, je me suis débrouillé avec des fonctions dénichées dans le sdk, on peut sûrement faire mieux)

on commence par les déclarations :
// on utilise un module qui s'appelle ledc ... selon la tradition esp32 les modules pwm servent d'abord aux leds ...
#include "driver/ledc.h" // les fonctions spécifiques sont décrites ici

const int dcc_pin = 19;  // choix de la broche dcc out : n'importe laquelle peut être utilisée /// en se servant de la matrice du gpio

// setting PWM properties
#define dcc_sig_1_freq 8621 // le sdk demande la fréquence : celle-ci correspond à ~116µs ... quelque chose arrondira à la valeur exacte
#define dcc_sig_0_freq 5000 // 200µs (ici j'utilise des macros pour définir ces constantes)
const int dcc_pin_channel = 0; // il y a foison de canaux pwm, j'ai choisi le 1er
const int dcc_sig_resolution = 1; // nombre de bits définissant la résolution du pwm ; ici un seul bit (2 valeurs différentes) suffit
/// la résolution, c'est la granulométrie du rapport cyclique : la + grosse (ne) permet (que) de faire du 50%
const int dcc_sig_duty = 1; // pour le rapport cyclique de 1/2 il faut la valeur 1 (si non c'est 0 ... )
// initialisation de la variable au bit dcc 0 ; why not ; noter que la fonction utilisatrice veut le type uint32_t pour la fréquence
uint32_t dcc_sig_freq = dcc_sig_0_freq;

et voici le setup :
void setup() {
  // configuration du canal pwm 0 avec une fréquence et la résolution
  ledcSetup(dcc_pin_channel, dcc_sig_freq, dcc_sig_resolution); // ledc les faire ...
  // relie le canal pwm à la pin choisie pour la sortie pwm /// ... et dcc par conséquent
  ledcAttachPin(dcc_pin, dcc_pin_channel); /// ! pour détacher (si besoin), il faut impérativement passer par la matrice gpio
  // fixe le rapport cyclique du canal à 1/2
  ledcWrite(dcc_pin_channel, dcc_sig_duty);
  // programme l'interruption à la fin de la période
// je n'ai pas trouvé de manière élégante pour le faire avec le timer, alors je me suis rabattu pragmatiquement sur une interruption provoquée ... par le basculement de la pin
  attachInterrupt(dcc_pin, dcc_sig_isr, RISING); // l'interruption "dcc_sig_isr" provoquée à la fin de chaque période (voire au début de la suivante)
}

et l'isr :
pour vérifier le fonctionnement je génère une suite de 0/1/0/1 ad lib
il faudra adapter pour dcc++
void dcc_sig_isr() {
  if (dcc_sig_freq == dcc_sig_0_freq) dcc_sig_freq = dcc_sig_1_freq ; // inverse la valeur du bit dcc précédent
  else dcc_sig_freq = dcc_sig_0_freq ;
// la fonction qui permet d'écrire la nouvelle fréquence demande :
// - le mode : ici high speed, (au pif) qui va bien
// - le timer utilisé : j'ai supposé bêtement que le canal pwm 0 correspond au timer pwm 0 /// je crois qu'il y a 2 canaux par timer
// - la fréquence, of course
  // ledc_set_freq(ledc_mode_tspeed_mode, ledc_timer_ttimer_num, uint32_t freq_hz)
  ledc_set_freq(LEDC_HIGH_SPEED_MODE, LEDC_TIMER_0, dcc_sig_freq); // new -or not - period value
}

pour ceux qui veulent vérifier, un petit main qui fait travailler l'esp32 :
void loop() {
  delay(10); // mettez ici ce que vous voudrez
}


les mesures réalisées donnent des résultats très corrects : il manque parfois 41ns à une période. Peut-être mon modeste matériel, en tous cas, je n'ai pas les moyens d'en trouver la cause, et on est de toute façon largement dans les clous


 

 

8
Shields et Modules / TCO en mode analogique, avec pcb
« le: mars 02, 2019, 08:43:24 pm »

Bonjour,

ce projet fait suite à un besoin particulier, pour la réalisation de 4 (au minimum) postes d'aiguillages en H0, 2 sont équipés de moteurs d'aiguille peco, les 2 autres de moteurs mtb. Le mode est analogique, mais c'est évidemment compatible avec une commande des trains en dcc ou autre

afin de ne pas encombrer avec un sujet qui par sa nature suscite relativement peu d'intérêt, je ne ne donne que quelques éléments ici. Les personnes souhaitant voir + de détails peuvent consulter le blog dédié

je ne suis pas un spécialiste de l'arduino, mais agissant au sein d'un club de mf, ce choix s'est imposé pour que le projet soit accessible au + grand nombre

les tco assurent la prise en compte de boutons poussoirs d'itinéraires, ainsi que l'affichage des voyants leds indiquant les itinéraires formés et les positions des aiguilles. Il n'y a pas de rétrosignalisation de la fin de course, on admet que la commande envoyée a fonctionné, ni de rétrosignalisation de l'occupation des voies. La commande et la sécurité sont de la responsabilité des opérateurs

une carte avec circuit imprimé (pcb) est réalisée pour la partie commande des aiguilles. Les composants sont majoritairement des cms, toutefois très faciles à souder : SO à pas de 1.27mm pour les CI, taille mini 1206 ou SMA pour les 2 pattes
-> mais l'ensemble pourrait très bien être construit avec des modules tout faits du commerce

les synoptiques :
tco pour mtb :



tco pour peco : (la partie purement tco est identique)



les vues 3d des cartes :
(un air de famille avec la Carte 24 entrées 48 sorties pour JMRI)
pcb pour mtb :
voir pj


pcb pour peco :
voir pj


(les méthodes pour insérer des images sont toutes simples : copier l'adresse de l'image après enregistrement, puis modifier, puis coller l'adresse dans la balise img)

prochainement :
photo d'un tco
ultérieurement car j'attends des composants :
photos d'un pcb terminé



* mise en place des images par Dominique  ::)
-> merci, je tacherai la prochaine fois

Pages: [1]