mardi 14 mars 2017

Transformer son ordinateur, sa tablette ou son téléphone en générateur de basses fréquences

Un générateur de basses fréquences (générateur de fonctions) peut s'avérer bien utile dans la boîte à outils d'un amateur d'électronique.  Cet appareil vous permet de produire une tension périodique de forme sinusoïdale, carrée, triangulaire ou en dents de scie, dont vous choisissez l'amplitude et la fréquence.

Vous en voulez un?  Quelques options s'offrent à vous:
  • En acheter un.
  • En construire un (comme celui-ci, par exemple).
  • Utiliser un logiciel qui transformera votre ordinateur, tablette ou téléphone en générateur de basses fréquences.
Il existe un grand nombre de logiciels qui accomplissent cette tâche, mais je me contenterai ici de vous en présenter quelques-uns, fonctionnant sous différents systèmes d'exploitation.   Je ne prétends pas qu'il s'agit des meilleurs choix, mais je les ai tous essayés et ils fonctionnent.

Mes critères de sélection?  Je me suis limité à des logiciels entièrement gratuits, faciles à utiliser, qui n'occupent pas trop d'espace de stockage.  Et puisque je tenais à les tester personnellement,  ils devaient aussi pouvoir fonctionner sur un des appareils (parfois désuets) que je possède.

1)  Un logiciel en ligne:  Online Tone Generator


On utilise Online Tone Generator avec un fureteur web (il est officiellement compatible avec Chrome, Firefox, Safari et Microsoft Edge).  Aucune installation n'est donc nécessaire.  L'interface est extrêmement simple:  un gros champ texte vous permet d'écrire la fréquence désirée (quand ce champ est sélectionné, vous pouvez aussi utiliser les touches fléchées du clavier pour modifier cette fréquence par bonds de 1 Hz, ou par bonds de 10 Hz si vous enfoncez également la touche majuscule).

Trois boutons "Play", "Stop" et "Save" servent à démarrer ou interrompre le signal, ou encore l'enregistrer sous la forme d'un fichier .wav d'une durée de 10 s.

On modifie l'amplitude du signal au moyen d'un curseur, et vous cochez la forme désirée parmi les 4 qui sont disponibles:  sinus, créneaux, dents de scie ou triangulaire.


2)  Un logiciel pour Windows:  Tone

Il existe un grand nombre de générateurs BF pour Windows.  Tone, par Tolvan Data n'est pas particulièrement récent, et pas du tout tape à l'oeil, mais il est léger (un simple fichier exécutable de moins de 1 Mo), simple d'utilisation, et entièrement gratuit.

La section "Signal" vous permet de choisir la forme du signal signal périodique, parmi 9 options possibles.  Vous pouvez modifier l'amplitude dans la section "Level" en déplaçant un curseur au moyen de la souris, ou en écrivant vous-même une valeur numérique en décibels.  La section "Frequency" vous permet d'ajuster la fréquence du signal grâce à deux curseurs ("Coarse" pour un ajustement grossier, et "Fine" pour un ajustement fin) ou simplement en écrivant la valeur désirée en hertz.  La fréquence peut prendre n'importe quelle valeur située entre 2 Hz et 20 kHz


3)  Une app pour Android:  Simple Tone Generator


L'interface de Simple Tone Generator est tellement épurée qu'au moins 80% de l'espace disponible sur l'écran sert à présenter la valeur de la fréquence sur un fond noir.  Cette fréquence peut être réglée en l'écrivant au clavier, en utilisant le curseur situé au bas de l'écran, ou en appuyant sur les boutons -Hz et +Hz.  On règle l'amplitude avec les boutons de volume. 4 formes sont disponibles:  sinus, créneaux, triangulaire et dents de scie.

4)  Une app pour iOS:  SGenerator Lite

Il existe un grand choix de générateurs basse fréquence sur l'Apple Store, mais j'ai choisi le seul capable de fonctionner sur mon iPad de première génération (iOS 5)....

Il m'a semblé beaucoup plus simple d'écrire directement la fréquence plutôt qu'utiliser les boutons rotatifs.  En plus du bruit blanc, seules deux formes de signaux sont disponibles:  sinus et triangulaire.

5) Un logiciel pour Linux:  SigGEN

Ce qui distingue SigGEN des autres logiciels présentés ici, c'est son interface "vintage".  Rien à cliquer ici:  SigGEN s'exécute dans le terminal en lignes de commandes, et les paramètres sont modifiés à partir du clavier (tabulation pour passer au champ suivant, flèche vers le bas pour choisir la forme du signal, etc).




J'ai d'abord d'abord installé SigGEN en écrivant "sudo apt-get install siggen".

Ensuite, on démarre en écrivant "siggen".

Dans mon cas, le logiciel m'a d'abord envoyé ce message d'erreur au démarrage:
"[siggen] No such file or directory : /dev/dsp"

Suite à une petite recherche dans google, j'ai essayé ce remède, avec succès:

sudo aptitude install alsa-oss
aoss siggen 


Et ça a fonctionné.  Apparemment, l'installation de "alsa-oss" fait apparaître le fichier ou répertoire qui était initialement absent.  (j'étais sous Debian, si vous tenez à tout savoir).

6)  Un logiciel pour Mac OS?  Pas vraiment.

Difficile de passer à côté de Tone Generator, par NCH Software,  lorsqu'on cherche une option pour le Mac, mais il n'est malheureusement pas gratuit.  Puisqu'il semble que je l'aie déjà utilisé dans le passé, voici tout ce que j'ai pu en tirer:



Si je devais obligatoirement utiliser un Mac non branché à internet, j'opterais probablement pour Audacity (aussi disponible sur Windows et Linux).  La raison pour laquelle je n'insiste pas outre mesure sur Audacity, c'est qu'il s'agit d'un logiciel assez sophistiqué pour le traitement du son (la génération de signaux périodiques ne constitue qu'une toute petite fonctionnalité parmi beaucoup d'autres).

7)  Et comment on récupère le signal?

Vous pouvez écouter le résultat grâce aux haut-parleurs de votre appareil mais, pour acheminer le résultat vers un circuit, il s'agit d'utiliser la sortie audio.  Le câble ayant jadis appartenu à un défunt casque d'écoute, par exemple, fera parfaitement l'affaire...


La prise jack stéréophonique est constituée de trois section:  le manchon (masse), l'anneau (canal droit) et la pointe (canal gauche).   Prenez garde de ne pas causer de court-circuit en mettant ces sections en contact l'une avec l'autre.  Certains logiciels permettent de produire deux signaux différents (un sur le canal droit, l'autre sur le canal gauche); d'autre produisent le même signal sur les deux canaux.




Les signaux ci-dessous ont été obtenus avec le logiciel Tone pour Windows; les résultats sont similaires avec les autres logiciels présentés précédemment.





Voilà.  J'ai oublié de mentionner votre logiciel préféré?  N'hésitez-pas à en parler en laissant un commentaire ci-dessous.

Yves Pelletier   (TwitterFacebook)

vendredi 3 mars 2017

S4A (Scratch pour Arduino)

S4A (Sratch for Arduino) est une version de Scratch qui permet d’interagir avec une carte Arduino en manipulant des blocs de codes dans un environnement graphique.  Puisque l’utilisateur n’a pas à écrire la moindre ligne de code, ce type de logiciel est particulièrement approprié pour les novices en programmation et, de façon particulière, les enfants.

J’ai déjà eu quelques occasions de parler de la version Rasbperry Pi  de Scratch, qui permet d’interagir avec les pins GPIO du Raspberry Pi. De plus, il y a quelques semaines, je vous avais présenté Blockly@rduino, qui poursuit le même objectif de faciliter la programmation d’une carte Arduino grâce à une interface graphique composée de blocs à imbriquer.

Attention à une différence importante entre Blockly@rduino et S4A:  alors que Blockly@rduino traduit les instructions formées par les blocs pour en faire un véritable sketch Arduino que nous pouvons ensuite téléverser dans le microcontrôleur, S4A se contente d’envoyer en temps réel des instructions à une carte Arduino dans laquelle on a préalablement téléversé un sketch qui lui permet d’interpréter les instructions provenant de S4A (sur cet aspect, S4A ressemble donc davantage à Firmata. qui nous permet entre autres choses de piloter une carte Arduino au moyen d’un script en Python exécuté sur un ordinateur).

Faisons maintenant un petit essai de S4A, pour voir…

1) Téléchargement du logiciel S4A sur un ordinateur

Attention:  même si la version conventionnelle de Scratch est déjà installée sur votre ordinateur, elle ne sera ici d’aucune utilité.  Pour communiquer avec une carte Arduino, vous devez installer le logiciel S4A, qui comporte des fonctionnalités qui ne se trouvent pas sur Scratch.  Pour ce faire, rendez-vous sur la page web de S4A, et cliquez sur le bouton “Téléchargement”.  Le logiciel existe en version Windows, MacOS et Linux (incluant Raspbian), et c’est évidemment gratuit.



2)  Installation du firmware sur une carte Arduino

Comme je le disais plus haut, S4A se contentera d’envoyer des instructions à l'Arduino par le port USB.  Pour que la carte soit en mesure d’interpréter correctement ces instructions, nous devons préalablement y téléverser le sketch "S4AFirmware16.ino" au moyen de l’IDE Arduino.  Ce sketch se trouve ici.  (Je suppose que l'IDE Arduino se trouve déjà sur votre ordinateur, et que vous savez comment l'utiliser...à moins que vous soyez vraiment arrivé ce sur blog par accident!).



3)  Quelques contraintes

S4A est officiellement compatible avec les cartes de modèle Uno (ainsi qu’avec les antédiluviennes Duemilanove et Diecemila):  aucune garantie de fonctionnement en ce qui concerne les autres modèles.

Lors d'une utilisation avec S4A, la vocation des pins de votre Arduino ne peut pas être modifiée:
  • Les pins 2 et 4 sont obligatoirement des entrées numériques
  • Les pins 5, 6 et 9 sont obligatoirement des sorties PWM
  • Les pins 10, 11 et 13 sont obligatoirement des sorties numériques
  • Les pins 4, 7, 8 et 12 sont réservées à la connexion d’un servomoteur à rotation continue
  • Les 6 entrées analogiques ne peuvent pas être converties en autre chose que des entrées analogiques
Admettez que ça limite un peu les possibilités…

4)  Démarrage de S4A




Dès le démarrage, le logiciel se met à la recherche de votre carte Arduino.  Si elle est branchée à l'ordinateur, elle sera automatiquement détectée (nul besoin de choisir soi-même le bon port série). Là où on voit habituellement le chat de Scratch (un "lutin", dans le jargon de Scratch), le dessin d'une carte Arduino apparaît, ainsi qu'un tableau montrant en temps réel l'état des entrées analogiques et numériques.


Pendant ce temps, les LEDs TX et RX de la carte clignotent frénétiquement, puisque la carte communique sans arrêt avec le logiciel.

5)  Premier exemple:  Une LED qui clignote

Pour vérifier que ça fonctionne, commençons par le traditionnel clignotement de la LED intégrée à la carte (qui correspond à la pin 13).

Il s'agit de faire glisser quelques blocs empruntées au catégories "Contrôle" et "Mouvement".



La routine s'exécute lorsque vous cliquez sur le drapeau vert, dans le coin supérieur droit de la fenêtre.

6) Deuxième exemple:  une LED commandée par un bouton

Dans ce deuxième exemple, une LED branchée à la pin 13 s'allume lorsqu'on appuie sur un bouton branché à la pin 2 (les schémas de circuit qui figurent sur la page web de S4A proposent de brancher la LED directement, sans résistance de protection...je ne le conseille pas...).


Là encore, le programme démarre lorsqu'on clique sur le drapeau vert.



7) Troisième exemple:  Un potentiomètre qui contrôle la taille du lutin Arduino

Finalement, amusons-nous à varier la taille du lutin Arduino (le dessin d'une carte Arduino dans la fenêtre du logiciel S4A) en tournant un potentiomètre branchée à l'entrée analogique A0:




Puisque l'entrée A0 peut prendre n'importe quelle valeur située entre 0 et 1023, le dessin peut prendre n'importe quelle taille de 0 jusqu'à 102% de sa taille d'origine.

Analog0 = 1023:


Analog0 = 401:

Analog0 = 0:




Conclusion:  C'est effectivement très facile d'interagir avec l'Arduino de cette façon, particulièrement si vous avez déjà un peu d'expérience avec Scratch (mon fils, qui a 13 ans, a appris à programmer avec Scratch à l'école).  Vous pouvez obtenir des résultats rapidement, en ne vous préoccupant que de la logique du code plutôt que de la syntaxe d'un langage de programmation.  Par contre, c'est dommage que la vocation des pins (entrée ou sortie) ne puisse pas être modifiée au besoin.

Yves Pelletier   (TwitterFacebook)

Related Posts Plugin for WordPress, Blogger...