Meet Tiny Sorter, une expérience de bricolage reliant Arduino + Teachable Machine – Open Electronics


Débuter avec l'informatique physique et l'apprentissage automatique peut être assez intimidant. Mais ce n’est pas obligé! Découvrez Tiny Sorter, une expérience de bricolage qui vous apprend à construire une trieuse en connectant Arduino et Teachable Machine.

C’est une petite machine que vous pouvez facilement fabriquer avec un morceau de papier – il suffit de couper, de plier, d’assembler le moteur et de le placer directement au-dessus de la webcam de votre ordinateur portable. Ensuite, utilisez Teachable Machine pour créer un modèle d’apprentissage automatique (aucun codage requis) pour trier de petits objets – céréales, bonbons, trombones, ou tout ce que vous avez avec vous. Et juste comme ça, vous avez votre propre trieuse d’apprentissage automatique.

C’est un projet super simple et amusant pour à peu près tout le monde – étudiants, codeurs, non-codeurs, même si c’est la première fois que vous utilisez arduino. Construisez votre propre Tiny Sorter et obtenez une idée de ce qu'est l'apprentissage automatique et l'informatique physique.

Plus d'informations

jlcpcb.com



Source link

Circuit du Crowbar | Conception utilisant thyristor, travail


Dans ce tutoriel, nous étudierons un circuit simple mais efficace appelé le circuit Crowbar. Il s’agit essentiellement d’un circuit de protection contre les surtensions. Nous allons examiner le concept du circuit, sa conception utilisant Thyristor / SCR, le fonctionnement du circuit ainsi que certaines limitations importantes.

introduction

Les alimentations sont un composant important des circuits électriques et électroniques. Ils sont généralement très fiables et peuvent fournir une alimentation propre et de qualité aux circuits principaux. En fait, la durée de vie, la fiabilité et la longévité de tout système électronique dépendent d'une bonne alimentation.

Si une alimentation tombe en panne pour une raison quelconque, le circuit qui y est connecté sera sérieusement endommagé, parfois irréparable. Par exemple, un problème courant avec les alimentations linéaires est la défaillance du transistor passe-série.

Lorsqu'il y a un court-circuit entre les bornes du collecteur et de l'émetteur du transistor de transfert, le transistor tombe en panne et il y aura une tension très élevée et non régulée à la sortie. Si cette haute tension est transmise au système principal, les composants sensibles tels que les circuits intégrés seront endommagés en raison d'une surtension importante.

Par conséquent, il est assez courant de mettre en œuvre un simple circuit de protection contre les surtensions à la sortie de l'alimentation afin qu'en cas de pic de tension inattendu, aucun dommage ne soit causé au circuit principal ou à la charge. Ceci est fait par le circuit Crowbar.

Qu'est-ce qu'un circuit Crowbar?

Un circuit Crowbar est un circuit électrique simple qui évite d'endommager les circuits (charge de l'alimentation) en cas de surtension de l'alimentation. Il protège la charge en court-circuitant les bornes de sortie de l'alimentation lorsqu'une surtension est détectée.

Lorsque les bornes de sortie de l'alimentation sont en court-circuit, l'énorme flux de courant fera sauter le fusible et déconnectera ainsi l'alimentation du reste du circuit. Par conséquent, en termes simples, le travail du circuit Crowbar consiste à détecter la surtension et à faire fondre le fusible (un disjoncteur est parfois déclenché).

En règle générale, les circuits Crowbar sont conçus avec un thyristor (SCR) ou TRIAC comme principal dispositif de court-circuit.

Conception du circuit Crowbar

Maintenant que nous avons une compréhension de base du circuit Crowbar, nous allons maintenant en concevoir un. Dans ce didacticiel, nous allons montrer deux conceptions typiques, l’une utilisant un thyristor / SCR, tandis que l’autre utilise un TRIAC comme dispositif de mise en court-circuit.

Crowbar utilisant Thyristor

L'image suivante montre le premier dessin utilisant un thyristor. Tous les composants nécessaires à la construction de ce circuit sont mentionnés ci-dessous.

Crowbar Circuit utilisant thyristor SCR

  • Thyristor (Q1)
  • Diode Zener (ZD1)
  • Diode Schottky (SD1)
  • Condensateur de filtre (C1)
  • Condensateur amortisseur (C2)
  • Résistance de tirage (R1)
  • Fusible (F1)

Travail

Le fonctionnement de ce circuit est très simple. La diode Zener (ZD1) est le composant qui détecte la surtension. Habituellement, la tension de seuil de la diode Zener est sélectionnée juste au-dessus de la tension de sortie de l'alimentation (1 V de plus que la tension de sortie).

Lorsqu'une surtension se produit et que la tension atteint la tension de seuil de la diode Zener, elle commence à conduire. Si la tension continue d'augmenter, la chute de tension sur la résistance R1 et la borne de porte du SCR (Q1) augmentera.

Initialement, lorsque la diode Zener est non conductrice, la résistance R1 sert de résistance abaissée pour que la borne de porte du thyristor se maintienne à FAIBLE. Mais lorsque la diode Zener commence à conduire et que la tension à travers la résistance R1 augmente, la tension de grille augmente également.

Lorsque la tension à la borne de la porte est supérieure à sa tension de seuil (généralement entre 0,6V et 1V), le thyristor commence à conduire et fournit essentiellement un court-circuit entre les rails d'alimentation. À la suite de ce court-circuit, le fusible saute.

Un point important à retenir ici est que la valeur nominale du thyristor devrait être supérieure à celle du fusible. En outre, la tension de déclenchement globale est la somme de la tension de seuil de la diode de Zener et de la tension de seuil du thyristor.

Il y a peu d'autres composants dans le circuit et voyons leur rôle dans ce circuit. Premièrement, le condensateur C1 est un condensateur à filtre utilisé pour réduire le bruit et les petites pointes de tension et évite les déclenchements inutiles des circuits.

Le condensateur C2 est un condensateur atténuateur qui empêche tout déclenchement accidentel du thyristor lors de la mise sous tension des circuits. Enfin, la diode Schottky agit comme une diode de protection inverse pour empêcher le circuit principal de déclencher le circuit Crowbar.

Exemple

Voyons maintenant un exemple de conception du circuit ci-dessus utilisant des valeurs en temps réel. Laissez la sortie de l'alimentation être 8V. Ensuite, la tension de seuil de la diode Zener est choisie pour être de 9.1V. Tous les autres composants et leurs valeurs sont montrés dans l'image suivante.

Crowbar Circuit utilisant un thyristor thyristor Exemple

Crowbar utilisant TRIAC

La conception du réseau est basée sur TRIAC en tant que dispositif de court-circuit. La porte du TRIAC est contrôlée par un régulateur ajustable Zener tel que le LM431 de Texas Instruments. En outre, deux résistances permettent de définir la tension de référence du régulateur Zener.

Crowbar Circuit utilisant TRIAC

Travail

Les résistances R1 et R2 forment un diviseur de tension et règlent la tension de référence sur le régulateur de zener ajustable LM431. Dans des conditions de fonctionnement normales, la tension sur R2 est légèrement inférieure à la tension de référence (VREF) de LM431 pour qu'il reste éteint.

En sélectionnant la résistance de cathode RC de manière appropriée, la tension à la porte du TRIAC sera très inférieure pour rester éteinte.

Lorsque la tension augmente en raison de la surtension, la chute de tension à travers la résistance R2 augmente au-delà de la valeur VREF et le régulateur LM431 Zener commence à conduire. En conséquence, la cathode du LM431 commence à tirer du courant, ce qui augmente essentiellement la tension de grille du TRIAC.

Dès que la tension de grille dépasse la tension de seuil, le TRIAC verrouille et court-circuite les rails d'alimentation, faisant ainsi fondre le fusible.

Limites

Un circuit simple est très utile pour la protection contre les surtensions et constitue donc une partie essentielle de l’alimentation du banc. Même si ce circuit est très utile, il y a certaines limites qui nécessitent de prendre une note.

Dans la conception à thyristors, la tension de déclenchement est définie par la diode Zener et elle n’est généralement pas ajustable. Par conséquent, la sélection de la diode Zener appropriée est très importante. La tension de déclenchement du circuit doit être légèrement supérieure à la tension de sortie de l'alimentation, de sorte que les pics et le bruit ne puissent pas le déclencher par inadvertance.

Lorsque l'alimentation est utilisée dans les conceptions RF, comme un émetteur RF, un filtrage approprié des lignes électriques avant et après l'émetteur doit être utilisé.

En cas de surtension, le circuit déclenche et fait sauter le fusible. Par conséquent, les fusibles doivent être remplacés chaque fois qu'une surtension se produit.



Source link

WS2812B LED RVB adressables | Contrôle en utilisant Arduino


Dans ce projet, nous examinerons un produit intéressant appelé les LED adressables WS2812B. Ce sont des voyants RVB adressables individuellement et sont également appelés par différents noms tels que NeoPixel de Adafruit, par exemple. Dans ce didacticiel, nous étudierons les voyants WS2812B, leur structure interne et leur construction, ainsi que le contrôle des voyants adressables individuellement à l'aide d'Arduino.

introduction

Si vous avez créé une sorte de projet lié aux voyants, vous avez probablement utilisé des voyants discrets (traversants ou CMS). Ces voyants peuvent être des voyants monochromes ou des voyants RVB.

Le principal inconvénient des voyants discrets est que, si vous les utilisez dans un tableau, vous perdez le privilège de les contrôler individuellement. Par exemple, si vous connectez trois ou quatre DEL à une seule broche d’Arduino à l’aide d’un transistor, toutes les DEL de la matrice auront le même comportement, c’est-à-dire un contrôle de la luminosité ou un changement de couleur.

Un autre scénario est que vous pourriez également avoir utilisé Lumières de bande de LED pour la décoration de Noël ou l'éclairage domestique régulier. Vous avez peut-être remarqué que même dans les lampes à ruban à LED coûteuses, vous n’avez pas la possibilité de contrôler des LED individuelles.

Si votre objectif est de contrôler des voyants individuels dans une bande, les voyants RVB adressables WS2812B sont la solution pour vous.

WS2812B LED adressables

La bande de LED adressable WS2812B est une source de lumière intelligente qui contient un circuit intégré de commande et une LED RVB dans le même boîtier, généralement au format SMD 5050. L'image suivante montre une bande de voyants WS2812B.

WS2812B LED adressables Image descriptive

À première vue, cela ressemble à une bande de LED ordinaire. Mais après une inspection plus minutieuse, vous pouvez trouver le circuit intégré de commande de LED WS2812B intégré dans le groupe de LED RVB SMD 5050. L'image agrandie suivante montre la même chose.

Schéma de circuit des voyants adressables WS2812B

Le bloc de LED WS2812B a quatre broches, à savoir VDD, VSS (GND), DIN et DOUT. Les fonctions de ces broches sont très simples et le tableau suivant donne une description simple des fonctions des broches.

Épingle

Une fonction

DMV

Alimentation pour LED

VSS

Sol

VACARME

Entrée de signal de données de contrôle

DOUT

Sortie du signal de données de contrôle

L'alimentation du circuit intégré WS2812B est également fournie via la broche VDD.

WS2812B Circuit d'application LED

Pour comprendre comment les voyants WS2812B peuvent être contrôlés individuellement, le circuit d’application suivant sera utile. Toutes les LED WS2812B sont connectées en cascade, l’OD de la première LED étant connecté au DIN de la seconde LED, etc.

Mais la première LED doit recevoir les données via son broche DIN d'un microcontrôleur comme Arduino. L'image suivante montre le schéma de principe d'un circuit d'application.

WS2812B Application adressable LED

Le protocole de transfert de données utilisé par les voyants WS2812B est le mode NRZ. Le premier port DIN de la matrice de LED WS2812B reçoit des données du microcontrôleur. Les données pour chaque pixel individuel sont de 24 bits et consistent en des données de commande individuelles des voyants rouges, verts et bleus de 8 bits chacune. L'ordre des données doit être GRB et la composition des données 24 bits est indiquée ci-dessous. Notez que les données de bit HIGH sont envoyées en premier.

WS2812B LED adressables Données 24 bits

Une fois que le premier bloc WS2812B a reçu les premières données de 24 bits, celles-ci sont envoyées à son verrou interne pour un décodage ultérieur. Les données restantes sont remodelées par son circuit de remodelage et d'amplification du signal et sont transmises au pixel suivant de la cascade par l'intermédiaire de la broche DO.

Comment contrôler la LED WS2812B en utilisant Arduino?

Passons maintenant au contrôle du tableau de DEL WS2812B à l’aide d’Arduino. Avant d’aller plus loin dans la conception du schéma, il y a une chose importante à aborder, c'est-à-dire l'alimentation en énergie du projet.

Chaque pixel LED WS2812B est doté de trois LED et d’un circuit intégré de contrôle. L’exigence actuelle d’un pixel est donc d’environ 60 mA. Si votre bandelette contient 20 LED WS2812B adressables individuellement, le courant total requis est de 20 * 60 mA = 1,2 A.

C'est plus que ce que Arduino peut fournir, soit par le port USB (qui peut fournir un maximum de 300 mA), soit par le biais d'une prise jack 5V (qui peut fournir un maximum de 900 mA).

Ainsi, le meilleur moyen de mettre le projet en marche, c’est-à-dire à la fois Arduino et le ruban à LED WS2812B, est à l’aide d’une source 5V externe pouvant fournir suffisamment de courant.

Maintenant que la partie alimentation du projet est claire, nous pouvons maintenant procéder avec le schéma du projet.

Schéma

L'image suivante montre la connexion entre Arduino UNO et le ruban à LED RVB WS2812B. Le 5V d’Arduino UNO et les voyants sont connectés à une alimentation externe avec le GND (VSS).

La broche DIN de la bande de LED est connectée à la broche IO numérique 7 de l'Arduino via une résistance de 330Ω.

Schéma de circuit des voyants adressables WS2812B

Composants requis

  • Arduino UNO
  • WS2812B LED
  • Alimentation 5V (minimum 2A)
  • Résistance de 330Ω

Programmation Arduino

La première étape de la programmation Arduino consiste à télécharger une bibliothèque de support appelée “FastLED”. Vous pouvez télécharger la bibliothèque à partir du lien suivant: “Bibliothèque FastLED”.

Extrayez le contenu du fichier zip et renommez le dossier en «FastLED». Déplacez ce dossier dans le dossier libraries de l'Arduino.

Code

#comprendre 

#define LEDPIN 7
#define NUMOFLEDS 10

Leds CRGB[NUMOFLEDS];

void setup() {

  FastLED.addLeds(leds, NUMOFLEDS);

}

boucle vide () {

  pour (int i = 0; i <= 9; i++) {
    leds[i] = CRGB ( 0, 0, 255);
    FastLED.show();
    delay(40);
  }
  for (int i = 9; i >= 0; je--) {
    leds[i] = CRGB (255, 0, 0);
    FastLED.show ();
    retarder (40);
  }
}

Conclusion

Une introduction simple à des LED adressables individuellement WS2812B est présentée dans ce tutoriel tout au long d’un projet qui montre comment contrôler les LED WS2812B avec Arduino. Si vous comprenez ces bases, vous pouvez alors mettre en œuvre un large éventail de projets.



Source link

Mini Dessin Bot – Application Android Live – Trignomentry – Open Electronics


À propos de nous

Open-Electronics.org est le fruit d'un chef de file mondial de l'électronique grand public Futura Group srl.
Open-Electronics.org se consacre au développement, au piratage et aux jeux électroniques: nous partageons des projets ouverts passionnants et créons des produits incroyables!

Open-Electronics.org Ce n’est pas seulement un conteneur d’idées, c’est aussi un site Web dirigé par une équipe d’ingénieurs et de geeks qui prendront part aux discussions et qui apporteront leur soutien.

Notre mission est de devenir un site de piratage Open Source de référence avec des idées et des commentaires visant à enrichir la communauté.

Plus d'informations



Source link

Calculatrice de résistance à LED | Besoin de résistance en série


Dans ce tutoriel, nous allons apprendre l'un des concepts de base essentiels aux débutants en électronique, à savoir un calculateur de résistance à LED. Vous verrez pourquoi le choix d’une résistance appropriée pour la LED est crucial pour son fonctionnement, ainsi que les facteurs à prendre en compte lors de la sélection d’une résistance particulière afin que la LED ne s’allume pas.

introduction

Si vous venez juste de commencer avec de l’électronique comme du bricolage ou d’Arduino, le premier projet ou circuit que vous avez construit serait probablement de faire clignoter une LED.

La bonne chose à propos d’Arduino est qu’il dispose d’une LED intégrée connectée à Digital IO Pin 13 et il vous suffit de brancher la carte Arduino UNO à un ordinateur et de télécharger le Croquis clignotant. Le voyant commence à clignoter.

Mais si vous vous arrêtez là, vous ne comprendrez pas la partie «matériel» du projet. Si vous regardez le schéma d’Arduino Uno Rev 3, vous remarquerez que le voyant n’est pas directement connecté à la broche IO du microcontrôleur ATmega328P (broche 5 du port B pour être exact). Mais il est plutôt connecté via une résistance de 1 KΩ en série.

Cette résistance est la chose intéressante pour la suite de la discussion sur ce tutoriel. Mais pour des informations de base sur les diodes électroluminescentes (DEL), vous pouvez vous reporter au post suivant.

«Diodes électroluminescentes (DEL)»

Quelle est la nécessité d'une résistance LED?

Si vous lisez le didacticiel sur les voyants mentionné ci-dessus, vous constaterez peut-être que n'importe quel voyant présente deux caractéristiques principales qui définissent le fonctionnement d'un voyant. Ils sont le courant direct et la tension directe.

Toutes les LED, quels que soient leur forme, leur taille ou leur facteur de forme, ont une quantité de courant de fonctionnement prédéfinie qu’elles peuvent autoriser. Ce courant est généralement défini dans les feuilles de données comme courant continu continu.

C'est le courant maximum absolu avec lequel une LED peut être alimentée sans aucun dommage. Par exemple, une LED blanche de 5 mm a un courant direct absolu maximal de 30 mA.

Il est donc absolument essentiel de contrôler la quantité de courant circulant dans une LED et la méthode la plus simple pour limiter le courant consiste à utiliser une résistance série.

L'autre caractéristique importante d'une LED est sa tension directe. Nous verrons son impact tout en comprenant l'équation du calculateur de résistance à LED et le choix de la résistance série.

Équation du calculateur de résistance DEL

Passons maintenant à l’aspect important du tutoriel, c’est-à-dire l’équation du calculateur de résistance à LED. Par souci de simplicité, considérons un circuit simple composé d’une seule LED, d’une résistance série et d’une alimentation.

L'image suivante montre un circuit de LED simple composé d'une LED, d'une résistance RS et une alimentation VS.

Schéma du circuit de calculateur de résistance DEL

En utilisant une théorie de circuit simple, vous obtenez l'équation suivante:

VS = RS * JER + VLED, où

VS est la tension d'alimentation,

RS est la valeur de la résistance série,

jeR est le courant à travers la résistance série,

VLED est la tension directe ou la chute de tension aux bornes de la LED (généralement représentée par VF).

Depuis la résistance série RS et les DEL sont en série, le courant qui les traverse sera le même et, comme indiqué dans nos discussions précédentes, ce courant devrait être le courant direct de la DEL (ILED ou simplement jeF).

Ainsi, nous pouvons réécrire l’équation ci-dessus comme suit:

RS = (VS – VF) / JEF

C'est l'équation du calculateur de résistance DEL. Il est important de noter ici que la valeur de la résistance en série dépend à la fois du courant direct de la LED et de la tension directe de la LED. Par conséquent, il est essentiel de garder un œil sur ces deux valeurs d’une LED de sa fiche technique.

Différentes couleurs et types de DEL ont différentes valeurs nominales de tension et de courant direct. Par exemple, le tableau suivant donne un aperçu des valeurs du courant et de la tension de transfert de certaines des LED 5 mm couramment utilisées.

REMARQUE: Les valeurs suivantes sont spécifiques à un fabricant et ne peuvent pas être généralisées. Pour des valeurs précises, vous devez absolument consulter la fiche technique fournie par votre fabricant.

Couleur LED Courant Direct (IF) Tension directe (VF)

blanc

30 mA

3,6 V

rouge

20 mA

2 V

Bleu

20 mA

3,9 V

vert

20 mA

2,4 V

Jaune

20 mA

2 V

ambre 20 mA

2,4 V

Orange

50 mA

2.1 V

Infrarouge

100 mA

1,4 V

Si deux DEL sont connectées en série, l'équation pour calculer la résistance en série sera la suivante:

RS = (VS – VF * 2) / IF

En fait, s’il existe un nombre «N» de DEL similaires connectées en série, l’équation du calculateur de résistance de DEL peut être écrite comme suit:

RS = (VS – VF * N) / IF

Exemple

Examinons maintenant un exemple de circuit et calculons la valeur de la résistance en série pour qu'une LED fonctionne correctement sans exploser.

Exemple de calculateur de résistance à LED

A partir de l'image ci-dessus, la tension d'alimentation VS 5V, la LED utilisée est une LED blanche de 5 mm. Dans le tableau ci-dessus, une LED blanche typique de 5 mm a les notes suivantes:

Courant Direct IF = 30 mA et

Tension directe VF = 3,6 V.

En substituant ces valeurs dans l'équation ci-dessus, nous obtenons ce qui suit:

RS = (5 V – 3,6 V) / 30 mA

RS = 46,6 Ω.

La valeur la plus proche est une résistance de 47 Ω. Mais si vous voulez être du côté de la sécurité, je vous suggérerais d'utiliser la prochaine grande valeur et, dans ce cas, ce serait une résistance de 56 Ω.

Dissipation de puissance de la résistance

Une caractéristique importante de la résistance en série pour une LED qui est souvent négligée ou ignorée est la dissipation de puissance de la résistance.

Si la chute de tension de la LED est VF, alors la chute de tension à travers la résistance est VS – VF. Cela signifie que dans le processus de limitation du courant à travers la LED à la valeur de IF, la résistance doit dissiper la puissance restante, ce qui est (VS – VF) * JEF. Si la puissance nominale de la résistance ne correspond pas à cette valeur, la résistance va brûler et vous verrez la fumée magique.

Si nous considérons l'exemple ci-dessus d'alimentation 5V avec une LED blanche de 5 mm, nous avons calculé que la valeur de la résistance était de 47Ω. Dans ce cas, la puissance dissipée par la résistance est de (5 V – 3,6 V) * 30 mA. Ceci est égal à 42 mW. Ainsi, une résistance de ¼ W serait suffisante.

Cela peut sembler un petit nombre, mais il ne s'agit que d'un exemple et il peut être très chaud lors de la conception et de la construction de circuits à LED complexes et de forte puissance.



Source link

Comment construire votre technologie Laser Harp (étape par étape) – Open Electronics


Nous reconstruisons l'ancien instrument de musique dans une version ultra-technologique où, au lieu des cordes, nous posons des rayons laser, les interrompant au passage des doigts, les notes sont produites..

La harpe est un instrument à cordes au son doux, harmonieux et relaxant, qui tire ses racines de la plus lointaine histoire remontant aux civilisations grecque et latine et peut-être même antérieure. on le retrouve aujourd'hui dans les orchestres symphoniques et aussi dans les concerts de musique de chambre. Comme tous les instruments à cordes, il produit le son en pinçant ou en étirant et en relâchant un certain nombre de cordes avec les doigts, maintenues en tension par le cadre dans lequel elles sont montées: un cadre normalement en bois, de forme caractéristique presque triangulaire.

Sans nous opposer à l'instrument classique, nous avons décidé de revisiter la structure en remplaçant les cordes par quelque chose de futuriste, car nous parlons de faisceaux laser; C’est ainsi qu'est né notre Harp Laser, un instrument de musique électronique et hautement technologique, dans lequel nous avons pour ainsi dire «attiré» l’incontournable Arduino et son matériel, ainsi qu'un peu d’imagination pour mettre ensemble, le cadre, obtenu à partir d’un ensemble de détails en plexiglass correctement assemblés.

Pour donner une touche scénographique, nous avons également prévu la possibilité de piloter, lorsque la harpe est en marche, une machine à fumée qui fait ressortir les faisceaux laser rouges, donnant du corps et de la texture aux cordes et leur donnant un aspect aussi solide que celles du traditionnel. harpe.

LE PROJET

Voyons immédiatement comment notre techno-instrument est composé, à commencer par l’électronique; ce dernier est composé d'une carte Arduino UNO rev.3 qui s'interface avec un groupe de capteurs laser permettant de comprendre quand nous interrompons le faisceau.

Nous expliquerons dans quelques instants comment le système fonctionne et pourquoi un laser peut se transformer en une chaîne virtuelle de harpe électronique.

En plus des chaînes Arduino et laser, nous avons un bouclier MIDI, qui est le générateur de son actuel; eh, en tant que tel, car la harpe doit produire des sons et donc pouvoir générer des sons, il en est ainsi dans notre projet:

  • les capteurs lasers constituent les dispositifs d'entrée, pour équiper le fonctionnement du capteur en ce qui concerne les perturbations et la lumière dans l'environnement: en effet si le laser était allumé en permanence, DOUT se présenterait (en cas de lumière arrivant sur le phototransistor après en cours de réflexion) une tension influencée par la lumière ambiante, car le phototransistor peut être constamment conducteur s’il est suffisamment éclairé ou frappé par d’autres rayonnements lumineux inclus dans son spectre de sensibilité. Au lieu de cela, en émettant des impulsions lumineuses à une certaine fréquence, nous pouvons, à l'aide d'un module récepteur équipé d'un filtre, veiller à ce qu'il ne les détecte que, en éliminant les composants d'éclairage continus.

Le circuit du capteur laser est alimenté par une tension pouvant aller de 2,5 à 12 Vcc grâce à la présence d'un régulateur de commutation intégré basé sur le PT1301 intégré.

Le bouclier MIDI

Passons maintenant au cœur de l'instrument de musique, un bouclier basé sur le VS1053B intégré de VLSI, déjà utilisé dans d'autres projets et capable de générer un certain nombre de notes de musique synthétisant les sons d'un grand nombre de instruments de musique et mélodiques (y compris la harpe et l'orgue) et percussions, derrière des commandes données par un canal de données; Les commandes acceptées peuvent être de divers formats, y compris le populaire MIDI, qui est la norme utilisée depuis des décennies pour l’interface de synthétiseurs musicaux et de claviers électroniques avec le PC.

Commençons par analyser le schéma de circuit du circuit, présenté dans ces pages.

Tout tourne autour du U1 intégré, qui est notre VS1053B; ce dernier est à la fois un décodeur CODEC / multistandard (il contient des codes et une mémoire de données pour les codecs de décodage audio Ogg Vorbis, MP3, AAC, WMA et WAV PCM + ADPCM) et un synthétiseur MIDI standard complet. Grâce aux plug-ins logiciels, la puce peut également implémenter le décodage FLAC sans perte ainsi que celui d'un enregistrement de haute qualité au format Ogg Vorbis.

Tout cela utilise une interface série pour la communication avec le périphérique hôte (le microcontrôleur qui régit le synthétiseur), qui peut également être configuré en mode bus SPI. En réalité, le VS1053B intègre un complexe d’interface série qui compte deux interfaces: l’une de contrôle (SCI = Interface de commande série) qui sert à commander le fonctionnement de la puce et qui dans notre cas est celle à travers laquelle Arduino (mais tout microcontrôleur pourrait do it)…) donne ses propres commandes et un transfert de données (SDI = Serial Data Interface) grâce auquel le VS1053B peut transférer ou acquérir des données en streaming à un autre appareil externe ou à partir de celui-ci. Parmi les deux, celui qui peut être configuré pour fonctionner en mode série TTL ou SPI est le SCI, l’interface de contrôle.

Le synthétiseur de son intégré est basé sur un DSP (Processeur de signal numérique) propriétaire du VLSI, appelé VS_DSP. Les sons synthétisés sont convertis par un CNA stéréo à plusieurs débits, doté d’un étage de préamplificateur audio et d’un filtre de sortie stéréo.

L'intégration prend également en charge le codage audio PCM / ADPCM, en utilisant comme étage d'entrée l'amplificateur de microphone amplifié (pour ceux qui souhaitent utiliser un microphone) ou en captant le signal d'une entrée de ligne et en l'envoyant à un convertisseur stéréo A / N. . Dans le diagramme, nous voyons qu'Arduino gère le VS1053B via le port série utilisé en tant qu’UART, ce qui dans U1 fait référence aux broches 26 (RX) et 27 (TX) connectées respectivement aux broches numériques D3 et D2 d’Arduino; ce dernier gère également la réinitialisation de U1, via D4, afin de le préparer à la réception des commandes.

Les trois lignes en question sont équipées d’un pull-up du côté du VS1053 et sont contrôlées par les broches Arduino via des résistances en série; Trois cavaliers (JRX, JTX et JRST) sur le circuit imprimé du blindage permettent de les déconnecter si nécessaire, par exemple si vous optez pour une autre forme de contrôle, telle que le SPI.

Le bouclier prend l’alimentation d’Arduino à travers les broches 5V et GND; avec le 5 volts, le module d’ampli PAM8043 fonctionne, le reste étant assuré par les régulateurs linéaires LDO U2 (MIC5504-1.8YM5-TR) et U3: ce dernier (c’est un MIC5504-3.3YM5-TR) obtient, à partir du prise à 5 volts d’Arduino, une tension de 3,3 volts pour alimenter les broches de l’alimentation analogique du VS1053 (AVDD1, AVDD2 et AVDD3) et U2, qui déduit de 1,8 V le courant de 1,8 V nécessaire au fonctionnement du cœur de U1, sur les broches CVDD (noyau VDD) et IOV1, IOV2, IOV3. Les condensateurs des lignes d'alimentation filtrent les tensions relatives dues aux perturbations et aux ondulations possibles.

Le VS1053B intégré possède une sortie audio stéréo située sur les broches 39 (canal R) et 46 (canal L), référée à la broche commune 42 (GBUF), qui n'est pas connectée à la masse analogique mais est également couplée, comme le signal des lignes, via R / C réseaux.

Les sorties de l'audio U1 atteignent une prise stéréo d'un circuit imprimé auquel un casque peut être connecté puisqu'elles sont connectées à un petit amplificateur de puissance BF avec des sorties basse impédance.

Les mêmes lignes R et L atteignent les entrées du module d'amplificateur U4, ce qui élève le niveau du signal juste assez pour piloter une paire d'enceintes de 3 watts et 4 ohms d'impédance chacune; le module U4 est le PAM8403, basé sur le homonyme intégré déjà équipé de tous les composants externes dont il a besoin et du potentiomètre de contrôle du volume.

Le VS1053B intégré fonctionne de manière synchronisée avec son propre oscillateur interne, qui est basé sur le quartz à 12,88 MHz connecté entre les broches 17 (X1) et 18 (X2).

Dans le diagramme, notez que le bouton RST, connecté à la ligne de réinitialisation d’en-tête est utile pour reproduire celui du décodage audio PCM + ADPCM) et un synthétiseur MIDI standard complet. Grâce aux plug-ins logiciels, la puce peut également implémenter le décodage FLAC sans perte ainsi que celui d'un enregistrement de haute qualité au format Ogg Vorbis.

Tout cela utilise une interface série pour la communication avec le périphérique hôte (le microcontrôleur qui régit le synthétiseur), qui peut également être configuré en mode bus SPI. En réalité, le VS1053B intègre un complexe d’interface série qui compte deux interfaces: l’une de contrôle (SCI = Interface de commande série) qui sert à commander le fonctionnement de la puce et qui dans notre cas est celle à travers laquelle Arduino (mais tout microcontrôleur pourrait do it)…) donne ses propres commandes et un transfert de données (SDI = Serial Data Interface) grâce auquel le VS1053B peut transférer ou acquérir des données en streaming à un autre appareil externe ou à partir de celui-ci. Parmi les deux, celui qui peut être configuré pour fonctionner en mode série TTL ou SPI est le SCI, l’interface de contrôle.

Le synthétiseur de son intégré est basé sur un DSP (Processeur de signal numérique) propriétaire du VLSI, appelé VS_DSP. Les sons synthétisés sont convertis par un CNA stéréo à plusieurs débits, doté d’un étage de préamplificateur audio et d’un filtre de sortie stéréo.

Le système intégré prend également en charge le codage audio PCM / ADPCM, en utilisant comme étage d’entrée l’amplificateur de microphone amplifié (pour ceux qui souhaitent utiliser un microphone) ou en captant le signal d’une entrée de ligne et en l’envoyant à un convertisseur stéréo A / N. . Dans le diagramme, nous voyons qu'Arduino gère le VS1053B via le port série utilisé en tant qu’UART, ce qui dans U1 fait référence aux broches 26 (RX) et 27 (TX) connectées respectivement aux broches numériques D3 et D2 d’Arduino; ce dernier gère également la réinitialisation de U1, via D4, afin de le préparer à la réception des commandes.

Les trois lignes en question sont équipées d’un pull-up du côté du VS1053 et sont contrôlées par les broches Arduino via des résistances en série; Trois cavaliers (JRX, JTX et JRST) sur le circuit imprimé du blindage permettent de les déconnecter si nécessaire, par exemple si vous optez pour une autre forme de contrôle, telle que le SPI.

Le bouclier prend l’alimentation d’Arduino à travers les broches 5V et GND; avec le 5 volts, le module d’ampli PAM8043 fonctionne, le reste étant assuré par les régulateurs linéaires LDO U2 (MIC5504-1.8YM5-TR) et U3: ce dernier (c’est un MIC5504-3.3YM5-TR) obtient, à partir du prise à 5 volts d’Arduino, une tension de 3,3 volts pour alimenter les broches de l’alimentation analogique du VS1053 (AVDD1, AVDD2 et AVDD3) et U2, qui déduit de 1,8 V le courant de 1,8 V nécessaire au fonctionnement du cœur de U1, sur les broches CVDD (noyau VDD) et IOV1, IOV2, IOV3. Les condensateurs des lignes d'alimentation filtrent les tensions relatives dues aux perturbations et aux ondulations possibles.

Le VS1053B intégré possède une sortie audio stéréo située sur les broches 39 (canal R) et 46 (canal L), référée à la broche commune 42 (GBUF), qui n'est pas connectée à la masse analogique mais est également couplée, comme le signal des lignes, via R / C réseaux.

Les sorties de l'audio U1 atteignent une prise stéréo d'un circuit imprimé auquel un casque peut être connecté puisqu'elles sont connectées à un petit amplificateur de puissance BF avec des sorties basse impédance.

Les mêmes lignes R et L atteignent les entrées du module d'amplificateur U4, ce qui élève le niveau du signal juste assez pour piloter une paire d'enceintes de 3 watts et 4 ohms d'impédance chacune; le module U4 est le PAM8403, basé sur le homonyme intégré déjà équipé de tous les composants externes dont il a besoin et du potentiomètre de contrôle du volume.

Le VS1053B intégré fonctionne de manière synchronisée avec son propre oscillateur interne, qui est basé sur le quartz à 12,88 MHz connecté entre les broches 17 (X1) et 18 (X2).

Dans le diagramme, notez que le bouton RST, connecté à la ligne de réinitialisation d’en-tête, est utile pour répliquer celui d’Arduino lorsque la carte est recouverte par le bouclier.

COMMENT ÇA MARCHE

Voyons maintenant comment tout fonctionne, en supposant que chaque capteur laser correspond à une note jouée et que les capteurs sont lus chacun par une ligne Arduino, en fonction des paramètres suivants:

pinMode (fumée, SORTIE);
pinMode (6, INPUT);
pinMode (5, INPUT);
pinMode (8, INPUT);
pinMode (9, INPUT);
pinMode (10, INPUT);
pinMode (11, INPUT);
pinMode (12, INPUT);
pinMode (13, INPUT);
pinMode (A5, INPUT);
pinMode (A4, INPUT);

Les broches A4 et A5 d’Arduino, bien que nativement analogiques, nous les avons attribuées comme numériques, car il existe cette possibilité et sinon, il n’ya pas assez de broches numériques.

La broche fumée (Arduino pin 7) est la seule à être configurée en tant que sortie et doit activer le relais de la machine à fumée. La première note dans l'ordre des fréquences et donc, si nous étions sur le clavier d'un piano, la partie n en partant de la gauche, est celle corrélée à la broche numérique 6 et la plus aiguë est celle relative à l'entrée analogique 4. Ensuite, la séquence des notes exécutables est Fa #, Sol, Sol #, La, La #, Si, Do, Do #, Re et Re # de l'octave supérieure; Si vous souhaitez connaître la correspondance avec toutes les notes exécutables par le synthétiseur intégré au VS1053B, consultez le tableau 1.

Tableau 1.

Chaque fois qu’Arduino détecte le niveau logique haut sur l’une des lignes susmentionnées, il construit la chaîne de synthèse série du synthétiseur de contenu dans VS1053B et l’envoie à l’intégré, ce qui produit le désir conduit à la note ta, avec le réglage (instrument). mis dans la commande elle-même; dans notre cas, le registre est fixé dans l’esquisse et est le même pour les 10 notes. L'instrument reproduit est le 9 de la banque GM1 (Celesta), comme indiqué dans le tableau 2.

Tableau 2

En ce qui concerne la machine à fumée, nous avons modifié l’un de ceux disponibles sur le site Web (code HQSM10001) en connectant en parallèle au bouton de commande du jet de fumée l’échange d’un relais sur la carte de dérivation, piloté par la broche numérique 7 d’Arduino. la sortie s'active (conduit à un niveau logique élevé) pendant 400 ms et est ensuite inhibée pendant 10 secondes, afin d'éviter de saturer l'environnement si des notes sont jouées en continu.

Les temps peuvent être modifiés à volonté à partir du croquis. Le module de relais est du type à 1 canal avec commande TTL et est le REL AY1CH.

Le schéma de câblage présenté dans ces pages explique bien comment les éléments de circuit doivent être interconnectés.

En ce qui concerne le format des commandes d’Arduino au VS1053B, la chaîne de réglage du synthétiseur est de ce type:

  • 0x51: définir l'heure
  • 0x01: volume principal
  • 0x80: note désactivée
  • 0x90: note sur
  • 0xc0: programme
  • 0xe0: molette de tangage
  • 0xb0: message de canal de paramètre
  • 0x00: sélection de banque (0 par défaut, 0x78 et 0x7f à la batterie, 0x79 mélodique)
  • 0x06: RPN MSB: 0 = plage de courbure,

2 = mélodie grossière

  • 0x07: volume du canal
  • 0x0a: contrôle de panoramique
  • 0x0b: expression (change le volume)
  • 0x0c: contrôle d’effet 1 (définit la décroissance de la réverbération globale)
  • 0x26: LSB RPN: 0 = plage de courbure
  • 0x40: hold1
  • 0x42: supporté
  • Niveau d'effet 0x5b (niveau de réverbération du canal)
  • 0x62.0x63,0x64,0x65: NRPN et RPN sélectionnent
  • 0x78: tout son est désactivé
  • 0x79: réinitialiser tous les contrôleurs
  • 0x7b, 0x7c, 0x7d: toutes les notes désactivées

Les paramètres permettent d’établir le fonctionnement du synthétiseur, c’est-à-dire l’instrument (registre) à jouer et quelle banque, l’éventuelle application d’effets tels que le sustain, la plage du pitch bend s’il est utilisé, etc.

Enfin, il convient de souligner une particularité du VS1053B, concernant l’étage de la sortie casque, dans lequel un paramétrage du traitement audio est implémenté dans quatre modes sélectionnables; le tout dans le but de restaurer la spatialité qui n’est généralement pas obtenue lors d’une écoute au casque.

Les quatre modes applicables sont:

  • Off: pas de correction spatiale, utile si vous écoutez l'audio dans le haut-parleur, car le son dans l'espace environnant acquiert sa propre spatialité. ce mode s'applique également à l'écoute au casque si l'audio à reproduire ne provient pas du synthétiseur mais du décodeur et contient déjà un prétraitement binaural;
  • minimal: conçu pour les écouteurs avec peu d'instruments et une correction spatiale minimale;
  • normal: convient pour écouter des chansons au casque en déplaçant de façon minimale la source audio perçue d'un pavillon à un autre;
  • extrême: convient à la reproduction d’enregistrements anciens ou secs, ou bien le son ou le conduit est généré par le synthétiseur MIDI.

LE FIRMWARE

Eh bien, complétons la description de la harpe laser avec l’analyse du micrologiciel, téléchargeable à partir de notre site Web www.elettronicain.it; Dans le Listing 1, nous vous rapportons la partie de l’esquisse qui vous associe les notes aux «chaînes».

Après avoir affecté les broches d’E / S, définissez l’outil souhaité avec l’instruction suivante:

const int INSTRUMENT1 = 9;

Toute personne souhaitant changer d'outil peut intervenir dans cette partie du code. Nous avons ensuite la partie de l'esquisse qui concerne le paramétrage de la communication série pour le contrôle par Arduino où vous pouvez remarquer que la vitesse de communication est réglée sur 31.250 bps:

#if USE_SERIAL_MIDI
midiSerial.begin (31250); pisello
#fin si

Et nous arrivons à la partie de l’esquisse concernant la commande visant la génération des notes, qui est la suivante:

Annonce 1

Comme vous pouvez le constater, les commandes définissent la note, le registre, l'heure, les modes d'attaque et de déclin (progression et diminution du son), etc., puis envoient la chaîne de commande correspondante au MIDI.

En ce qui concerne le contrôle de la machine à fumée, les paramètres sont les suivants:

Nous voyons ici que la commande au relais qui ferme le court-circuit dans le bouton de commande de la machine pendant 0,4 seconde, suivie d'un temps d'inhibition de 10 secondes (tous les temps sont exprimés en millisecondes).

La partie du code contenue dans le Listing 1 voit la fonction void readTouchInputs () avec les variables associées aux 10 capteurs: lorsqu’un touchStates passe de 0 à 1, une boucle for est démarrée qui produit l’impression sur une série de la note jouée, à des fins de débogage. La fonction void Play () suit, dans laquelle une boucle for exécute la note associée aux touchStates, en commençant par 30, qui est la plus grave; pour chaque touchStates qui change d'état, il ajoute 1 note, donc si le paramètre de commutation est touchStates [5] le paramètre note est 30 + 4, alors la note 34 est exécutée. Bien entendu, ceux qui le ressentent peuvent modifier les différents paramètres afin de désactiver la commande de la machine à fumée (il suffit de régler zéro en intro), personnaliser les notes et, le cas échéant, modifier le son de l'instrument.

Cela dit, nous avons conclu: nous ne pouvons que vous souhaiter bonne chance et surtout beaucoup de plaisir avec votre harpe numérique avec laquelle vous serez étonné de savoir qui la verra jouer.

Liste des composants:
R1: 1 Mohm (0603)
R2 ÷ R5: 100 kohm (0603)
R6, R7: 22 ohms (0603)
R8: 1 kohm (0603)
R9: 22 ohms (0603)
R10 ÷ R12: 100 kohm (0603)
R13, R14: 1 kohm (0603)
C1 ÷ C5: céramique 100 nF (0603)
C6: électrolytique 100 µF 6,3 VL (Ø 4 mm)
C7, C8: céramique 22 pF (0603)
C9: céramique 1 µF (0603)
C10, C11: céramique 10 nF (0603)
C12: céramique 47 nF (0603)
C13: électrolytique 100 µF 6,3 VL (Ø 4mm)
RTD: Microswitch
U1: VS1053B
U2: MIC5504-1.8YM5-TR
U3: MIC5504-3.3YM5-TR
U4: Module amplificateur PAM8403
SPK: prise jack 3,5 mm
Q1: quartz 12,288 MHz

Divers:

  • Pince 2 voies pas 5mm (2 pièces)
  • Pin Strip Arduino 6 Voies
  • Bande à broche Arduino 8 voies (2 pièces)
  • Pin Strip Arduino 10 Voies
  • Pin Strip Arduino 2 × 3 voies
  • Circuit imprimé S1414 (69 × 55 mm)

DEPUIS OPENSTORE

Arduino UNO R3

Micro amplificateur 3 + 3 watts

Carte de capteur laser

Module 1 relais (monté)

Pièces en plexiglas pour LASER HARP

Blindage MIDI avec VS1053B

jlcpcb.com



Source link