Journal Pocket Science Lab, une carte d'expérimentation GPLv3

Posté par . Licence CC by-sa.
9
12
jan.
2019

De passage au 35C3, j'ai découvert une carte qui n'était pas une carte dédiée au développement matériel et donc programmable comme un arduino, mais qui offrait à la place un ensemble
de ports et capacités préprogrammées dédiées à l'expérimentation: La PSLab (Pocket Science)

printboard

Ce projet open source trouve son origine dans la rencontre d'un développeur matériel indien et de l'organisation FOSSasia qui organise de nombreux évènements et workshops open source, comme son nom l'indique, en Asie. (c'est d'ailleurs sur leur stand qu'un workshop était proposé).

La carte est GPLv3 et au format shield Arduino Mega propose des fonctions d'expérimentation basiques telles que
- Voltmètre
- Source de tension (jusque 5V) et source de courant (3.3mA.. bof)
- Generateur de signal et PWM
- Interfaces I2C, SPI, UART pour les capteurs classiques

Et d'autres à mon avis bien plus intéressant pour un usage en dehors du cercle éducatif:
- Oscilloscope 4 canaux -16 à +16v (devient un oscilloscope portable enregistreur couplé à l'app!)
- Analyseur logique 4 canaux à 4MHz
- Mesure de capacitance

La carte dispose aussi d'un emplacement ESP8266 préprogrammé pour une utilisation
sans fil optionnelle. (apparemment une économie nécessaire pour les marchés émergents)
Je doute par contre du bluetooth annoncé qui n'est normalement pas sur cette puce..

Une app Android transforme donc un téléphone ou tablette
en oscilloscope, voltmètre ou tout autre expérimentation, via un cable OTG.
Oscilloscope sous android

Mais aussi, une API Python 3 complète
(quoique l'interface a quelque problème de dépendances à cause de webkit sur Debian)

En ayant testé un bout de temps, il y a quelque brochages mal placés au dos alors qu'on les branche par le dessus, et apparemment certains bugs sous Android (*), mais ça marche plutôt pas mal pour un usage amateur. Une autre carte sur base de cortex serait en préparation.

PSLab.io
Schema materiel
Source firmware

(*) Je dois dire que j'étais plus concerné par le fait de brancher électriquement une carte en OTG à mon mobile que d'installer une app avec des bugs :)

  • # Bande passante de la fonction oscilloscope

    Posté par . Évalué à 8 (+8/-0). Dernière modification le 12/01/19 à 02:17.

    Tu n'indiques pas la fréquence maximale des signaux affichables en mode oscilloscope (c'est à dire la bande passante), or c'est une caractéristique déterminante. Réponse : bande passante théorique de 1 MHz, en pratique 666 kHz, voire 500 kHz, pour une restitution du signal nettement meilleure (explications sourcées ci-après).

    A titre d'exemple, ta capture d'écran montre un signal de période T légèrement supérieure à 300 µs, c'est à dire de fréquence F d'environ 3 kHz (F = 1/T, avec T = 300 x 10-6 ici).

    Sur PSLab.io, on voit (1) qu'il y a 4 canaux avec un échantillonnage allant jusqu'à 2 millions d'échantillons par seconde, ce qui correspond (2) à une bande passante nominale théorique de 1 MHz (un méga Hertz, 106 Hertz), en tenant compte du théorème de Shannon qui implique que la fréquence d’échantillonnage soit au moins égale au double de la fréquence maximale contenue dans le signal à numériser. En pratique, la restitution du signal est nettement meilleure si la fréquence de numérisation est trois fois supérieure à la fréquence maximale du signal (en divisant par trois, la bande passante est de 666 kHz), voire quatre fois supérieure (bande passante de 500 kHz).

    (1) Dans la section What are the specifications, on peut lire « 4-Channel up to 2MSPS Oscilloscope ». L'acronyme MSPS correspond à l'expression Mega Samples Per Second (million d'échantillons par seconde).

    (2) Cf. par exemple cet article de la revue Mesures (fichier PDF, extrait du n°760, de décembre 2003), intitulé « OSCILLOSCOPES - Comment choisir la fréquence d’échantillonnage ? ». J'en cite un extrait significatif : « il est fondamental de pouvoir disposer d’une fréquence d’échantillonnage élevée par rapport à la fréquence du signal si l’on veut obtenir l’intégrité du signal mesuré. En particulier, il faut prendre en compte le théorème de Shannon. Selon ce théorème, pour restituer fidèlement le signal après numérisation, il faut que la fréquence d’échantillonnage soit au moins égale au double de la fréquence maximale contenue dans le signal à numériser. Autrement dit, il faut prélever au moins deux échantillons pendant une période du signal pour pouvoir le restituer fidèlement, ce qui est un minimum cela se comprend. En théorie, cela peut être suffisant mais en pratique on montre que la restitution du signal est nettement meilleure si la fréquence de numérisation est trois à quatre fois supérieure à la fréquence maximale du signal. […] Les constructeurs d’oscilloscopes prennent en compte le théorème de Shannon dans les caractéristiques de leurs instruments : ils proposent très souvent une fréquence d’échantillonnage double de la valeur de la bande passante. Rappelons que la bande passante de l’oscilloscope donne la fréquence maximale d’un signal avec lequel on peut venir attaquer l’instrument. »

    PS : attention, on trouve des appareils dont les prétentions sont abusives, exemple en vidéo avec le nanoDSO qui est une farce

    • [^] # Re: Bande passante de la fonction oscilloscope

      Posté par . Évalué à 3 (+1/-0). Dernière modification le 12/01/19 à 11:39.

      Tu n'indiques pas la fréquence maximale des signaux affichables en mode oscilloscope (c'est à dire la bande passante), or c'est une caractéristique déterminante. Réponse : bande passante théorique de 1 MHz, en pratique 666 kHz, voire 500 kHz, pour une restitution du signal nettement meilleure (explications sourcées ci-après).
      

      En regardant dans le code firmware, on voit qu'ils activent une clock externe.
      La spec de la puce, elle, donne 500.000 samples/s pour les entrées ADC
      https://www.microchip.com/wwwproducts/en/PIC24EP256GP204#additional-features
      Ce serait donc cette valeur et l’échantillonnage fait en interne par la puce en X4 ?

      • [^] # Re: Bande passante de la fonction oscilloscope

        Posté par . Évalué à 0 (+1/-1). Dernière modification le 12/01/19 à 15:29.

        La spec de la puce, elle, donne 500.000 samples/s pour les entrées ADC

        Ce n'est pas ce que je lis. J'ai considéré le document de spécifications du MCU (microcontrôleur en français, ou µC) PIC24E dont tu donnes le lien, sans aller plus loin que la seule caractérisation du module de conversion analogique numérique. Le document indique ceci comme caractéristique, parmi d'autres, dans la section Advanced Analog Features : « ADC module Configurable as 10-bit, 1.1 Msps with four S&H or 12-bit, 500 ksps with one S&H », ce qui se traduit ainsi en français, en détaillant :

        « module CAN (convertisseur analogique-numérique) configurable en résolution de 10 bits à 1,1 millions d'échantillons par seconde (avec quatre échantillonneurs-bloqueurs), ou bien en résolution de 12 bits à 500.000 échantillons par seconde (avec un échantillonneur-bloqueur) ».

        Pour le détail de la traduction avec des explications sur les concepts, cf. (1).

        Le premier mode implique donc l'usage de quatre circuits intégrés échantillonneurs-bloqueurs (au passage, je suppose qu'il s'agit de composants externes au µC). Je pense que ce mode permet d'échantillonner 4 signaux analogiques en parallèle, avant de les convertir en numérique par le circuit dédié du µC, qui aurait ainsi la capacité de convertir en parallèle 4 valeurs analogiques, chacune à la même fréquence de 1,1 MHz, avec une résolution de 10 bits (si c'est ainsi, je trouve ces caractéristiques bizarrement bien supérieures à celle du 2e mode, dans lequel il y a un seul canal à 500 kHz, certes en 12 bits). Si seul le CAN intégré au µC est exploité pour faire la fonction d'oscilloscope, je ne comprends pas comment il peut être annoncé que la carte PSLab a 4 canaux avec un échantillonnage allant jusqu'à 2 millions d'échantillons par seconde. En effet, 2 n'est pas égal à 1,1 !

        En regardant dans le code firmware, on voit qu'ils activent une clock externe.

        C'est courant d'utiliser un circuit d'horloge externe, avec un quartz dédié. Je pense qu'il n'y a rien de particulier avec ça. Quant à l'idée d'une multiplication de la fréquence en interne au µC, pourquoi pas (c'est courant), mais certainement pas pour multiplier la fréquence de fonctionnement du CAN relativement aux spécifications annoncées, sinon ils auraient indiqué des spécifications de valeurs accrues.

        (1) en détail :

        • ADC est l'acronyme de Analog to Digital Converter (cf. convertisseur analogique-numérique) ;
        • Msps (comme déjà écrit plus haut) est l'acronyme de Mega Samples Per Second (million d'échantillons par seconde) ;
        • S&H est l'acronyme de sample and hold (Wikipédia anglophone), c'est à dire échantillonneur-bloqueur — un circuit analogique qui échantillonne une tension d'un signal analogique variant continuellement puis maintient (bloque) la valeur échantillonnée pendant une période de temps minimale spécifique (utile pour présenter l'information au convertisseur analogique-numérique qui le suit typiquement).
        • [^] # Re: Bande passante de la fonction oscilloscope

          Posté par . Évalué à 1 (+0/-0).

          au passage, je suppose qu'il s'agit de composants externes au µC

          mouai… mais non

          Les schémas de la cartes sont dispos (en fait tout le projet Kicad donc on est bien sur du libre), et il n'y a rien à l'extérieur du MCU qui puisse échantillonner à 2MHz (il n'y a qu'un buffer en entrée et un ampli paramétrable). J'ai vérifier parce que j'espérai trouver un ADC externe.
          Tant qu'à se lancer dans des suppositions non vérifiées, on aura qu'à dire que le microcontrôleur est capable d'échantillonner plus vite mais en réduisant la précision (du genre 8 bits). Ce ne serait pas le premier du genre. A voir dans le user manual (pas le temps, et il est trop tard).

          Pour l'horloge externe, c'est normal vu que les horloges internes des microcontrôleurs sont généralement ajustées à 1% (quand elles sont ajustées, sinon c'est la fête). D'ailleurs de mémoire ce n'est pas suffisant pour faire de l'USB2. Le moindre quartz externe est capable de réduire l'imprécision d'un facteur 100 (celui-ci est à 20ppm soit 0.002%).

          Dernier point, est-ce que tu as vraiment besoin de tout traduire et expliquer ? je veux dire quand tu m'explique le terme ADC, j'ai vraiment l'impression que tu me prend pour un con incapable de faire une recherche google/wikipedia/whatsoever… ça devient lourd.

    • [^] # Re: Bande passante de la fonction oscilloscope

      Posté par (page perso) . Évalué à 1 (+0/-0).

      Pour avoir été à la présentation du PocketLab, la première remarque de mes collègues était sur ces 2 MSPS. Les concurrents chez Seeedstudio font les DSO, dont les 3 premiers utilisent le stm32f103 pour faire le sampling, tandis que dans la derniere version du Quad, le sampling est fait avec un FPGA et monte à 72 MSPS.

      Sinon, pour 1.5EUR tu peux aussi flasher un bluepill avec la fonction d'oscilloscope:

      https://satoshinm.github.io/blog/180105_stm32scope_building_an_amazing_10_oscilloscope_with_an_stm32_blue_pill_lcd_touchscreen_and_stm32-o-scope_software.html

    • [^] # Re: Bande passante de la fonction oscilloscope

      Posté par . Évalué à 3 (+0/-0). Dernière modification le 15/01/19 à 10:20.

      Shanon c'est 2x, mais j'ai l'impression que vous oubliez les harmoniques du signal. Par exemple, un signal à 1 MHZ, peut être restituer complètement sampler à 2 MHZ si le signal est sinusoïdale. Mais il faudrait avoir 4x si le signal est triangulaire pour attraper la première harmonique. Si c'est un signal carré, il faut beaucoup plus. La fréquence la plus élevée est liée au "front" du carré. Si la montée est de 1ns, la fréquence la plus élevée est donc de 1 Ghz.

      "La première sécurité est la liberté"

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.