Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Homepage
Ca tourne vite ! et une photoresistance (LDR) est lente !
La boucle du programme:
- Calibration du capteur
- Mesures
- Affichage sur la console
Le code utilise un Timer pour mesurer le temps écoulé, des fonctions et des structures.
Console¶
La vitesse de la communication USB est configurée à 115.200 baud (par défaut elle est de 9600.) A cette vitesse on peut se permettre d'envoyer chaque mesure sur la console et on reste dans les 1ms par boucle.
Au début, a 9600 bauds, on a regroupé les mesures par paquet de 1.000 pour les afficher d'un coup. Pendant la boucle on ne fait que remplir un tableau de float[1000]
(il semble avoir du mal á aller au delá de 1000?) et apres les mesures on dump (affiche) le tableau.
Physique¶
La carte est assez rapide pour faire environs 30.000 mesures par seconde. Donc théoriquement mesurer des vitesses de rotation jusqu'a 15.000 tours/s ! La premiere limite qu'on atteindra est la latence de la photoresistance. A priori entre 10 et 500 ms et ce n'est pas linéaire. Elle met plus de temps (j'ai lu jusqu'à une seconde !?) pour augmenter sa résistance après avoir été éclairée.
Premières visu¶
Après avoir visualisé les mesures par paquets de 1.000. Il semble y avoir un autre phénomène. On observe une sorte de peigne, comme si une mesure sur deux ne rencontrait pas de résistance (valeur a 1). Mais ce n'est pas systématique non plus. https://docs.google.com/spreadsheets/d/1bWVamwfsqNKRFRfbD6L3g7Slo4lBYWXPn2ICLtPI5HI/edit?usp=sharing
Avec capa¶
Avec la capa de 10µF on a une courbe plus lisse.
Avec sortie des valeurs¶
afficher chaque valeur ralenti un peu la boucle, mais on reste à 1 ms par mesure, ce qui est suffisant.
On constate mieux le problème de saturation. Si la LDR est bien éclairé elle reste à 1.0, elle met du temps à re-descendre, mais montre des oscillations dès qu'on ne sature plus (pas besoin d'attendre 500ms!). On voit du 3 à 20 Hz environs, avec 25 points d'amplitude.
Sur une oscillation on pourra faire environs 50 mesures et voir un écart de 25 points. Ca reste largement suffisant.
A suivre ...¶
- Pour l'instant on mesure beaucoup de bruit. Il faut resoudre ce probleme de "peigne".
- On trouve des info sur le bruit du convertisseur https://developer.mbed.org/users/chris/notebook/Getting-best-ADC-performance/ mais ca n'est pas le meme probleme clairement. (en plus c'est vieux, le probleme a peut etre ete corrige depuis)
- Ajout d'une capa polarizée (pourquoi ?) de 10µF https://electronics.stackexchange.com/questions/153263/stm32f103rb-adc-pics-included-strange-values-for-temperature-sensor-lm35.
- C'est effectivement mieux
- Il faudrait aussi trouver un moyen rapide d'afficher la courbe de mesure.
- J'ai tenté d'écrire dans un fichier, mais il n'y a pas de système de fichier sur la Nucleo L053 ...
- Nouvelle mise à jour bientôt ...
Next¶
- Il faut juste indiquer les conditions d'éclairage:
- LED rouge si on a trop de lumiere (on sature á 1)
- LED bleu si on a pas assez de lumiere (a determiner)
- LED orange si on a pas assez d'amplitude
- Passer le AnalogIn de
float
(32b) àunsigned short
(16b) https://developer.mbed.org/handbook/C-Data-Types - FFT https://developer.mbed.org/questions/tag/FFT/?sort=votes
- Faire clignoter une LED a la vitesse du HandSpinner pour faire un effet stroboscopique et "arrêter" l'image.
- Accélérer le HandSpinner avec un électro-aimant. (principe du moteur électrique).
Reference¶
- Timer: https://developer.mbed.org/handbook/Timer et https://developer.mbed.org/questions/61002/Equivalent-to-Arduino-millis/
- Photoresistance: http://www.differencebetween.net/technology/hardware-technology/difference-between-ldr-and-photodiode/ et http://www.resistorguide.com/photoresistor/
- Inspiration: https://blog.adafruit.com/2017/05/31/detecting-fidget-spinner-speeds-with-a-ldr-and-the-microbit/
- Noter que la methode (l'algo) est très différente !