Le coin de ti_dic

Aller au contenu | Aller au menu | Aller à la recherche

lundi, mai 11 2020

Micro I2S Inmp441 pour raspberry Pi

Souhaitant me tester a la domotique , j'ai acheté un petit micro I2S pour faire de mon raspberry pi un assistant vocal ..

Lien vers l'article sur Amazon

J'ai bien trouvé des pages indiquant comment le faire fonctionner, mais toutes celles ci étaient un peu ancienne, tout était présent dans raspbian pour que mon micro fonctionne sauf l'arbre des périphériques.

Cablage :

SCK du micro sur GPIO18 du pi
L/R sur la masse (determine le canal gauche /droite dans le fichier son)
WS sur GPIO 19
GND sur GND
VDD sur 3.3V
SO sur GPIO20

Donc le micro en question après différentes recherche, est compatible avec un ICS43432

pi@raspberrypi:/boot $ sudo find /lib/ -name *43432*.ko
/lib/modules/4.19.97-v7+/kernel/sound/soc/codecs/snd-soc-ics43432.ko

Voici le fichier dts que j'ai utilisé :

/dts-v1/;
/plugin/;

/ {
    compatible = "brcm,bcm2708";

    fragment@0 {
        target = <&i2s>;
        __overlay__ {
            status = "okay";
        };
    };

    fragment@1 {
        target-path = "/";
        __overlay__ {
                ics43432_codec: ics43432-codec {
                #sound-dai-cells = <0>;
                compatible = "invensense,ics43432";
/*                IOVDD-supply = <&supply>;*/
                status = "okay";
            };
        };
    };

    fragment@2 {
        target = <&sound>;
            sound_overlay: __overlay__ {
            compatible = "simple-audio-card";
            simple-audio-card,format = "i2s";
            simple-audio-card,name = "ics43432";
            simple-audio-card,bitclock-slave = <&dailink0_slave>;
            simple-audio-card,frame-slave = <&dailink0_slave>;
            simple-audio-card,widgets =
                    "Microphone", "Microphone Jack";
            simple-audio-card,routing =
                    "PDM_DAT", "Microphone Jack";
            status = "okay";
            simple-audio-card,cpu {
                sound-dai = <&i2s>;
            };
            dailink0_slave: simple-audio-card,codec {
                sound-dai = <&ics43432_codec>;
            };
        };
    };


    __overrides__ {
        card-name = <&sound_overlay>,"simple-audio-card,name";
    };
};

Ce fichier est adapté d'un overlay de adau7002 qui soit dit en passant fait aussi tres bien fonctionner mon micro.. Plus qu'a compiler le dts en binaire et copier le binaire au bon endroit ...

> dtc -@ -I dts -O dtb -o ics.dtbo ics.dts
> sudo cp ics.dtbo /boot/overlays/

Ensuite bien sur, il faut activer tout ca, dans config.txt, ajouter :

dtoverlay=ics,alsamicro

Penser a activer le module I2S en décommentant dans ce même fichier :

dtparam=i2s=on

un petit reboot du pi, et ....

pi@raspberrypi:/boot $ arecord -l
**** Liste des Périphériques Matériels CAPTURE ****
carte 1: ics43432 [ics43432], périphérique 0: bcm2835-i2s-ics43432-hifi ics43432-hifi-0 [bcm2835-i2s-ics43432-hifi ics43432-hifi-0]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0

mardi, avril 28 2020

Controleur de LED à base de ESP8285

J'ai acheté il y a peu un contrôleur de led Wifi pour remplacer mon ancien contrôleur contrôlable uniquement par télécommande infra rouge. Ce nouveau contrôleur a 8EUR sur amazon, est indiqué compatible Alexa, et c'est ce qui m’intéressait.

Bref aussitot acheté, aussitot démonté et ... Ouverture_led_controller Qu'elle bonne surprise, le cœur de tout ça est un ESP8285, un petit frère de l'ESP8266, avec lequel je domotise déjà mes télérupteurs grâce a Alexa :)

Et au dos on voit, que le port série est à disposition, via des pastille ainsi qu'une pastille nommé IO0(au départ j'avoue, que je lisais 100 et non pas IO0). Après un bref coup d’œil au datasheet de l'ESP8285 et une vérification au multimètre, la pastille IO0 semble être connecté au GPIO0 du microcontrôleur. Donc si on la connecte à la masse, il est possible de reprogrammer la bête avec un simple stick USB TO TTL, et les logiciels Arduino. verso_led_cotroller Ci dessus la photo des pastilles, sur lesquels j'ai ajouté un peu d'étain pour pouvoir y souder des fils.

Donc plus qu'a cabler :

  • TX du stick USB/TTL sur Rx du contrôleur
  • RX du Stick USB/TTL su Tx du contrôleur
  • GND du stick sur GND du contrôleur
  • IO0 Contrôleur sur GND

Je lance PlatformIO, créé un nouveau projet pour la plateforme générique ESP8285, je compile, je tente l'upload et hourra je viens d'écrabouiller le firmware de mon contrôleur de led que je n'ai encore jamais utilisé, avec un firmware qui ne fait rien et le fait bien !!

Bon voici un petit firmware qui permet d'utiliser le monstre avec Alexa sans passer par le cloud sur sourceforge:

Il me reste a gérer le capteur infra rouge et mon contrôleur sera redevenu entièrement opérationnel

samedi, avril 27 2019

Ouille les pages perso free et postgresql c'est pas ca ...

Il semble qu'il y a des problèmes de connexion entre les pages perso free et le serveur postgresql, donc je transfère mon ptit blog ici ! http://arnault.cedric.free.fr/

Ports séries du RTD1262DA

>La première chose a faire dixit le guide de portage de mips lorsqu'on veut porter un noyau linux est de trouver le port série de la machine alors au boulot ...

Lire la suite...

Verbatim MediaStation HD DVR

Depuis la modification des normes TNT, mon magnétoscope numérique est un peu devenu inutile, alors je m'amuse avec...

Lire la suite...

Adaptateur série RS232 Vers 3,3V

Schéma d'un adaptateur que j'avais trouvé je ne sais plus ou sur le net à l'époque ou je bricolais ma neuf box sur https://www.neufbox4.org/blog/

Lire la suite...

Level Shifter pour la communicatio I2C entre Raspberry et Arduino

Le Raspberry fonctionne en 3,3V et l'arduino en 5V, pour qu'ils puissent communiquer sur le bus I2C, il faut des adaptateurs de tensions, voici ceux que j'utilise, acheté les 10 pour une poignée d'euro ... LevelShifter.JPG

Pour effectuer la soudure j'utilise une platine à essais, en positionnant les supports sur la platine (pour être sur de ne pas le souder de travers), et le circuit imprimé sur les supports.

Après plus qu'a connecter :

RaspPi_i2c_arduino.svg

Ici une liste de lien utile pour apprendre a bricoler les appareils à base de linux