carte shield pour 2560 pour gestion de ports E/S.

bonjour
Contexte
Je suis président d'une association qui réalise des animations de type jeu de rôle pour les enfants et ados. Au sien de ces animations, on utilise divers gadgets électroniques construits à base 328 et 2560. Depuis quelques mois notre programmeur principal nous a quitté. J’assume donc, en plus mes autres rôles, Celui de programmeur avec mon faible niveau de programmeur.
Pour 2019 ; nous souhaitons réaliser de nouveaux montages nécessitants de nombreuses Entrées/Sorties avec une gestion de sons pour la version v1.0 .
Montage
En pj le fichier sous Eagle sur la carte que nous envisageons de créer.
Comme vous pouvez le voir, il y a des Entrées/Sorties, module mini MP3 sur port serie et un port SPI pour un module NRF24L01
• Les entrées sont de type tout/Rien. (Contact sec, interrupteur, ILS, Bouton poussoir,..).
• Les sorties sont toutes sur MOSFET (pour commander sirène, LED, lampe,…).
• Le module son est un MINI PLAYER MP3 classique sur port série
• Le module NRF24L01 sur SPI (il est prévu mais pas programmer pour 2019, problème de Main d’œuvre en programmation)
• D’autres extensions sont prévues comme écran couleur tactile sur port I2C ou SPI et peut être une module RF 433MHZ pour lire les contacteurs d’alarme type PIR et ILS de portes

Programmation
Avec mon faible niveau, je souhaite combiner les Entrées pour si la condition souhaite arrive alors je déclenche un évènement sur une ou des sorties avec un son .
Exemple
E1 à 0 +E2 à 1+E3 à0 alors S1 à1 + sons 0001
Mes questions
A )Le schéma de la carte vous parait viable tant sur le point électronique, choix des ports, .. .
Je suis preneur de vos commentaires, observations et corrections éventuelles.
b)Idem une programmation. (pour cette dernière , les conditions seront rentrées en software par ide. (j’ai pas d’idée pour l’instant)
Il y aura plusieurs cartes qui seront utilisées en même temps pour couvrir les zones de jeux et varier les histoires pour nos enfants.

Merci de votre aide pour l’électronique et les idées de programmation.

escape 2560.pdf (48.9 KB)

Il y a des choses qui m'intriguent avec votre schéma :

s'agit il d'une carte atmega2560 complète, avec des FETs pour les sortes, des resistances de pull up, un oscillateur à quartz?
mais
sans le circuit de programmation -ftdi, ch430, avrusb- (sinon, vous auriez un arduino mega)?
sans LEds (sur les voies série, une pour clignoter quand on débute, une autre pour savoir si on est alimenté)
en utilisant la moitié des entrées analogiques comme GPIO?

bonsoir
oui , dans un premier temps j'envisage la creation d'un carte complete avec cpu 2560,..... maintenant peut etre qu'un simple shield enfiché sur une arduino 2560 peut suffire .......

Pour le circuit de programmation , j'ai une interface FDI aAVr maison fait pour un systeme a base de 2560 qui fonctionne bien. j'ai donc repris son emploi.

Bonne remarque pour les leds, je rajoute donc le port digit3 et 4 sur lesquels j'envisage de mettre des LED RGB W2812

votre avis

escape 2560 v1.1.pdf (49.6 KB)

Bonjour,

c'est un bon début, le schéma a l'air correct, quelques suggestions :

la solution mega + shield est à prendre en considération : en cas d'ennui possible pour tout débutant, il n'y aurait qu'une moitié à remplacer ou à refaire

si c'est la version gratuite d'eagle qui est utilisée, la taille maxi sera ric-rac quelque soit l'option choisie

prévoir une adaptation de 5V vers 3.3V pour le nRF24L01+
prévoir un condensateur de 100μf 10v au plus près de l'alim du nRF24L01+

je ne connais pas le MINI PLAYER MP3, mais un condensateur du même tonneau près du connecteur ne peut pas nuire.
pour les sorties, les entrées digitales et analogiques, lcd, autres extensions prévues, il faut au moins mettre un condensateur de découplage de 100nF

prévoir un 2ème connecteur i2c pour autres extensions (pas encore) prévues

les couples mosfets + résistances ne peuvent pas être remplacés par un uln2003, + vite mis en oeuvre

en cours de téléversement, les +5v sont mélangés, vérifier que cela ne pose pas de problème, je pense notamment à la charge de l'ensemble sur l'alim du module convertisseur usb - sériet

il serait intéressant de savoir :

  • comment les inters et (ou) poussoirs seront câblés, et à quelle distance ils se trouvent par rapport à l'arduino
  • quel fil et quel type de connecteur

ne pas t'inquiéter de la programmation à ce stade, tu trouveras ici toute l'aide nécessaire

bonsoir
effectivement tes arguments pour le shield seul est peut plus judcieux . des erreurs de cartes en conception , j'en serai pas à la premeire .

Concernant le shield pour une 2560, avez vous quelque chose en archive en librairie sous eagle.?

Pour le uln2003 je connais pas cette bete !

Pour les inters ou boutons poussoirs, la liaison pourra etre filaire via connecteur GX12 ou 16, 1à 10metre ou par RF.

tu parles d'un condo de 100uf au plus pres nrf , actuellement j'ai deja une 47uf , cela ne suffit !
pour l'alim du nrf j'ai deja un convertisseur type 2936 3.3v . pas suffisant ?
pour l'alim du mp3, le condo sur l'alim de ce dernier 100uf environ.

prévoir une adaptation de 5V vers 3.3V pour le nRF24L01+

pour l'alim du nrf j'ai deja un convertisseur type 2936 3.3v . pas suffisant ?

trimarco232 veut parler je pense de l'adaptation des signaux SPI.
Normalement le NRF24L01 est tolérant au 5V sur le bus SPI.
Le problème risque plutôt de se situer au niveau réception des signaux SPI par l'ATMEGA2560.
J'ai déjà vu des montages NRF24L01 + ATMEGA328P qui ne fonctionnaient pas. Tout dépend de la valeur exacte de l'alimentation 5V de l'ATMEGA2560.
La plupart du temps ça passe, parfois non.

Le LM2936 suffit pour le NRF24L01, surtout avec 47µF sur le 3.3V.

Passer de 7V à 5V avec un LM7805 qui a un voltage drop out de 2V ... beurk.
Autant dire qu'il ne va rien réguler.
Si 500mA peuvent suffire, un LF50CV fera beaucoup mieux, sinon passer à 9V au lieu de 7.

J'ajouterais une petite résistance série de 220Ω sur la grille des MOSFETS, histoire de limiter le courant d'appel et protéger les sorties de l'ATMEGA2560.

Concernant le MPLAYER MP3 ne compte pas régler le volume par logiciel, à moins d'aimer le bruit numérique. Il vaut mieux régler le volume par logiciel au maxi, et atténuer ensuite à l'aide d'un potentiomètre pour obtenir un son de qualité.
Je vois des résistances de 1K en série sur RX TX. C'est un solution que l'on voit souvent, mais je l'ai essayée sans succès.
Ensuite tout dépend de l'impédance des haut-parleurs. Si tu ne veux pas investir dans un potentiomètre de puissance, ajoute un potentiomètre logarithmique 0.5W suivi d'un petit ampli de 2W ou plus.

@+

didier2010:
Pour le uln2003 je connais pas cette bete !

LE uln 2003 (7 voies) ou le uln2803 (8 voie) est un heptuple/octuple Darlington, avec diodes de roue libre, dans un boîtier au pas de 2.54 mm entre broches, les sorties étant en face des entrées. google vous ramènera la datasheet complète.
De mémoire, vous ne maîtrisez pas le courant (contraint par la mise en boîtier), mais ça peut être plus facile à câbler que des MOS FETs individuels et très suffisant pour un usage courant. C'était un grand classique il y a 15 ans.

didier2010:
je rajoute donc le port digit3 et 4 sur lesquels j'envisage de mettre des LED RGB W2812

votre avis

Pour les leds, je pensais plutôt à la paire toute bête résistance (200R 1K] +LED comme témoin de fonctionnement(rassure sur la présence de tension, l'arrivée/le départ de données série et le fonctionnement d'une voie, comme sur tout arduino....)
Mais je pense qu'il y a la place, dans le 25560, pour le code gérant des superbes W8212 (mais chères) : pour des jeux, c'est une bonne idée

bonjour
merci pour vos echanges
j'ai mis la version 1.2 de la carte.

pour le regulateur 5V, j'ai mis l"empreinte d'un 7805 mais j'utiliserai 2940 lowdrow.

Pour le module mini MP3 , je compte mettre un HP 8ohm , j'ai deja essaye, pour l'utilisation que je veux faire, ca conviendra.

Pour uln2003, le data sheet donne 500ma en sortie collecteur, je dois pouvoir monter plus haut ( dans certains cas pour des electroaimant de porte ) entre 1A à 2A. je pense rester sur le couple ILRD024 / resistance 100k.

Pour les led , je pense rester sur W2812 ou similaires . elles sont la pour donner un etat de l'entrée et/ou de la sortie ( en fonction de l'utilisationb)au joueur.

Question
1-maintenant quelqu'un at'il dans ces archives le plan d'un shield de 2560 car le cout d'un shield serait moins onereux.
2- utilisation d'ecran tactile 3 pouce ou + , j'ai cette idee pour une visu pour divers utilisations. auriez vous une idee des produits car je vois souvent un nombre enorme ( 20 à 40) de pin pour les faire fonctionner. j'ai peur de ne plus avoir la place.
3-j'ai entendu parler de capteur de metal (effet hall), ex: je pose une rondelle en metal ou une boite de boisson cazeuse en metal cela me declenche et m'envoie une information, cela est exploitable sur une AD ou Numerique?

merci

escape 2560 v1.2.sch.zip (117 KB)

Ton fichier .sch n'aura pas beaucoup de succès. PDF serait mieux.

IRLD024 : pas mal

maintenant quelqu'un a t'il dans ces archives le plan d'un shield de 2560

Tu veux dire : une empreinte ?
Tout dépend pour quel logiciel.

utilisation d'ecran tactile 3 pouce

Ecran tactile SPI en 3.5" : ICI

bonsoir

Pour l'empreinte c'est sous EAGLE v7.6.

merci pour le ecran tactile

le pdf de la v1.2 ( j'oublie à chaque fois)
une question en passant , tous mes mosfet sont sur des ports analogiques. Alors que sur le net je les vois connecter à des port digit! De mon cote , je l'utilise en tout ou rien pour une commande de puissance .
il n'y a pas de probleme !

escape 2560 v1.2.pdf (50.2 KB)

il n'y a pas de probleme !

Normalement les ports analogiques sont utilisables en entrées / sorties digitales.
Sur une NANO : toutes sauf A6 A7.
Sur une MEGA : il semblerait aussi

Si tu ne trouve pas d'emprunte pour un shield mega, tu peux partir du pcb du mega proprement dit (zip sur le site) et enlever tout ce qui ne te sert pas

Pour les ecrans graphiques tactiles: Velleman en fait un, avec un processeur graphique "classique" , pret à être enfiché et bien géré par la librairie mcufriend (/MCUFRIEND_kbv/MCUFRIEND_kbv.h)
(la lecture de cette librairie est impressionnante, l'auteur incorporant rapidement les derniers ecrans -ce qui s'apparente au remplissage du tonneau des Danaides).
La prise en main (identification de l'ecran, si possible -cas de Velleman VMA412 - , programmes de demo lisibles et adaptables, gestion du touch screen ) a été aisée pour moi.
Ce kit enfichable squatte tout un arduino uno , mais ils ont mis en plus une embase SD -je ne l'ai pas testée: il y a 8 fils de données, 5 pattes de contrôle (13 en tout) pour le tft+TS et 4 fils pour la SD .... Il fait les adaptations de niveau. Son coût est de l'ordre de 20E$

Utilisez plutôt des leds bêtes pour afficher un état : c'est moins cher, si besoin est, le logiciel est trivial (les 2812 sont plus chères et nécessitent une bibliothèque qui est un véritable bijou dans sa gestion de tous les processeurs -mais qui prend un peu de place et un peu de prise en main: est ce idéal pour débugguer?-

Si vous voulez les mettre au dessus d'un shield, il faut prévoir un kit d'empilement -stackable header kit- pour ce dernier: c'est affreux à câbler avec toutes les pattes à l'équerre (mais faisable).

Si je ne me trompe, les capteurs à effet Hall ne peuvent pas détecter des métaux non ferreux. Normalement, le signal est reconditionné -amplifié, mise à la bonne impédance- (sert à détecter des intensités: grandeur analogique- et éventuellement seuillé,pour faire une valeur logique:il faut le regarder avant d'acheter...

bonsoir
merci pour toutes ces informations.

Pour l'ecran , super, je prends note.

Pour les led effectivements il faut que je mette à plat les besoins. Mais je pars sur la base que pour une action quelconque sur une entrée , il faut un retour au joueur. ex bouton non appuyer ROuge, bouton appuyer VERT
ou sur une sortie, sortie à 0 led rouge, sortie à 1 ( electrovanne activée) led verte....
biensur toutes les entréeset ou sorties n'auront pas tout le temps besoin d'indication lumineuse.

Par contre pour information , j'ai cru commprendre que l'on ne pouvais tirer plus 20ma par port .
donc si sur mon schema j'ai 18 entrée, au pire j'aurai 18LED soit 0.020*18 = 400ma environ ! la 2560 va t'elle surporter !

v1.1.1.pdf (31.3 KB)

didier2010:
...

Par contre pour information , j'ai cru commprendre que l'on ne pouvais tirer plus 20ma par port .
donc si sur mon schema j'ai 18 entrée, au pire j'aurai 18LED soit 0.020*18 = 400ma environ ! la 2560 va t'elle surporter !

Bonsoir
parcourir çà
et dans ton cas voir section Atmel ATmega2560/1280/640 (MEGA) Current Specifications:

je ne sais pas quelle est la taille des leds prévues
pour des leds courantes, 3mm, cela fait un bail qu'on ne les trouve pratiquement plus qu'en haute luminosité, et que par conséquent 5mA sont largement suffisants !

bonjour
ok pour toutes ces informatons sur les LED , effectivement en SUPERLIGHT, elles eclairent bien , de vrai phare. ( pour avoir essayé)
cote choix.
Avec une carte 2560, les ports disponibles permettent de mettre une Quantité importante ( dans mon cas) de led bicolore 3, 5 ou 10 mm mais on monopolise toujours 2 port par led .

j'ai realisé une carte v1.0 à base 328 plus legere en port(en pj) .
Sur le schema , j'ai 2 port de sortie/et 4 prts entrée que je peux superviser par une led rgb/ par port. si j'emploie une bicolor, c'est pas possible.

votre avis sur cette carte a base de 328.

v1.0.pdf (27.7 KB)

Avec une carte 2560, les ports disponibles permettent de mettre une Quantité importante ( dans mon cas) de led bicolore 3, 5 ou 10 mm mais on monopolise toujours 2 port par led .

Pourquoi ne pas envisager de piloter les LEDs par un circuit spécialisé I2C ?
MAX7219 : 64 LEDs à cathode commune.
TLC5947 : driver de LEDs PWM 24 canaux
TM1637 : 48 LEDs anode commune + clavier matriciel à 16 touches.
TM1638 : 64 LEDs à anode commune ou cathode commune + clavier matriciel à 24 touches

bonsoir.

idée interessante. le TLC5947 pourrait etre interessant.
Sur ce dernier, si j'ai compris le DATAsheet, 4 signaux pour l'entrée data, SCLK XLAT et BLANK et le tout controler par un signal PWM venant de l'arduino.