Arduino UNO etc : Au cœur des entrées/sorties de l’ATmega328 #2

  Рет қаралды 7,298

Eric PERONNIN

Eric PERONNIN

Күн бұрын

Пікірлер: 85
@CDL91-sh8mj
@CDL91-sh8mj 10 ай бұрын
Merci à vous pour ces nombreuses vidéos de haute tenue pédagogique et particulièrement qualitative ! Et respect pour votre savoir et sa mise à disposition pour le plus grand nombre.
@quisait6959
@quisait6959 9 ай бұрын
merci pour toutes ces vidéos pleines de richesse en terme technologique, on apprend énormément par la qualité de votre pédagogie
@cedricverdi9319
@cedricverdi9319 3 жыл бұрын
Très bonne vidéo explicative ! Le contenu est clair et vos explications facilitent la compréhension. Continuez votre bon travail !
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci Cédric
@moonpyk95
@moonpyk95 3 жыл бұрын
J'ai découvert votre chaine il y a très peu de temps (quelques difficultés d'émulation avec KiCad que vous m'avez aidé à résoudre), tout est un régal, merveilleusement bien expliqué. Merci beaucoup Eric !
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci à toi 😁
@danielroibert5631
@danielroibert5631 3 жыл бұрын
Bonjour. Encore merci pour vos formidables vidéos. Il ne faut pas désespérer pour les pouces bleus. Vos vidéos deviendront des références. Il faut peut-être un peu de temps. Comme écrit un plus peu tôt, c’est une chance pour l’internaute de pouvoir accéder à vos [initiations ou cours ? ] de cette façon. :-) C’est frustrant de ne pouvoir mettre qu’un seul pouce bleu. :-)
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci à vous 😊
@sej84
@sej84 Жыл бұрын
Quand la théorie rejoint la pratique c'est génial! Merci pour ces super vidéos. J'espère arriver à reproduire un peu la même chose avec avec un ESP32 grâce à vos vidéos... (et pourquoi pas écrire une librairie pour des capteurs spécifiques...là c'est la théorie :D)
@arthurs1025
@arthurs1025 3 жыл бұрын
Aspects avancés (les tuto de base ne manquent pas!), précis, on perd pas de temps, tout ce qui est dit est important, bref parfait.
@pplemoko5342
@pplemoko5342 3 жыл бұрын
Cette vidéo ainsi que les 2 précédentes est vraiment super intéressante. Tu ouvres encore une voie nouvelle sur la programmation Arduino, j'avoue que j'étais très loin d'imaginer que l'on puisse entrer dans ce niveau de précision avec nos cartes ... Bravo pour ta pédagogie et merci pour le temps que tu passes sur ces vidéos qui sont toujours d'excellente qualité.
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci PP. Prochaine étape les interruptions et très rapidement ensuite tout ce qui concerne les modes d'économies d'énergie.
@antoinedevos3765
@antoinedevos3765 3 жыл бұрын
@@EricPeronnin Je suis impatient ! Encore merci pour vos développements, votre façon d'enseigner, de dévoiler des secrets si bien gardé.
@seanmarotta5969
@seanmarotta5969 2 жыл бұрын
Tellement intéressant ! Merci continuez ainsi
@electronix2919
@electronix2919 3 жыл бұрын
Super vidéo, impossible d'être déçu de toute façon. Super intéressant de le savoir selon le projet. Plein d'encouragement. Merci
@raphaelbouchery4126
@raphaelbouchery4126 3 жыл бұрын
merci pour toutes vos vidéos très intéressantes , il est rares de voir en détails le cœur même des microcontrôleurs je pensais pas qu'il y avais une tel différences de temps vivement la suite
@EricPeronnin
@EricPeronnin 3 жыл бұрын
👍
@ericgrante7043
@ericgrante7043 3 жыл бұрын
Bonjour, quel super travail, toutes les vidéos sont au top. Vivement les vidéo sur l'utilisation de l'oscillo, en règle général on ne maitrise que très peu les outils de mesure et voir des cas concret c'est toujours mieux. Par expérience j'utilise très souvent l'accès au registre de plus j'utilise atmel studio en donc en AVR. en faisant une bibliothèque sur le DHT22 on se rend compte rapidement qu'il est impossible d'utiliser digitalRead ou digitalWrite, on ne récupère que la moitie des informations alors quand passant par les registre il n y a plus de soucis. Dommage que les personnes qui regarde tes vidéos oublie de mettre le pouce bleu, au vue de la qualité de la video et des explications ca ne se comprend pas. En tout cas bonne continuation et a bientôt
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci Eric 😊
@Jojo-nf1yk
@Jojo-nf1yk 2 жыл бұрын
Encore une vidéo passionnante Éric, merci pour tout !!!
@cedricschopfer1797
@cedricschopfer1797 3 жыл бұрын
Vidéo très intéressante comme toujours. Et dire que certaine personne ne comprennent pas pourquoi nous devons passer des fois par l’assembleur pour garantir certains temps :) Au passage très bon choix d’oscilloscope. J’ai le même depuis un peu plus d’un an. Les 4 voix sont appréciable surtout pour faire des démonstrations à des élèves. Je vous recommande effectivement un générateur siglent. Qualité top et surtout la possibilité de pouvoir réaliser des mesure de réponse en fréquence (bode) automatiquement (même si le faire a la main n’est pas si terrible)
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Effectivement, la fonction Bode a motivé mon choix pour le SDG1032X.
@mikl5228
@mikl5228 3 жыл бұрын
Excellente vidéo! Impressionnant le temps gagné en passant par les registres ! Je suis bluffé... Continuez vos vidéos!
@user-rc6qg2di1d
@user-rc6qg2di1d 3 жыл бұрын
W.
@pascalsimonie2314
@pascalsimonie2314 2 жыл бұрын
Très intéressant. Le rebond sur les transitions peut être du à la connexion de masse de la sonde su scope.
@antoinedevos3765
@antoinedevos3765 3 жыл бұрын
Merci pour ces deux vidéos d'explications précises et des gains en terme de temps et consommation. Juste excellent ! Je savais que l'on gagnait du temps .. mais à ce point !! C'est un grand pas !
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci Antoine pour vos commentaires.
@patrickfle4485
@patrickfle4485 3 жыл бұрын
Merci pour cette vidéo où on mesure très clairement l'optimisation du code (vitesse d'accès par registres vs fonctions telles digitalRead/Write qui exécutent sûrement bon nombre de lignes de code C)
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Effectivement, il y a du C derrière pour s'adapter à la variété des cartes que gère l'écosystème Arduino et du contrôle pour obtenir l'effet attendu en toutes circonstances pour les novices qui ne savent pas d'où ils partent.
@xavierletuve5214
@xavierletuve5214 3 жыл бұрын
Bravo pour vos videos, de l’Arduino de ce niveau je n’ai jamais vu ça, j’apprends beaucoup , merci
@romaric3545
@romaric3545 3 жыл бұрын
Vidéo très intéressante
@Samer237
@Samer237 2 жыл бұрын
Tous vos vidéos sont intéressant!! Chapeau 👍 En même temps je m’intéresse au bus can et le calcule de time quanta et le baudrate si vous avez des vidéos abordant ce sujet ?!!!
@jeimalet
@jeimalet 3 жыл бұрын
C'est du bon travail!
@steved1122
@steved1122 3 жыл бұрын
Encore une super série !!! Vraiment merci ! On en veut encore ;-) !
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Ça vient 😁
@gilleshenri9529
@gilleshenri9529 3 жыл бұрын
salut Super comme d'ab ;o) AaaRrrggg...... cause de toi, je suis obligé de revoir le soft de ma télécommande j'ai hâte de voir la présentation de l'oscillo ++
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Bonjour Gilles. Revoir le code de ta télécommande n'a de sens que si cela te permettra de réaliser une économie d'énergie. Cela dépend donc de la façon dont tu l'as implémenté.
@gilleshenri9529
@gilleshenri9529 3 жыл бұрын
@@EricPeronnin bonjour effectivement le but est de réaliser des économies d'énergie car elle embarque du Bluetooth et une batterie 3.7v/1800 MAmp n'étant pas un pros j'avance doucement ;o) ++
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Bonjour. C'est une télécommande utilisée pour quoi ? Plusieurs fois par jour ?
@gilleshenri9529
@gilleshenri9529 3 жыл бұрын
@@EricPeronnin Bonjour. Elle est destinée à commander une CNC et pour l'utilisation, 2 x par semaine plusieurs heures je me suis embalé sur le UNO, elle est à base ESP32 bonne journée
@mpm990
@mpm990 3 жыл бұрын
Tres tres intéressant , grand merci pour le temps consacré vos vidéo , je m'abonne
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci et bienvenue Olivier
@michelgiustina1124
@michelgiustina1124 3 жыл бұрын
Bonjour et merci pour cette vidéo
@cyrillethierry9515
@cyrillethierry9515 3 жыл бұрын
Excellent ! Merci pour vos vidéos elles sont géniales, vous devriez vous faire sponsoriser par une ou deux marques de matériel arduino (ELeego, Freenove, AZdelivery etc..) Je n'avais pas conscience que la différence de vitesse était aussi importante. Impossible par exemple de lire le retour d'un capteur infrarouge directement avec les digitalread() ou échanger dans un protocole 2 wire sans l'accès direct aux ports. Je crois que l'on peut également manipuler (lire) directement les registres du timer. Peut être dans une suite?
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci pour votre commentaire. Chaque fois que cela peut s'avérer utile pour palier à une insuffisance des fonctions Arduino, on verra effectivement comment utiliser les registres d'un périphérique. Ce sera le cas des timers.
@pierrebaldellon4207
@pierrebaldellon4207 3 жыл бұрын
Bonjour et merci pour votre vidéo. C'est toujours intéressant. J'ai hâte de voir comment vous utilisez l'oscilloscope comme un serveur Web. J'ai le "petit frère" du votre en version 2 entrées et j'ai été obligé de télécharger de lourd logiciel afin de l'utiliser à distance que ce soit en usb ou en ethernet
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Bonjour. Je me suis peut-être mal exprimé au sujet du serveur Web. Celui dont je parle est intégré à l'oscilloscope et fournit l'interface que vous voyez à l'écran ce qui permet de piloter l'oscilloscope directement à partir du PC. Il n'est pas possible de faire autre chose de ce serveur Web.
@pierrebaldellon4207
@pierrebaldellon4207 3 жыл бұрын
C'est bien ce que j'avais compris ;). En tous cas je voudrais vous remercier de vos vidéos car on voit l'optimisation qu'on peut faire sur les programmes. Dans le cadre amateur, ce n'est pas trop gênant mais dès que les spécifications commencent à être assez fines, il y'a besoin d'ajustement.
@jrioublanc
@jrioublanc 3 жыл бұрын
Merci pour cette vidéo qui approfondie bien l'utilisation du micro-contrôleur. Effectivement, plus le code s'éloigne du matériel pour devenir proche du langage humain, plus le traitement est long. On se rapproche du code assembleur, on franchit le pas bientôt ? Je suis impatient d'avoir une nouvelle vidéo sur ce thème.
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Bonjour Jérôme. Assembleur ? Non. A part pour copier certaines séquences très particulières imposées par la documentation du microcontrôleur, je ne vois pas l'utilité d'utiliser l'assembleur. Les compilateurs font de toutes façons mieux que des programmeurs moyens en assembleur.
@renelefebvre53
@renelefebvre53 3 жыл бұрын
Bravo pour cette vidéo très claire . Pour la prise en main de cet oscilloscope , je te conseille les vidéos de Philippe Demerliac sur la chaîne Cyrob . Je vais faire cet essais avec des cartes STM32 ( BluePill et BlackPill) . P.S. Maintenant VSC et PlatformIO sont mes nouveaux amis . Merci
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci René. Pour la prise en main de l'oscilloscope, 25 années d'enseignement de l'électronique m'en ont apporté une connaissance convenable. Il s'agit surtout de passer un peu de temps pour construire des séquences pédagogiques qui puissent présenter un intérêt pour vous toutes et tous qui suivez mes vidéos. La synchronisation sur une impulsion avec un cas concret en est un exemple.
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Au niveau STM32 que je ne pratique pas, il est possible que les résultats soient différents. Vous me direz ce qu'il en est.
@antoinedevos3765
@antoinedevos3765 3 жыл бұрын
Ces tests, avec le STM32 serait très intéressant en comparaison avec l'Arduino.
@tanguymarion6368
@tanguymarion6368 3 жыл бұрын
la lib HAL (hardware abstraction layer) qui est utilisée sur STM32 pour configurer les pins ralentit la vitesse d'exécution. Il me semble que l'écriture direct dans les registres est jusqu'à 7 fois plus rapide que l'utilisation de HAL. Concernant la lib LL (low layer) j'en ai aucune idée, mais ça doit toujours être un peu mois rapide que l'écriture direct dans les registres.
@laurentserra3767
@laurentserra3767 3 жыл бұрын
Merci pour cette vidéo et pour toutes les autres aussi! Moi y'a une question que je me pose chaque fois que je vois un truc du style "PORTD != (1
@MrArpSolina
@MrArpSolina 3 жыл бұрын
Bonne question. Je viens de la poser également. Je peux imaginer que le compilateur est capable de convertir une expression litérale comme (1
@65FSX
@65FSX 3 жыл бұрын
Merci Eric pour ces tutos qui nous emmènent au fond des choses avec un esprit pédagogique hors du commun. Petite précision concernant l'hystérésis au changement de front, je me demande si cela ne vient pas du régulateur intégré à la carte Arduino. Il faudrait faire un test en l'alimentant directement par le Vin, de mémoire je crois que cette broche alimente la carte après le régulateur. Je vais tester ce soir, le Tektronix 464 devrait s'affranchir de cette tache :) Encore merci pour le temps passé
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Vous parlez du dépassement au moment des commutations ?
@65FSX
@65FSX 3 жыл бұрын
@@EricPeronnin oui tout à fait, on retrouve ce phénomène sur le datasheet du régulateur (NCP1117ST50T3G) de la carte Uno R3 mais il ne dure qu'une alternance (20mV crête pour info).
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Ca, c'est normal avec une amplitude de 20mV. Là, avec 1V de dépassement, je pense que c'est clairement lié au routage et à l'influence du placement des capacités de découplage.
@fabricemotard4312
@fabricemotard4312 3 жыл бұрын
Super vidéo comme d'habitude ! 👏👍 Bon j'avoue que la vidéo sur les registres j'ai eu du mal mais en regardant les suivantes on comprend mieux l'intérêt de travailler avec les registres et du gain ! Une question je voudrais savoir si dans l'une de vos prochaine vidéo si vous alliez abordé le Sleepmode et comment fait on pour réveiller l'arduino pour économiser au maximum l'énergie ! Merci encore pour vos vidéos super intéressante !! 😉 Et je pense bientôt moi aussi contribuer a l'achat du prochain matériel, pour le travail que vous faites et la qualités des vidéos encore merci !
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci. On verra les modes de mise en veille. Avant, il faut s'intéresser aux interruptions. Ce sera l'objet de la prochaine vidéo lorsque j'aurai trouvé le temps de la préparer.
@MrArpSolina
@MrArpSolina 3 жыл бұрын
Encore une superbe vidéo. Sur l'oscilloscope, pourquoi les 5 impulsions correspondantes à l'accès direct sont-elles intriquées dans les impulsions digitalWrite(), dans la 5ième impulsion plus précisément ?
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Elles ne sont pas intriquées. Elles leur succèdent. L'ensemble se répète ensuite perpétuellement.
@lionneldupontavice9710
@lionneldupontavice9710 3 жыл бұрын
Et une contribution supplémentaire
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci beaucoup Lionnel 😊😊😊
@williamscaubet
@williamscaubet 8 ай бұрын
Bonjour, Vous indiquez dans votre vidéo qu'il faut un 0Logique après la porte inverseuse pour rendre passant le transistor mosfet (activation de la résistance de pullup). Ma question est comment est ce possible avec une tension Vgs=0 ?. Ceci dit vos tutoriels ne manquent pas d'atouts.
@renelefebvre53
@renelefebvre53 3 жыл бұрын
Voiçi quelques résultats à propos de la vitesse des instructions DigitalWrite() avec les cartes à ma disposition. ATMéga328 (arduino UNO) 200 digitalWrite() = 660µs ==> 3.3 µs ST32F103 (blue pill) 200 digitalWrite() = 160µs ==> 0.8 µs (option smallest code) ST32F103 (blue pill) 200 digitalWrite() = 132µs ==> 0.66 µs (option fastest code) ST32F103 (mapple ) 200 digitalWrite() = 126µs ==> 0.63 µs ST32F401 (black pill) 200 digitalWrite() = 57µs ==> 0.285 µs Pour les tests en acces diret aux registres IO, ce n'est pas de la tarte. Il faut que je lise et que je comprenne les 26 pages de spécifications sur les IO dans les 779 pages du manuel complet ! Ces tests ont été effectués avec l'ide Arduino, car j'ai des difficultés pour activer mon dongle STlink avec PlatformIO... La carte Black Pill est assez récente, est fournie avec un bootloader USB et un connecteur USB-C , 256 K d'eeprom et 64K de ram . A suivre
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Merci pour ces tests. C'est conforme à ce qu'on obtient avec la Uno car l'horloge des STM32 doit être à 48MHz. J'ai une bluepill. Je regarderai si je trouve le temps.
@gaelc13
@gaelc13 3 жыл бұрын
Indépendamment de l'exercice pratique, je me demande si mesurer l'écart de temps entre des #define et des appels de fonctions fait réellement sens : les appels de fonction sont nécessairement plus coûteux, car il faut ajouter un préambule et préparer la stack ou les registres, et revenir à l'appelant. Le risque, c'est de laisser croire que l'utilisation directe des registres aurait quelque chose de "magique" - alors qu'au bout du compte, c'est aussi ce que fait la fonction - c'est surtout une affaire d'arbitrage entre facilité / lisibilité / structuration du code / performances.
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Vous avez raison d'insister sur l'importance de la facilité, lisibilité ... Ce sont des points que je considère comme essentiels. Dans le cas présent, l'écart n'est pas le seul fait de l'appel de fonction et de ce que cela implique en terme de sauvegarde d'environnement. Les fonctions Arduino ont la vertu de s'adapter à tous types de cartes, contrôlent si les broches sont utilisées en pwm... Des versions allégées et inline de ces fonctions pourraient offrir la même lisibilité en conservant l'efficacité montrée ici. Enfin, je ne dis pas qu'il faille se passer des fonctions proposées par Arduino mais que certaines applications justifient d'être plus proche du matériel.
@gaelc13
@gaelc13 3 жыл бұрын
​@@EricPeronnin J'ai bien compris. C'était juste une précision qui me semblait utile, car l'optimisation est toujours un arbitrage. Je suis souvent confronté à des personnes qui croient à la "silver bullet" (la nouvelle techno qui va tout résoudre par exemple). Cela étant, merci pour ces vidéos : en français c'est rare, et ça repose un peu le cerveau. J'ai investi dans un Zinq pour jouer avec vous :)
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Une précision importante. Je réalise mes vidéos pour apporter un éclairage différent à ceux qui prennent le temps de les regarder et de comprendre ce dont il y est question. Je ne suis pas un spécialiste et même si j'ai un socle de connaissance assez solide, la réalisation de ces vidéos m'imposent de me documenter. Au départ, je les réalisais pour des étudiants. Maintenant, je constate que ceux-ci ne représentent que 25% des spectateurs. Je passe beaucoup de temps à les préparer en espérant rendre les choses les plus compréhensibles possibles. Durant ma préparation, il y a beaucoup de points auxquels je pense en me disant qu'il faut les aborder lors de l'enregistrement. Mais je n'écris pas tout le discours et je m'appuie sur le diaporama que vous pouvez voir. Ensuite, j'improvise avec pour conséquence de devoir refaire parfois 2 ou 3 fois la vidéo pour ne pas avoir à réaliser de montage mais aussi d'oublier de parler de points essentiels comme celui que vous venez de souligner. Votre remarque m'amènera à faire une 3è vidéo sur le sujet car je crois important de préciser les choses et le contexte qui peut amener à faire le choix de moins de lisibilité par exemple. Quelle carte Zynq avez-vous acquise ?
@gaelc13
@gaelc13 3 жыл бұрын
@@EricPeronnin J'ai opté pour la 7020, dans l'idée de pouvoir pousser un peu plus loin l'expérimentation si l'occasion se présente.
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Avec la dernière Zybo ?
@danielroibert5631
@danielroibert5631 3 жыл бұрын
Je n’imaginais pas que la fonction digitalWrite() était si mal écrite. Selon mes souvenir, je n’ai pas autant de pertes avec un autre compilateur sur PIC. Si, quelqu’un avait une idée de la raison de cette perte de temps dans l’environnement Arduino ?
@EricPeronnin
@EricPeronnin 3 жыл бұрын
Bonjour Daniel. Cette lenteur est la conséquence d'une architecture très versatile où les mêmes fonctions et mêmes numérotations de broches permettent de travailler avec des cartes très différentes les unes des autres. Il faut aussi considérer que les fonctions effectuent des contrôles qui ne sont pas utiles au programmeur averti comme éteindre le PWM pour effectuer une sortie par exemple. J'ai utilisé par le passé le PICC, compilateur très optimisé mais il faut garder à l'esprit qu'Arduino permet à des non initiés de programmer des microcontrôleurs sans même savoir ce qu'est un port d'entrées/sorties.
@danielroibert5631
@danielroibert5631 3 жыл бұрын
@@EricPeronnin Bonjour et merci. Ok, vu comme ça, ça peut se comprendre :-)
@michelgranda1883
@michelgranda1883 2 жыл бұрын
Très belle vidéo. Puis-je avoir votre adresse mail??
Arduino UNO etc : Au cœur des entrées/sorties de l’ATmega328 #1
20:36
I Took a LUNCHBAR OFF A Poster 🤯 #shorts
00:17
Wian
Рет қаралды 16 МЛН
小丑和白天使的比试。#天使 #小丑 #超人不会飞
00:51
超人不会飞
Рет қаралды 38 МЛН
LoRa - Long-Range Radio for IoT | Arduino, ESP32, RPI Pico
1:07:58
DroneBot Workshop
Рет қаралды 327 М.
A $9 Introduction to the RISC-V Future of Computing
26:34
apalrd's adventures
Рет қаралды 360 М.
Connaître différents modèles d’Arduino
8:12
Lepton Craft
Рет қаралды 13 М.
Using Rotary Encoders with Arduino
32:10
DroneBot Workshop
Рет қаралды 708 М.