PCB Finaux
Révision C
mercredi 23 juin 2010
LEDs
J'ai reçu plusieurs types de LEDs pour tester
5mm Flat top Vert 15 000 mcd
3mm Flat top Rouge 6000 mcd
Leds 5 mm Rouge, Vert, Bleu 15 000 mcd
Le résultat n'est pas concluant. Avec ces LEDs, nous ne sommes pas en mesure de bien éclairer une dalle. Nous devons oublier l'idée d'avoir des dalles de 1 pieds.
J'ai trouvé un site internet traitant uniquement sur les LEDs. Je me suis inscrit sur le forum et j'ai créer un nouveau sujet sur notre problématique courante...
On me propose d'utiliser des LEDs Superflux RGB.
En théorie, elles illuminent énormément et ont un angle très grand de 140 degrés.
De plus, elles pourraient faciliter le montage puisqu'elles disposent de 3 LEDs couleurs dans un même package. Un autre avantage à ceci est que le mélange de couleur se fait sans problème.
Cependant... Le prix est très élevé. Environ 200$ pour 500 pièces. De plus, nous aurions besoin de minimum 4 LEDs pour allumer une dalle de 15 cm par 15 cm.
Pour 15cm, notre plancher serait diminué de moitié en terme de superficie soit 6pieds carré.
Encore une fois, il faudra effectuer des tests.
mercredi 16 juin 2010
I2C le verdict
Finalement, j'ai changé de Buffer i2c puisqu'il était assez difficile de se procurer les pièces de la compagnie Hendon Electronic en payant un prix abordable. Je me suis dirigé encore une fois vers la compagnie Texas Instruments pour ces échantillons gratuits. J'ai commandé deux P82B96 pour y effectuer des tests.
Tout marche parfaitement. J'ai utilisé un câble de plus de 20 pieds et la communication i2c ne fait pas défaut avec un débit satisfaisant. Il faudra donc que je retouche au design pour incorporer ces buffers.
Tout marche parfaitement. J'ai utilisé un câble de plus de 20 pieds et la communication i2c ne fait pas défaut avec un débit satisfaisant. Il faudra donc que je retouche au design pour incorporer ces buffers.
jeudi 3 juin 2010
PCB Contrôleur
J'ai finalement réalisé le PCB du contrôleur. J'ai, de plus, incorporé les buffers i2c sur le design.
Il fait 3.855" par 1.570".
Le schéma a dû être mis-à-jour
mercredi 2 juin 2010
Modèle de conception
J'ai fait la conception d'un modèle vue de haut afin d'illustrer le concept. Ce schéma représente un ensemble de 4 tuiles. Le plancher, assemblé, représentera 36 fois ce schéma. Jusqu'à présent, on prévoit 5 ensemble de LEDs : Aux quatre coins ainsi que dans le milieu. De cette façon, les tuiles devraient être illuminées assez uniformément (on l'espère!). Un câble avec 4 conducteurs parcours les 5 ensemble de LEDs.
Le deuxième schéma illustre la façon dont seront connectés les LEDs. On peut facilement apercevoir qu'elle seront connectées en séries. On aura une tension de 12 V (minimum) qui traversera les LEDs. Le connecteur (A) sera connecté sur le Driver de LEDs. Il y aura donc 4 connecteurs comme celui-ci par dispositifs.
Il sera très important de mettre en oeuvre une méthode, une structure de travail afin de réaliser ce montage de façon efficace, rapide et professionnel. Nous sommes plusieurs dans l'équipe et nous devrons agir en travail à la chaîne.
Le travail comporte beaucoup de tâches:
Incorporation des LEDs
- Percer les trous pour les LEDs
- Tester les LEDs
- Insérer les LEDs dans des Sockets et ensuite dans les trous
- Couper tous les câbles avec des dimensions précises
- Insérer les connecteurs (A) sur le câble
- Dégainer et étamer chaque bout de fil
- Souder chaque LEDs et mettre une parois de tube thermo-rétracteur (Shrink)
- Fixer les câbles sur la parois
Nous devrions être 8 dans l'équipe en théorie. Si chacun s'acquitte d'une tâche respective, je crois que tout ce travail peut être réalisé dans l'espace d'une fin de semaine assez chargée.
Communication I2C.. Finalement
Tout les circuits intégrés, dont je suis tombé jusqu'à présent, pour augmenter la capacité maximale, doivent être installés sur les deux côtés de la communication I2C (sur le PIC et sur le Driver). Finalement, j'ai trouvé ce site internet. Cette compagnie, sous le nom de Hendon Semiconducteur, se spécialise dans la conception de buffers i2c.
Le IES5501 semble rencontrer les spécifications demandées. Cependant, je ne sais toujours pas s'il faut l'installer des deux côté de la communication.
Pour remédier au problème, j'ai envoyé un message électronique à la compagnie pour être sur que ce chip est bien celui que je cherche.
J'ai reçu une réponse très complète qui vient solutionner le problème.
Il m'a indiqué que ce n'est pas conseiller d'utiliser un protocole i2c dans ce genre de situation, mais que c'était réalisable.
Hi,
I'm a student at the university of Sherbrooke (Canada Quebec). Me and my team are doing a School project. We are doing a dancefloor (12 x 12 ft.) with 144 separated tiles. we're using 36 I2C LEDs Drivers. Like this:http://tiny.cc/2mepu
I use a PIC controler which I made six I2C BUS using the I/O. The I/O only have 50 pf capacitance.
I want to use IES5501 chip to solve this problem. My question is: with this integrated circuit, do I need to use a chip on both side of the communication.
One on each I2C bus and an another on every LED Driver?
Thank you!!
Alex (learning english)
You can use the IES5501 to solve your problem when your problem is that the ports of the PIC controller are allowed only 50 pF and the wiring that is 12 ft long has a much larger capacitance.
The capacitance of the wiring depends on the type of wire that you use. Two cables that we suggest are a) Flat 4-core telephone wire - if your wired phones use that for connection or b) communication cables as used for the LAN/Ethernet connection to a PC. They are called Cat5e or Cat6 cables - usually have a blue covering.
If you use communication cables you should send each of the I2C signals (SDA and SCL)on separate cable pairs and for each cable pair connect SCL on one wire with ground on the other, and then SDA on one wire and ground on the other. If you use the telephone wire, which has 4 wires in a straight line like a ribbon cable, make the two inside wires ground and the use the outer two wires for the SCL and SDA signals. Both types of cable will have about 50 pF / meter of cable, or about 200 pF for your 12 feet long wires.
If you use IES5501 on each I2C line, near the controller, you will NOT need any more IES5501 at each LED driver. Because the 12 foot cables have less than 400 pF they can be driven by IES5501 and the slaves (=LED drivers) should also be able to drive the cables without any buffers (IES5501).
The pull-up resistors that you use on the 12 foot cables should be the smallest resistance allowed by the slaves. For example, if the bus is a 5 V bus then normal LED drivers have at least 3 mA drive capability and the pull-up would be 5 V / 3 mA = 1.66k. You could use 1.8k but in practice 1.5k will be OK too.
You still need pull-ups on the microcontroller port lines. They can be whatever value is recommended for the processor.
While we believe your project will work OK as planned, it is not a system that we would recommend for professional/commercial use because it might be affected by interference from other wiring or cell phones etc. For an application like yours, where there will not be any serious problems if the communication system has some errors, it is OK. You just might tell the person who is writing the software for the processor to include some way to handle communication errors. For example, if the PIC processor has registers with bits to indicate I2C data transmission failures, then make sure the software program includes ways to recover from the errors.
Good luck with your project ! If you ever have to build a professional system please ask again and we can refer you to more complex solutions that would make the I2C bus wiring more tolerant to interference.
Regards,
Angelynn Lim
Customer Account Manager
Le IES5501 semble rencontrer les spécifications demandées. Cependant, je ne sais toujours pas s'il faut l'installer des deux côté de la communication.
Pour remédier au problème, j'ai envoyé un message électronique à la compagnie pour être sur que ce chip est bien celui que je cherche.
J'ai reçu une réponse très complète qui vient solutionner le problème.
Il m'a indiqué que ce n'est pas conseiller d'utiliser un protocole i2c dans ce genre de situation, mais que c'était réalisable.
Hi,
I'm a student at the university of Sherbrooke (Canada Quebec). Me and my team are doing a School project. We are doing a dancefloor (12 x 12 ft.) with 144 separated tiles. we're using 36 I2C LEDs Drivers. Like this:http://tiny.cc/2mepu
I use a PIC controler which I made six I2C BUS using the I/O. The I/O only have 50 pf capacitance.
I want to use IES5501 chip to solve this problem. My question is: with this integrated circuit, do I need to use a chip on both side of the communication.
One on each I2C bus and an another on every LED Driver?
Thank you!!
Alex (learning english)
You can use the IES5501 to solve your problem when your problem is that the ports of the PIC controller are allowed only 50 pF and the wiring that is 12 ft long has a much larger capacitance.
The capacitance of the wiring depends on the type of wire that you use. Two cables that we suggest are a) Flat 4-core telephone wire - if your wired phones use that for connection or b) communication cables as used for the LAN/Ethernet connection to a PC. They are called Cat5e or Cat6 cables - usually have a blue covering.
If you use communication cables you should send each of the I2C signals (SDA and SCL)on separate cable pairs and for each cable pair connect SCL on one wire with ground on the other, and then SDA on one wire and ground on the other. If you use the telephone wire, which has 4 wires in a straight line like a ribbon cable, make the two inside wires ground and the use the outer two wires for the SCL and SDA signals. Both types of cable will have about 50 pF / meter of cable, or about 200 pF for your 12 feet long wires.
If you use IES5501 on each I2C line, near the controller, you will NOT need any more IES5501 at each LED driver. Because the 12 foot cables have less than 400 pF they can be driven by IES5501 and the slaves (=LED drivers) should also be able to drive the cables without any buffers (IES5501).
The pull-up resistors that you use on the 12 foot cables should be the smallest resistance allowed by the slaves. For example, if the bus is a 5 V bus then normal LED drivers have at least 3 mA drive capability and the pull-up would be 5 V / 3 mA = 1.66k. You could use 1.8k but in practice 1.5k will be OK too.
You still need pull-ups on the microcontroller port lines. They can be whatever value is recommended for the processor.
While we believe your project will work OK as planned, it is not a system that we would recommend for professional/commercial use because it might be affected by interference from other wiring or cell phones etc. For an application like yours, where there will not be any serious problems if the communication system has some errors, it is OK. You just might tell the person who is writing the software for the processor to include some way to handle communication errors. For example, if the PIC processor has registers with bits to indicate I2C data transmission failures, then make sure the software program includes ways to recover from the errors.
Good luck with your project ! If you ever have to build a professional system please ask again and we can refer you to more complex solutions that would make the I2C bus wiring more tolerant to interference.
Regards,
Angelynn Lim
Customer Account Manager
lundi 31 mai 2010
Communication I2C...Suite
Finalement, j'ai regardé les spécifications du PIC utilisé comme contrôleur. Malheureusement, je n'avais pas remarqué que les i/o acceptent un maximum de 50 pF, ce qui n'est probablement pas assez selon moi. Nous devrons probablement utiliser des Buffer I2C pour avoir la norme de 400 pF.
J'ai regardé sur internet et je vois que le P82B96 de Texas instruments revient très souvent.
Je dois cependant m'informer s'il est possible d'avoir seulement ces buffers sur le circuit du contrôleur sans toutefois avoir à les intégrer sur les 36 Drivers de LEDs ($$$). Si oui, ce problème sera vite régler et cela ne sera pas trop dispendieux. Cependant, si nous avons à les intégrer sur chaque Drivers, une autre solution devra être mise en oeuvre.
J'ai regardé sur internet et je vois que le P82B96 de Texas instruments revient très souvent.
Je dois cependant m'informer s'il est possible d'avoir seulement ces buffers sur le circuit du contrôleur sans toutefois avoir à les intégrer sur les 36 Drivers de LEDs ($$$). Si oui, ce problème sera vite régler et cela ne sera pas trop dispendieux. Cependant, si nous avons à les intégrer sur chaque Drivers, une autre solution devra être mise en oeuvre.
dimanche 30 mai 2010
Communication I2C
Le I2C n'est pas adapté pour être transmit sur un câble externe. On peut s'en apercevoir en observant son nom:
I2C - Inter-Integrated Circuit
En fait, ce protocole de communication a été établie pour lier des périphériques présents sur le même circuit.
Dans le cadre de notre projet, il y a des risques qui surviennent avec ce type de transmission. En effet, nous n'avions pas assez songé sur le fait qu'un BUS I2C ait une limitation d'une capacité maximale de 400 pF. Le plancher est de 12 pieds, donc il a de fortes chances que nous ne soyons pas en mesure de transmettre les trames convenablement a un débit satisfaisant.
J'ai fait la recherche de plusieurs solutions pour contrer cette limitation du BUS I2C
Pour éloigner ce problème, nous utilisons un câble plat de téléphone à 6 conducteurs pour la communication. Nous n'avons pas besoin de 6 conducteurs pour communiquer. Cependant, nous pouvons isoler le signal SDA et SCL entre des lignes de GND pour réduire l'effet capacitif que peut produire les lignes SDA et SCL entre elles.
Nous allons donc, tout simplement, diminuer la fréquence d'horloge des BUS i2C. J'ai lue sur internet qu'avec une fréquence de 100kHz, nous pouvons atteindre une longueur près de 100 pieds (C'est à confirmer).
Pour s'adresser a un Driver on doit nécessairement avoir :
1 start bit
1 octet d'adressage
1 octet pour le registre
1 stop bit
2 acquittements
---------------
20 bits
Pour contrôler une seule tuile on a :
1 octet pour le rouge
1 octet pour le vert
1 octet pour le bleu
---------------
27 bits
Un Drivers contrôle 4 tuiles, donc nous avons au total :
20 bits + (27 bits * 4) = 128 bits
Nous avons 6 Drivers par BUS I2C
128 bits * 6 Drivers = 768 bits
Nous nous retrouvons au final avec 768 bits a envoyer par BUS I2C.
Avec une fréquence de 100kHz ca prend un temps de :
768 bits * (1/100E3 Hz) = 7.68 millisecondes
Avec seulement 7.68ms nous pouvons avoir une fréquence de rafraichissement de 130 images par seconde ce qui est largement suffisant pour notre application.
Au final, nous ne devrions pas avoir de problème avec les limitations I2C si nous optons pour une fréquence d'horloge de 100 kHz.
I2C - Inter-Integrated Circuit
En fait, ce protocole de communication a été établie pour lier des périphériques présents sur le même circuit.
Dans le cadre de notre projet, il y a des risques qui surviennent avec ce type de transmission. En effet, nous n'avions pas assez songé sur le fait qu'un BUS I2C ait une limitation d'une capacité maximale de 400 pF. Le plancher est de 12 pieds, donc il a de fortes chances que nous ne soyons pas en mesure de transmettre les trames convenablement a un débit satisfaisant.
J'ai fait la recherche de plusieurs solutions pour contrer cette limitation du BUS I2C
Pour éloigner ce problème, nous utilisons un câble plat de téléphone à 6 conducteurs pour la communication. Nous n'avons pas besoin de 6 conducteurs pour communiquer. Cependant, nous pouvons isoler le signal SDA et SCL entre des lignes de GND pour réduire l'effet capacitif que peut produire les lignes SDA et SCL entre elles.
Pour augmenter cette spécification, nous pouvons avoir recours a I2C BUS Extender. Cette méthode permet d'augmenter le courant des signaux SDA et SCL par un facteur de 10. Bien que cette méthode serait la plus efficace, elle est cependant très couteuse dans notre cas. Nous avons un total de 36 Drivers de LEDs sur 6 BUS I2C en parallèles. Donc avec cette méthode, on se retrouve avec 36 + 6 pièces supplémentaires. À environ 3$ le circuit intégré, cette solution n'est pas envisageable.
Une autre façon serait de réduire le débit. Au départ, l'intention était d'avoir un débit d'environ 700 kbits/sec. Il faudra sans doute réduire ce débit si nous ne rencontrons pas les spécifications du BUS I2C au final.
Nous allons donc, tout simplement, diminuer la fréquence d'horloge des BUS i2C. J'ai lue sur internet qu'avec une fréquence de 100kHz, nous pouvons atteindre une longueur près de 100 pieds (C'est à confirmer).
Pour s'adresser a un Driver on doit nécessairement avoir :
1 start bit
1 octet d'adressage
1 octet pour le registre
1 stop bit
2 acquittements
---------------
20 bits
Pour contrôler une seule tuile on a :
1 octet pour le rouge
1 octet pour le vert
1 octet pour le bleu
3 acquittements
---------------
27 bits
Un Drivers contrôle 4 tuiles, donc nous avons au total :
20 bits + (27 bits * 4) = 128 bits
Nous avons 6 Drivers par BUS I2C
128 bits * 6 Drivers = 768 bits
Nous nous retrouvons au final avec 768 bits a envoyer par BUS I2C.
Avec une fréquence de 100kHz ca prend un temps de :
768 bits * (1/100E3 Hz) = 7.68 millisecondes
Avec seulement 7.68ms nous pouvons avoir une fréquence de rafraichissement de 130 images par seconde ce qui est largement suffisant pour notre application.
Au final, nous ne devrions pas avoir de problème avec les limitations I2C si nous optons pour une fréquence d'horloge de 100 kHz.
samedi 29 mai 2010
Schéma bloc du système électronique
- Le plancher
- Le contrôleur
- Le DSP
- L'ordinateur
Ici, les liaisons entre ces modules seront expliquées.
Fonctionnement du Contrôleur
Fonctionnement du Contrôleur
L'unique tâche du contrôleur est de recevoir de l'information du DSP et de la transmettre aux 36 Drivers de LEDs sur le plancher. L'information se compose en 8 bits de Rouge, 8 bits de Vert et 8 bits de Bleu, ce qui fait au total 24 bits de couleur par tuile. Au fur et à mesure que l'information est transmisse au contrôleur par la communication SPI, l'information est remisé dans une matrice de 144 cases de 24 bits qui composent le plancher. Lorsque la communication est terminée, le contrôleur envoie un signal au DSP pour indiquer qu'il est occupé BUSY. À ce moment, le contrôleur envoie ces trames sur le plancher. Ensuite, un TIMER est enclenché. Ce TIMER a pour but de varier le taux de rafraichissement du plancher. La valeur du TIMER peut être modifié par le biais de l'ordinateur ou bien désactivé. Pendant que le TIMER est en marche, le signal BUSY est reste actif (BUSY = 1), donc le DSP doit attendre pour envoyer les prochaines trame. C'est uniquement lorsque le signal BUSY devient inactif (BUSY = 0) que le DSP peut recommencer à communiquer avec le contrôleur. Cette routine est répété de façon infinie.
Fonctionnement du DSP
L'objectif du DSP est de pouvoir analyser un signal audio, d'effectuer des opérations mathématiques afin de décortiquer son contenu fréquentiel, mettre en oeuvre un algorithme d'affichage pour lier le signal audio avec le plancher et finalement, de transmettre ces informations au contrôleur.
Pour décortiquer un signal audio, le DSP comporte un module ADC . Ce module permet la conversion d'un signal analogique en un signal numérique pour qu'il puisse être traité par la suite. Lorsque le signal audio à été convertie, on effectue des transformées mathématiques (transformées de Laplace) pour sortir de l'information fréquentiel sur le signal audio. Par la suite, ces informations sont soumissent a un algorithme d'affichage pour rentre le tout visuel sur le plancher. À ce moment, l'information est transmisse dans une matrice et contenue jusqu'à ce que le signal BUSY du contrôleur devienne inactif (BUSY = 1). Lorsque le contrôleur se libère (BUSY = 0), on peut transmettre la matrice au contrôleur par le biais d'une communication SPI (SPI0).
Son deuxième objectif, est d'établir une communication entre le système et un ordinateur à l'aide d'un interface utilisateur.
Le circuit comporte une mémoire morte ROM qui contient les données d'une page Web. Le DSP peut y accéder avec un autre module SPI (SPI1). Cette page web est transférée dans un BUFFER et transmisse à un contrôleur ETHERNET lorsqu'un ordinateur se connecte sur ce dernier. Cette transmission est, une fois de plus, effectuée avec une communication SPI (SPI2). L'utilisateur aura le choix d'activer le module ADC (ENABLE = 1) ou bien d'envoyer ces propres trames au plancher (ENABLE = 0) image BMP comme exemple
vendredi 28 mai 2010
Drivers de LEDs - Schéma et PCB
Schéma et PCB des Drivers de LEDs
- Le connecteur I2C_IN est l'entrée du BUS I2C fournit par le Contrôleur.
- Le connecteur I2C_OUT est la sortie du BUS I2C qui va se lier au prochain Driver en série.
- Il y a 4 connecteurs aux coins du Board. Ils sont directement reliés aux LEDs. Il y a 4 pins par connecteur.
- 1 - GND
- 2 - PWM Red
- 3 - PWM Green
- 4 - PWM Blue
Il y a 4 connecteurs puisqu'un Driver de LEDs contrôle 4 tuiles en même temps.
- S1 est un DIP switch pour régler manuellement l'adresse d'un Driver.
- Finalement, U1 est le TLC59116 qui correspond au Driver de LEDs.
Le board fait environ 1 pouce par 2 pouce
Schéma du circuit du contrôleur
Liste des connecteurs
I2C5 : 12C0 -- Connecteur pour la liaison I2C entre les Drivers de LEDs (TLC59116) et le contrôleur
PROG -- Connecteur pour la programmation du PIC
DEBUG -- Connecteur pour déboguer à l'aide de la communication UART du PIC
vendredi 21 mai 2010
mercredi 19 mai 2010
Logiciel animation images
J'ai créé un logiciel qui transforme une série d'images BMP 24 bits en un fichier texte ayant les valeurs RGB de chaque pixel de chaque image. Ce logiciel a pour but d'envoyer des animations directement sur le plancher.
On a qu'à entrer:
- La grosseur du vecteur
- Le nom du fichier de l'image (.bmp)
- Le nom du fichier de sortie (.txt)
Il ne reste plus qu'à envoyer ce fichier texte au contrôleur pour qu'il puisse l'afficher sur le plancher.
De plus, on rajoutera un octet qui indiquera le nombre d'images par seconde.
On a qu'à entrer:
- La grosseur du vecteur
- Le nom du fichier de l'image (.bmp)
- Le nom du fichier de sortie (.txt)
Il ne reste plus qu'à envoyer ce fichier texte au contrôleur pour qu'il puisse l'afficher sur le plancher.
De plus, on rajoutera un octet qui indiquera le nombre d'images par seconde.
Câbles et connecteurs pour la communication
Les connecteurs que nous allons utiliser seront des RJ12 avec des câbles de téléphones tout-à-fait standard. Ce choix est assez simple:
- Disponibles partout
- Nécessite aucune soudure (gagne du temps)
- Solution pas très cher
- Esthétiquement satisfaisant
Nous allons retrouver cette liaison entre le contrôleur et les drivers. Et peu-être entre les LEDs et les Drivers (à confirmer).
- Disponibles partout
- Nécessite aucune soudure (gagne du temps)
- Solution pas très cher
- Esthétiquement satisfaisant
Nous allons retrouver cette liaison entre le contrôleur et les drivers. Et peu-être entre les LEDs et les Drivers (à confirmer).
Disposition des Drivers de LEDs
Chaque Driver de LEDs TLC59116F pourront contrôler 4 dalles. Un total de 144 dalles laisse place a 36 Drivers. Pour accélérer la communication, nous avons intégré 6 I2C dans le contrôleur fonctionnant en parallèle. L'adressage du plancher se fera au total sur 6 BUS I2C disposés en colonnes. L'utilisation de colonnes permettra l'assemblage du plancher de façon rapide et facile.
Contrôle des Drivers de LEDs
Cette semaine j'ai réussis à faire fonctionner les drivers de LEDs. J'ai rencontré un problème qui m'a fait perdre une bonne semaine de temps. Je m'explique:
Je devais fabriquer une communication I2C en respectant les timings donnés par le manufacturier du TLC59116F. Une fois réalisé, j'ai fait le montage du circuit sur un board prototype. Je fais mes tests... Rien ne fonctionne. Jusqu'à présent, c'est normal, ça fonctionne rarement (on peut dire jamais) du premier coup. J'ai vérifié mes timings I2C et vérifié à nouveau. J'ai douté de mon montage, douté de mes soudures, douté encore une fois des mes timings, douté de l'alimentation... Ceci répété en boucle.
Lundi matin, je décide de regarder les pages de spécifications d'un autres Drivers de LEDs de TEXAS Instruments pour voir s'il n'y a pas plus d'informations fournies. Voilà! L'erreur est trouvée. La broche #1 est nommée N.C. (no connection)... Je ne la branche pas bien sur! Sur le deuxième schéma, c'est identifié REXT... Résistance externe? Je branche une résistance... Ça marche! En fouillant en profondeur sur internet, j'ai rencontré aucune autre personne qui a rencontré ce problème.
Choix des LEDs
Le choix des LEDs est a prendre en très grande considération. J'ai regardé sur plusieurs sites internet pour retrouver celles qui pourront respecter nos attentes:
- Bonne intensité lumineuse
- Avoir un grand angle
- Un coût pas trop élevé
Premièrement, j'ai considéré l'option d'adopter des LEDs RGB. Celles-ci nous nous éviterais beaucoup de travail manuel puisque nous aurions 3x moins de LEDs à installer. Cependant, le coût est trop élevé.
Du côté des LEDs 5mm, elles offrent une intensité lumineuses très élevée et sont offertes à un bon prix en général. Là où elles font défaut, c'est l'angle... entre 10 et 25 degrés, il serait difficile, je crois, d'allumer une dalle de façon uniforme....
J'ai tout de même commandé un paquet de LEDs 5mm de couleurs assorties afin d'effectuer des tests.
Finalement, j'ai trouvé un marchand sur Ebay qui offre ces mêmes LEDs 5mm mais avec le dessus plat. Je crois que c'est le meilleur compromis jusqu'à présent. Le coût est un peu plus élevé que celui des LEDs 5mm standard, mais reste quand même abordable. Là où c'est intéressant, l'angle est beaucoup plus prononcé: 120 à 140 degrés.
Environ 45$ pour 1000
Donc, 45$ x 3 couleurs = 135$...
C'est environ le budget que nous avons accordé pour l'investissement des LEDs (130$).
J'ai donc commandé 50pcs afin d'effectuer des tests.
Au final, je dois attendre au moins 2 semaines avant de faire mes tests.
À suivre...
mardi 18 mai 2010
Techniquement...
Nous avons séparé le tout en plusieurs sections en ce qui attrait l'électronique (l'amplificateur audio n'est
pas encore prit en compte)
- L'éclairage
- Contrôle de l'éclairage
- Opérations mathématiques
- Module de communication
- L'interface
L'éclairage
L'éclairage est réalisé par des centaines de LEDs. Chaque dalle
du planché contiendra plusieurs LEDs de trois couleurs différentes:
Rouge
Vert
Bleu
Avec ces trois couleurs (RGB), nous pouvons former, en les mélangeant, toutes les couleurs dont nous avons besoin.
Toutes les dalles sont individuellement indépendantes l'une des autres. Donc, chacune de celles-ci auront une adresse unique. Afin de faire varier les couleurs, il n'est pas envisageable d'utiliser seulement un microcontrôleur. Nous devons avoir recours à des circuits intégrés ayant comme spécialité de contrôler les LEDs (Drivers).
Nous avons choisit d'utiliser le TLC59116F de la compagnie TEXAS Instruments.
Chaque Driver permet de contrôler 16 LEDs. Le contrôle se fait en envoyant une fréquence (PWM) que nous pouvons varier afin d'obtenir une luminosité précise. Nous pouvons obtenir une résolution de 8 bits soit 256 niveaux de luminosité différente pour chaque LED. Pour commander ce circuit intégré, nous devons employer le protocole I2C. Ce Driver peut fournir jusqu'à 120 mA ce qui est amplement suffisant pour notre utilisation.
Chaque TLC59116F va commander 4 dalles différentes.
OUT0 à OUT11 seront utilisés tandis que OUT12 à OUT15 ne seront pas utiles dans notre cas.
Au total, le plancher comportera 36 Drivers.
J'ai commandé 3 Drivers en échantillon (merci T.I.) ainsi que des "Sockets" TSSOP pour pouvoir faire des tests sur mon Proto Board.
Contrôle de l'éclairage
Ce module a pour tâche de commander les 36 Drivers de LEDs. Pour y arriver, nous avons fait le choix d'utiliser un microcontrôleur de la compagnie Microchip, un PIC18F2221. Ce choix s'est arrêté sur celui-ci puisque cette com
pagnie est bien familière pour moi. J'ai donc commandé ce programmeur/debugger (Pickit v2.0) sur Ebay à 39$ + 8,00$ (shipping). Il fonctionne très bien et permet de programmer la majorité des produits de Microchip.
Opérations mathématiques
...
Module de communication
...
L'interface
...
Ça devrait ressembler à quoi???
L'idée globale du projet est de faire réagir les dalles du plancher selon la musique...
Le plancher est de quelle grosseur? On est très ambitieux pour les moyens que nous avons... Nous pensons faire un plancher de 12x12 pieds carré. Jusqu'à présent, nous n'avons toujours pas changé d'idée. Ce plancher sera composé de 144 dalles individuelles.
C'est là que ca se complique...
C'est officiellement le plus grand défi du projet. Ceci impose un budget que nous n'avons pas, énormément de travail manuel... et beaucoup de temps libre! 144 dalles, c'est beaucoup.
Néanmoins, nous sommes convaincu que nous pouvons passer au travers de ce défi de taille.
Le plancher pourra être contrôlé par un interface utilisateur, accessible par n'importe quel ordinateur personnel.
De plus, nous avons imposé une contrainte intéressante. Le plancher doit être modulaire. C'est-à-dire, qu'il puisse être transportable facilement en ayant la possibilité de le démonter et le remonter en tout temps.
Le projet...
À chaque session, à l'université de Sherbrooke, en génie électrique, nous devons élaborer un projet d'équipe qui doit suivre des contraintes imposées dans un cadre d'apprentissage.
Le projet principal consiste a fabriquer un amplificateur audio. Ici, toutes les équipes font la même chose.
Le degré de liberté que nous avons est de faire réagir quelque chose selon la sortie de l'amplificateur audio. Pour notre part, nous avons choisit de faire interagir un plancher de danse selon les fréquences de la musique.
En fait, le plancher serait composé de plusieurs dalles indépendantes qui allument de toutes les couleurs. Cet effet produira une matrice de lumière directement au sol!
Un autre but que nous souhaitons réaliser est de pouvoir mettre en place ce plancher durant les soirées 5@8 de notre faculté universitaire.
Malgré le fait que l'on ait pratiquement reçu aucune information à propos du projet de la prochaine session, nous avons tout de même prit l'initiative d'entamer cette idée de projet... En avance!
On a très vite réalisé qu'il sera impossible pour nous de mettre à terme ce plancher disco si nous ne commençons pas tout de suite à travailler sérieusement...
Création d'un blog pour le projet
Nous avons décidé aujourd'hui de mettre en ligne un blog qui nous permettra de suivre l'évolution du projet. De plus, cette page web servira à exposer la documentation.
Inscription à :
Articles (Atom)