Eco-conception de site web : un guide pratique
Lire cet excellent billet Eco-conception de site web : un guide pratique
Lire cet excellent billet Eco-conception de site web : un guide pratique
Bonjour à tous,
Profitons d'un peu de temps libre pour faire du retro-computing!
Après le test de boot du Sun Ultra 5, j'ai essayé d'initialiser la NVRAM et c'est à ce moment que la machine a cessé de fonctionner.
Plus d'image sur le moniteur... Argh!
Heureusement que le Service Manual du Sun Ultra 5 est disponible sur le Net, cela facilite grandement les recherches :-)
Presser la combinaison STOP + D à la mise sous tension permet de démarrer le test de la carte mère (Motherboard POST). POST signifiant Power On Self Test.
Selon le tableau ci-dessous, j'ai un problème de RAM!!!
et dire qu'elle a fonctionné correctement pendant un moment.
![]() |
Sun Ultra 5 - Keyboard Error Code |
Lors du POST, la première opération effectuée est d'ouvrir le port série (Port A) pour y envoyer les messages de POST.
Voici comment réaliser la connexion à l'aide d'un convertisseur USB-vers-RS232.
![]() |
Connexion TIP entre PC et SUN ULTRA 5 Cliquer pour agrandir |
Voici les messages récupérés:
Hardware Power ON @(#) Sun Ultra 5/10 UPA/PCI 3.19 Version 4 created 1999/04/28 15:05 Probing keyboard Done %o0 = 0000.0000.0055.4001 Executing Power On SelfTest @(#) Sun Ultra 5/10 (Darwin) POST 3.0.7 (Build No. 612) 14:24 on 04/28/99 CPU: UltraSPARC-LC (Clock Frequency: 360MHz, Ecache Size: 256KB) Init POST BSS Init System BSS NVRAM NVRAM Battery Detect Test NVRAM Scratch Addr Test NVRAM Scratch Data Test DMMU TLB Tags DMMU TLB Tag Access Test DMMU TLB RAM DMMU TLB RAM Access Test Probe Ecache Probe Ecache Ecache Tests Ecache RAM Addr Test Ecache Tag Addr Test Ecache RAM Test Ecache Tag Test All CPU Basic Tests V9 Instruction Test CPU Tick and Tick Compare Reg Test CPU Soft Trap Test CPU Softint Reg and Int Test All Basic MMU Tests DMMU Primary Context Reg Test DMMU Secondary Context Reg Test DMMU TSB Reg Test DMMU Tag Access Reg Test DMMU VA Watchpoint Reg Test DMMU PA Watchpoint Reg Test IMMU TSB Reg Test IMMU Tag Access Reg Test All Basic Cache Tests Dcache RAM Test Dcache Tag Test Icache RAM Test Icache Tag Test Icache Next Test Icache Predecode Test Memory Probe Probe Memory INFO: All the memory banks in 10 bit column mode bank 0: 0MB bank 2: 0MB *********************** STATUS =FAILED TEST =Probe Memory SUSPECT=No DIMM MESSAGE=No Memory Detected or only a single DIMM in a bank Status of this POST run: FAIL manfacturing mode=CHAMBER Time Stamp [hour:min:sec] c3:b4:80 [month/date year] e0/e5 1970 Power On Selftest Completed Software Power ON0.0000.0000.0001 ffff.ffff.f00b.3190 0002.3333.0200.001b @(#) Sun Ultra 5/10 UPA/PCI 3.19 Version 4 created 1999/04/28 15:05 Clearing E$ Tags Done Clearing I/D TLBs Done Probing Memory Done MEM BASE = 0000.0000.0000.0000 MEM SIZE = 0000.0000.0000.0000 MMUs RED State Exception TL=0000.0000.0000.0005 TT=0000.0000.0000.0010 TPC=0000.0000.0000.4200 TnPC=0000.0000.0000.4204 TSTATE=0000.0044.1500.1500 TL=0000.0000.0000.0004 TT=0000.0000.0000.0010 TPC=0000.0000.0000.4200 TnPC=0000.0000.0000.4204 TSTATE=0000.0044.1500.1500 TL=0000.0000.0000.0003 TT=0000.0000.0000.0010 TPC=0000.0000.0000.4200 TnPC=0000.0000.0000.4204 TSTATE=0000.0044.1500.1500 TL=0000.0000.0000.0002 TT=0000.0000.0000.0010 TPC=0000.0000.0000.0600 TnPC=0000.0000.0000.0604 TSTATE=0000.0044.1504.1400 TL=0000.0000.0000.0001 TT=0000.0000.0000.0030 TPC=0000.01ff.f000.1f98 TnPC=0000.01ff.f000.1f9c TSTATE=0000.0044.1500.0400
Il y a effectivement un problème de mémoire puisque les deux modules ne sont pas détectés.
C'est vraiment pas de chance... j'avais eu un POST avec un signal vidéo.
C'est au moment de l'initialisation de la VRAM en vue d'installer un OS que tout a cessé de fonctionner.
Sauf erreur, la RAM s'installe par deux barrettes.
Je n'ai pas encore eu le courage de vérifier les lignes d'adresses à l'oscilloscope... l'un des modules RAM est probablement défectueux.
Essayer de trouver deux modules RAM de remplacement.
16-Mbyte DIMM 60-ns, 16-Mbyte DIMM
32-Mbyte DIMM 60-ns, 32-Mbyte DIMM
64-Mbyte DIMM 60-ns, 64-Mbyte DIMM
128-Mbyte DIMM 60-ns, 128-Mbyte DIMM
256-Mbyte DIMM 60-ns, 256-Mbyte DIMM
32-Mbyte DIMM 50-ns, 32-Mbyte DIMM
64-Mbyte DIMM 50-ns, 64-Mbyte DIMM
128-Mbyte DIMM 50-ns, 128-Mbyte DIMM
256-Mbyte DIMM 50-ns, 256-Mbyte DIMM
J'ai même retrouvé les références SUN (SUN part Number)
![]() |
SUN Part Number for SUN ULTRA 5 |
Ce n'est vraiment pas de chance.
Bonjour à tous,
L'écran du célèbre Nokia3310 est bien connu par Maker. Ses 84 * 48px permettent
Nous lui avions déjà consacré un article en juillet 2020.
C'est aussi l'occasion de sortir le Pico-2-Explorer qui ne quitte décidément plus le bureau.
![]() |
LCD3310 (PCD8544) sous MicroPython et Pico-2-Explorer |
Cette fois, nous avons eu l'occasion d'avoir une dalle brute avec son ruban 8 contacts.
Ce fût l'occasion de documenter la nappe et tester cet écran avec un Raspberry-Pi Pico. Après plus de 4 ans, la bibliothèque fonctionne toujours comme un charme.
![]() |
Source: esp8266-upy/modlcd3310 |
Tester l'écran se fait très facilement
import time from machine import SPI, Pin from lcd3310 import LCD3310 # Pico - create the bus & Pins ssel = Pin( Pin.board.GP9, Pin.OUT, value=True ) # Not selected by default lcd_reset = Pin( Pin.board.GP13, Pin.OUT, value=True ) # Not selected by default lcd_data = Pin( Pin.board.GP12, Pin.OUT, value=True ) # Data/Command (Data by default) spi = SPI( 1, miso=Pin.board.GP8, mosi=Pin.board.GP11, sck=Pin.board.GP10 ) lcd = LCD3310( spi, ssel, lcd_reset, lcd_data ) print( "contrast: %s" % lcd.contrast ) # See all Framebuffer Method for more information # https://docs.micropython.org/en/latest/library/framebuf.html # lcd.fill( 1 ) # Light-up all points lcd.text( "Hello", 0,0,0 ) # text, x,y, color=0=transparent lcd.update() time.sleep( 3 ) lcd.clear() lcd.text( "MCHobby<3", 3, 12 ) lcd.text( "Micro-", 3, 12+10 ) lcd.text( " Python", 3, 12+10+10 ) lcd.rect(0,0,83,47,1) lcd.update() lcd.contrast = 110 # 0..127
Pour en savoir plus, n'hésitez pas à consulter le tutoriel disponibles dans le dépôt esp8266-upy/modlcd3310 .
Bonjour à tous,
Nous étions loin de nous attendre à une telle surprise dans le monde des Makers... la politique douanière de Donald Trump aura, pour nous Maker Européen, un impact significatif!
![]() |
Source: Tariffs of Tump sur Cartoon movement |
Ainsi, depuis plus d'une décade, nous distribuons des produits en provenance d'Adafruit USA et Pololu USA. Des produit biens conçus, très pratiques pour le Maker et le prototypage de produit mais surtout d'une fiabilité hors-pair!
Avec son slogan "America First", Trump à mis au point des taxes douanières que le monde entier juge avec une scepticisme. C'est à croire que Trump prend le monde pour un Monopoly géant... et forcement, nombre de pays/continents visés appliquent des sanctions réciproques.
Pololu USA, l'un de nos fournisseurs, annonce un changement de sa grille tarifaire suite à l'explosion du prix de ses matières premières (composants, plastiques, moteurs) en provenance de Chine.
Le résultat, c'est:
Outch! Ca fait mal! ... pour nous comme pour Pololu dans son propre pays.
Un petit mot de la fin:
Un Donald cela Trump énormément.
Bonne journée,
Dominique
Bonjour à tous,
Cet article n'est pas encore un vrai projet de récupération mais rien n'exclus qu'il puisse le devenir.
Comme vous pouvez-vous en douter, nous allons inspecter les entrailles du jouet.
Je vous présente le GB40, un petit Jump Starter capable de développer 1000A (7000 joules) pour aider au démarrage d'un véhicule.
Je dois avouer qu'il est effectivement capable d'offrir le petit coup de pouce nécessaire au démarrage hivernal de mon Diesel.
![]() |
Jump Starter / Booster de batterie GB40 |
![]() |
Eclairage LEDs du GB40 |
L'éclairage LED présente une luminosité de 100 Lumens est l'équivalent d'une lampe a incandescence de 15W. Suffisant pour éclairer modestement une pièce de taille moyenne, éclairer correctement un moteur en cours d'inspection.
En balade de nuit par nuit noire, la visibilité devrait s'étendre de 3 à 5m (au mieux).
Eclairer l'intérieur d'une voiture avec 100 Lumens est beaucoup trop lumineux (surtout juste à côté). La lecture d'un ouvrage est pénible.
A titre de comparaison, l'éclairage d'une pièce de taille moyenne nécessite entre 600 et 900 Lumens.
Viennent ensuite les connecteurs USB sur le côté.
7000 Joules représente 1.94 Watt-Heure. Ce qui m'interpelle, c'est que le verso du boîtier mentionne un accumulateur Lithium-Ion de 24 Wh!
Autrement dit, 7000 Joules (1.94 Watt-Heure) offre la possibilité d'alimenter une ampoule électrique de 1Watt pendant une heure!
Sachant que la tension nominale du GB40 est de 12V (pour s'adapter à la batterie), la production de 1000A pourrait se faire pendant:
1.94 Watt-Heure = U*I*temps = 12 * 1000 * temps_en_heure
Donc le temps disponible (avant la batterie vide) est de 1.94 / (12 * 1000) = 0.00016 heure, soit 0.576 secondes... suffisant pour aider au démarrage d'un moteur.
Pour les pointilleux, je tiens a préciser qu'il s'agit là d'une estimation très grossière! Mais cela a pour mérite de fournir un point de référence.
Commençons par ouvrir la bête. Le GB40 est équipé de vis de sécurités triangulaires. L'utilisation d'un tournevis avec embouts de sécurité permet d'accéder à l'intérieur du GB40.
Attention DANGER!
le GB40 contient une batterie Lithium-Ion de 24 Wh SANS CIRCUIT DE SECURITE intégré aux cellules. Il doit en être ainsi si le dispositif doit délivrer des centaines d'ampères pour l'assistance au démarrage.
Pour personne expérimenté uniquement!
Tout court-circuit accidentel ou coup/perçage/déformation des accus peut provoquer une violente mise à feu avec dégagement de gaz toxiques. Un feu d'accumulateur est pour ainsi dire "impossible a maîtriser" et est capable de fondre de la céramique!
![]() |
Arrière du GB40 - clique pour agrandir |
L'image ci-dessous présente la carte d'activation qui branche l'accu directement sur les pinces.
Il est également possible d'y voir les deux connecteurs supplémentaires de l'accu:
La carte d'activation sur la gauche de l'image présente clairement le sectionnement de la masse de l'accu (le gros fils noir). Ces deux sections sont mises en contact par l'intermédiaire d'un relais (présent de l'autre côté de la carte).
![]() |
Carte d'activation |
Sans trop de surprise, nous retrouvons des deux connecteurs de sorties (output + et output - ).
La masse (noir) est commutée par un relais de 70A 14VDC.
Le 12V (rouge) passe par l'intermédiaire de 4x double diodes (max 45V avec un total cumulé de 160A). Ces diodes permettent de protéger l'accu contre une polarisation inverse accidentelle (ex: brancher le + du GB40 sur le pole négatif de la batterie voiture).
![]() |
40L45 |
Voici ce qui se trouve au coeur du BG40 avec une identification des composants principaux.
A l'évidence la carte est architecturée autour d'un microcontrôleur 8 bits de Holtek. Ce dernier dispose par ailleurs d'un convertisseur analogique digital avec fonctionnalités avancées.
Je note aussi le composant 8254AA de spécifiquement de ABLic. Ce dernier est spécifiquement destiné à la protection des cellules.
![]() |
Cliquer pour agrandir |
A l'évidence, Noco est aussi le fabriquant d'accu Lithium-Ion.
Cet accu de 24Wh ( 11.1V * 2150 mAh ) est constitué de 3 cellules montées en séries.
La tension d'une cellule est de 3.6 à 3.7V.
Montée en série les 3 cellules produisent 3 * 3.7V donne les 11.1V mentionnés.
A pleine charge, une cellule peut atteindre 4.2V (soit un maximum de 12.6V).
La tension minimale de la cellule ne peut pas tomber sous 3.0V car elle risque de devenir instable et de prendre feu. Dans ce cas de figue, l'ensemble ne présente plus qu'une tension de 9V.
La recharge via micro-USB est mentionnée à 2.1A max (2100 mA).
Ce qui correspond exactement à une charge de 1C pour un accu de 2150 mAh.
Il est généralement conseillé de ne pas dépasser 1C la charge (1C = une fois la Capacité de l'accu = 1x 2150mA pour notre accu).
Pour ce qui est de la décharge, il faut se référer aux spécifications techniques de l'accumulateur.
Malheureusement, la référence NLBX10 ne retourne pas d'information technique pertinente sur l'accu. J'ai ouvert le paquetage dans l'espoir de trouver plus d'informations sur les cellules mais sans succès.
J'en viens à supposer que le X10 correspond au taux de décharge 10C.
Autrement dit, il serait possible de décharger l'accu à 10C = 10*2150mA = 21.5 ampères sans risque d'instabilité pour l'accu.
Pour un accu de 2150mAh ou 2.15Ah, ce dernier pourra fournir les 21.5A pendant 2.15Ah/21.5A = 0.10 heure (soit 6 minutes).
Même s'il fallait interpréter 10X comme 10*10 (chiffre latin X=10) nous arriverions à 200A... toujours en deçà des 1000A mais soyons sérieux, la section des câbles ne correspond absolument pas à ce niveau de courant (il faut du 25mm² de cuivre!).
Bon, c'est assez pour aujourd'hui...
Nous aurons l'occasion d'y revenir.
Dominique
Bonsoir à tous,
Edit: 26/03/2025 - atteind 350.000 IP bannies
Cela fait maintenant des mois, pour ne pas dire plus d'une année, que notre petite société MC Hobby subit des attaques de type DDOS ou mise en surcharges anormales (que l'on pourrait classer dans les actions malveillantes).
![]() |
Source image: cet article de channelnews.fr |
Comment se peut-il que notre petite boîte, qui ne compte pas plus sur la toile qu'un pet de mouche... se retrouve face à un tel déploiement de moyen.
En moins d'une semaine, ce n'est pas moins que 179.803 adresses IP qui ont été bannies! Ces attaques proviennent de partout dans le monde avec une force de frappe peu commune!
C'est totalement fou ! Heureusement que nous avons Super-Toine!
Vu notre insignifiance (je veux dire en "taille d'entreprise"), je n'ose imaginer que nous sommes les seuls dans cette situation. J'en déduis que le trafic internet mondial est actuellement submergé par ces attaques.
C'est à se demander ce qui est recherché? La déstabilisation de l'économie numériques?
Pourquoi ce phénomène passe t'il presque inaperçu dans les news? (parce que vu d'ici... cela n'a rien d'anodin)
Lire cet excellent billet Créer une vidéo, c’est bien. La diffuser, c’est mieux
Bonjour à tous,
Il arrive de temps à autre que l'on tombe sur une petite perle du net.
Il y a quelques mois, j'ai découvert RoboEyes pour Arduino (de FluxGarage.com).
![]() |
Credit: RobotEye par FluxGarage.com |
Je suis instantanément tombé sous le charme... <3
Comme je suis plutôt MicroPython qu'Arduino, j'ai voulu faire un portage sous MicroPython pour pouvoir jouer avec cette magnifique bibliothèque.
Voila qui est fait! La bibliothèque micropython-roboeyes est maintenant publiée sur GitHub.
Brancher un écran est très facile... surtout si c'est écran OLED I2C:
Et le résultat est plutôt convaincant comme en témoigne la vidéo ci-dessous:
from machine import I2C, Pin from roboeyes import * import ssd1306 i2c = I2C( 1, sda=Pin.board.GP6, scl=Pin.board.GP7 ) lcd = ssd1306.SSD1306_I2C( 128, 64, i2c, addr=0x3d ) def robo_show( roboeyes ): global lcd lcd.show() # Plug RoboEyes on any FrameBuffer descendant robo = RoboEyes( lcd, 128, 64, frame_rate=100, on_show = robo_show ) robo.set_auto_blinker( ON, 3, 2) robo.set_idle_mode( ON, 2, 2) while True: robo.update() # update eyes drawings
La bibliothèque offre de nombreuses possibilités de création géométrique pour les yeux (voyez l'exemple test_basic.py).
Comme l'implémentation est basée sur le FrameBuffer de MicroPython, tous les écran dérivant de FrameBuffer peuvent être utilisés avec RoboEyes.
Autrement dit, la majorité des afficheurs graphiques sous MicroPython fonctionneront :-)
RoboEyes est Platform Agnostic, il fonctionnera donc sur toutes les plateformes MicroPython. La seule vrai dépendance est le FrameBuffer de MicroPython.
Bonjour à tous,
Je vous présente le projet Pico-2-Explorer, petit nouveau au catalogue MC Hobby.
![]() |
Pico-2-Explorer : Raspberry Pico 2 sous MicroPython |
Un seul fil est nécessaire pour utiliser l'un des composants disponibles sur le Pico-2-Explorer.
Ces raccordements simplifiés permettent de démarrer rapidement la partie programmation sans trop se prendre la tête.
![]() |
Source: Pico-2-Explorer wiki (montage simplifié) |
Cela n'empêche pas de disposer d'une version détaillée des raccordements dans les différents tutos.
![]() |
Source: Pico-2-Explorer wiki (montage détaillé) |
Bien entendu, on ne vous lâche pas avec la carte sans vous épauler.
Le Pico-2-Explorer dispose d'une série de tutoriels de prise en main et d'utilisation de différents composants.
Ces tutoriels reprennent l'information nécessaire à la compréhension des composants utilisés, de quoi débuter en douceur avec Thonny IDE.
![]() |
Les tutoriels du Pico-2-Explorer |
Un problème récurrent dans le prototypage, c'est les problèmes de Parallaxe.
Avoir les libellés sur la carte et un connecteur rehaussé d'un centimètre peut-être source d'erreur de branchement. En effet, il est très facile de se brancher sur la broche d'à côté sans s'en rendre compte. C'est d'autant plus vrai que le connecteur est long (ex: 20 broches comme sur le Pico).
En plus d'apprendre, Pico-2-Explorer propose des composants à usage multiple.
Disposer de bouton et LEDs pré-raccordés sous la main sera quasi indispensable lors de vos propres explorations (c'est du vécu).
![]() |
Détail du Pico-2-Explorer |
Un potentiomètre saura aussi se montrer fort utile pour fixer rapidement une consigne (ou tester des composants analogiques).
L'usage du buzzer reste bien entendu à discrétion de l'utilisateur, les bibliothèques sont déjà disponibles sur la carte.
Le bus I2C est un incontournable dans le monde de l'électronique. Nous avons prévus un connecteur Qwiic (chez SparkFun) également appelé StemmaQT (chez Adafruit).
Celui-ci permet de brancher rapidement des capteurs et extension.
![]() |
Connecteur Qwiic/StemmaQt sur le Pico-2-Explorer |
Il est prévu l'écriture d'un tutoriel exploitant cette connectique. Dans l'attente, notre dépôt esp8266-upy contient de nombreux pilotes pour du matériel I2C.
Le dépôt pico-2-explorer contient la ressource pico-2-explorer-drawing.png en haute résolution.
Dégainez votre logiciel de dessin favori et dessinez vos propres raccordement.
![]() |
ressource pico-2-explorer-drawing.png (en haute résolution) |
Pour plus d'information, je vous invite à la consultation de la fiche produit du Pico-2-Explorer.
Bonjour à tous,
J'ai un petit faible pour les afficheurs originaux et, de fait, je fouille de temps en temps à la recherche de projets.
![]() |
Afficheur réalisé par Ben Makers Everything |
Il y a de moyen de réaliser des afficheurs vraiment très attractifs.
![]() |
Afficheurs réalisés par Christopher's Factory |
Et ce que je trouve encore plus intéressant, c'est qu'il est aussi possible de créer des variantes RGB.
![]() |
Afficheurs réalisés par Christopher's Factory |
Je vous propose de visionner les deux vidéos:
Fabrication d'afficheurs multi-segments par Ben Makes.
Afficheurs à 6 segments par Christopher's Factory.
Pas mal n'est ce pas!
Bonjour à tous,
Cela fait un moment que nous vendons le HAT GSM 4G / LTE de Garatronic pour Raspberry-Pi et celui-ci connaît un certain succès.
Ainsi, nous avons décidé de produire une bibliothèque MicroPython pour l'utiliser avec un Raspberry-Pi Pico.
![]() |
HAT GSM 4G / LTE avec Raspberry-Pi Pico 2 |
![]() |
Source: Dépôt GitHub |
Brancher le HAT sur le Raspberry-Pi Pico est assez simple. Il lui faut une source d'alimentation 5V, 3V3 et un UART et une broche pour contrôler la mise sous tension.
La bibliothèque -=[en cours de développement]=- est publiée sur le dépôt GitHub
Celle-ci concerne prend déjà en charge:
Voici les quelques ligne nécessaires pour se connecter sur un réseau mobile
from machine import UART, Pin from sim76xx import * import time # Pico pwr = Pin( Pin.board.GP26, Pin.OUT, value=False ) uart = UART( 0, tx=Pin.board.GP0, rx=Pin.board.GP1, baudrate=115200, bits=8, parity=None, stop=1, timeout=500) sim = SIM76XX( uart=uart, pwr_pin=pwr, uart_training=True, pincode="6778" ) sim.power_up() while not sim.is_registered: time.sleep(1)
Passer un appel vocal est à peine plus compliqué
# Create Voice call object voice = Voice( sim ) " Calling... voice.call( PHONE_NR )
L'envoi d'un SMS est tout aussi trivial
# Create SMS object sms = SMS( sim ) # Send message to PHONE_NR ) sms.send( PHONE_NR, 'Test message' )
La bibliothèque permet également de traiter les appels et SMS entrant.
Cela se fait en prenant en charge les URC (des messages non sollicités) qui sont ensuite transformer en notifications par la bibliothèque.
Les URC sont correctement détectés et capturées durant le traitement des instructions utilisateurs (oui, ces URC arrivent à n'importe quel moment et sans prévenir).
Si le script utilisateur est en attente alors un appel régulier à la méthode update() permettra de capturer les URC durant les périodes sans activités.
sms = SMS( sim ) # Attendre notifications while True: time.sleep( 1 ) sim.update() if not sim.notifs.has_new: continue # Traitement des notifications _time, _type, _str, _cargo = sim.notifs.pop() while _time!=None: if _type == Notifications.SMS: # Cargo contient l ID du SMS print( f"SMS received @ id {_cargo}") # Lecture SMS Entrant _msg = sms.read( _cargo ) print( f" phone:{_msg.phone}" ) print( " Message :", _msg.message ) # effacer SMS entrant sms.delete(_cargo) # Envoi réponse try: id = sms.send( _msg.phone, "%s received!" % _msg.message ) except SMSError as err: print( 'SMS Send error!', str(err) ) else: print( "autre notification", (_time, _type, _str, _cargo) ) # Next nofitication _time, _type, _str, _cargo = sim.notifs.pop()
La bibliothèque contient actuellement 15 exemples couvrant les concepts fondamentaux, les SMS et les appels vocaux.
Voir le bas du fichier readme pour une description des différents exemples.
Les produits utilisés dans cet article sont disponibles chez MCHobby.
Bonjour à tous,
C'est l'histoire d'une demande d'intervention concernant deux écrans tactiles Raspberry-Pi.
Le problème décrit est une "série de déplacements erratiques du pointeur de souris" lorsque le doigt est déplacé sur la surface de l'écran,
Voici la vidéo disponible sur YouTube.
Seulement voila, tous les produits Raspberry-Pi sont testés sur chaîne de production. Il est donc peu probable d'avoir un produit défectueux, ... deux produits défectueux en même temps, c'est le signe qu'il faut chercher une cause environnemental!
La dalle tactile fonctionne par effet capacitif. Quelques capteurs répartis sur la dalle essayent de mesurer le courant de fuite qui s'échappe par par le doigt lorsque celui-ci touche l'écran.
La vidéo ci-dessous présente un test complémentaire réalisé sur l'un des écrans.
Première partie de la vidéo:
Seule la surface tactile est touchée => problèmes est bien présents.
Seconde partie de la vidéo:
Le client touche aussi la partie métallique à l'arrière de l'écran.
Il porte donc le potentiel de la masse de l'écran au même potentiel que son propre corps => l'écran fonctionne parfaitement.
Après de multiples tests, le client à brancher une alimentation redondante entre le GPIO et le connecteur d'alimentation de l'écran.
Ce faisant, l'alimentation est plus stable (section supérieure des fils) ainsi qu'une meilleure ligne de masse => c'est réglé.
Voilà, tout est rentré dans l'ordre !
Dominique
Bonjour à tous,
Petit retour sur notre projet de carte contrôleur MyDin en cours de développement.
Le dernier article sur le sujet détaillait les deux cartes principales, leurs fonctionnalités et détails techniques.
La bibliothèque MicroPython et les tests avancent rapidement.
Cet article s'attarde un peu sur le montage dans le boîtier Din.
Deux pièces supplémentaires ont été imprimées pour maintenir la carte contrôleur bien en place.
![]() |
MyDin - carte contrôleur DINCASE-MB3PICO |
Elément qui vient se placer comme ci-dessous sur la carte contrôleur.
![]() |
MyDin - carte contrôleur DINCASE-MB3PICO |
Il faut préalablement équiper le contrôleur du câble d'interface
Puis présenter la carte face à l'ouverture USB.
Enfin, placer la seconde pièce pour sécuriser la carte dans son emplacement.
![]() |
MyDin - carte contrôleur DINCASE-MB3PICO |
Sans oublier, bien sur, d'utiliser les vis de fixation.
![]() |
Accès au port USB du Pico |
Vient ensuite la connexion de la carte de fond de panier.
![]() |
MyDin - carte de fond 2 Relais DINCASE-2R-BP3MOD |
![]() |
MyDin: DINCASE-MB3PICO + DINCASE-2R-BP3MOD |
Reste plus qu'a refermer le boîtier.
![]() |
Module fermé et prêt à l'emploi |
Il reste encore à s'occuper de:
Voici un exemple rudimentaire présentant le fonctionnement général de la bibliothèque.
Le point principal est l'appel configure() qui précise la carte contrôleur et la carte d'interface associée.
Dans le cas présent, l'appel configure( Pico3Mod, TwoRelay3Mod ) nous informe que:
from mydin import configure from mydin.pico import Pico3Mod from mydin.backplane.relays import TwoRelay3Mod import time, sys din = configure( Pico3Mod, TwoRelay3Mod ) # === Relays ================================== din.rel1.on() print( "Rel1 is", din.rel1.value() ) time.sleep(1) din.rel2.on() print( "Rel2 is", din.rel2.value() ) time.sleep(1) print( "All relays off" ) for relay in din.relays: relay.off() print( "relays state", [relay.value() for relay in din.relays] ) # === LEDs ==================================== for i in range( 20 ): for led in din.leds: led.toggle() time.sleep_ms(100) # turn off all leds. [ led.off() for led in din.leds ]
Qu'en pensez-vous ?
Bonjour à tous,
La solution MyDin existe déjà depuis quelques années pour permettre le prototypage de projets pro et semi-pro. J'en parlais dans cet article.
Le projet connaît un développement intéressant en proposant des cartes plus avancées disponibles dans la collection myDin de MCHobby.
![]() |
mb3mod |
Bien qu'en cours de développement, les avancées sont suffisantes pour une petite présentation ;-) .
Le but du projet myDin c'est de proposer un écosystème de boîtier + cartes permettant d'accueillir les projet Makers mais aussi de développer des solutions Pro/Semi-Pro pour les inclure dans des boîtier DIN.
myDin permet de combler le vide cruel entre le banc d'essai et le coffret électrique.
![]() |
Source: Gamme myDin chez MCHobby. |
myDin est un outil qui vous laisse le libre choix du début à la fin de votre projet.
Plus récemment, j'ai préparé une carte de fond de panier 2R-BP3MOD pour le boîtier DIN 3 modules.
Cette carte de prototypage propose:
![]() | |
Premier prototype de la carte 2R-BP3MOD (fond de panier) |
Le connecteur présente une connectique "standardisée" entre la carte contrôleur (développée ci-après) et les cartes de fond de panier.
![]() |
Description de l'interface avec la carte contrôleur |
Comme une carte de puissance ne présente aucun intérêt sans carte de contrôleur adéquate.
Voici une carte Pico sous MicroPython Pico-MB3MOD équipée des éléments essentiels à la réalisation de nombreux projets d'automatisation.
![]() |
Carte contrôleur pour boîtier DIN 3 modules |
La carte de contrôle propose une interface utilisateur et des connecteurs d'extensions accessibles depuis la face avant du boîtier DIN.
L'intérêt d'utiliser du code Python est de permettre le développement facile de solution personnalisée en utilisant Thonny IDE (disponible sur Thonny.org).
Cela est rendu possible grâce à MicroPython!
![]() |
DIN 3 module avec carte contrôleur + carte fond de panier. |
La carte de contrôle propose les fonctionnalités suivantes:
Ce module DIN est propulsé par Raspberry-Pi Pico 2 Wireless, un microcontrôleur Dual Core @ 150 MHz.
![]() |
Pico 2 W disponible chez MC Hobby |
Disposant de 512 Kio de RAM, ce microcontrôleur surpuissant est capable d'exécuter du code MicroPython (mais aussi Arduino, Circuit Python, Rust, C, etc).
Il est même assez puissant pour proposer un mini Web-Serveur.
Comme les 4 Mio de mémoire Flash est également utilisée pour stocker le système de fichiers de MicroPython, un espace de stockage énorme pour vos scripts et ressources (ex: faire du datalog).
Les GPIOs du Pico sont tous attribués dans le projet, suivant vos besoins, il sera possible d'en récupérer l'un ou l'autre sur le connecteur UEXT en fonction des besoins.
Ce connecteur popularisé par SparkFun, aussi connu sous le nom StemmaQt chez Adafruit Industries, transporte un bus I2C ainsi qu'une alimentation 3V3.
![]() |
Source: Wiki MCHobby - Connecteurs |
Ce connecteur est pratique pour connecter rapidement un capteur sur la carte contrôleur (luxmètre, Humidimètre, température, qualité d'air, etc) ou afficheurs (4x7 segments, LCD, OLED, etc)
Un connecteur de choix pour rendre le module DIN sensible au monde environnent ET/OU améliorer l'interaction avec l'utilisateur.
Ce robuste connecteur transporte plusieurs bus (I2C, UART, SPI) ainsi qu'une alimentation. Le connecteur UEXT est popularisé par la société Olimex.
Voyez la gamme UEXT disponible chez MCHobby.
![]() |
Source: Wiki MCHobby - Connecteurs |
Le bus SPI pourra être utilisé pour faire de l'échantillonnage haut-débit ou pour connecter un écran TFT.
L'intérêt de ce connecteur est d'utiliser un empattement de 2.54mm, ce qui permet aussi d'utiliser les fils de prototypage soit avec les bus, soit en utilisant directement les GPIOs associés.
Le bus 1-Wire (Wikipedia) est surtout connu grâce au capteur de température DS18B20.
![]() |
Sonde température DS18B20 Waterproof |
Les sondes de température sont pratiques pour surveiller la température d'une serre, d'un aquarium, vivarium ou d'un frigo.
Bonjour à tous,
Chez MC Hobby, nous essayons toujours d'aider nos clients... même au delà de la période de garantie.
Lorsque le Pi présente 4 flashs longs + 3 flashs courts, cela signifie que le SoC n'a pas trouvé le composant RP1.
Le premier réflexe est souvent de penser à un défaut du matériel... c'est pourtant illogique.
Bien que le RP1 soit le dernier composant arrivé sur le Raspberry-Pi, c'est une composant particulièrement fiable parce que, pour commencer, il est toujours réalisé en 40nM.
Dans le monde de la gravure microprocesseur, 40nM fait un peu office de tank!
C'est que le RP1 est prévu pour contrôler les GPIO et doit donc être capable de délivrer plusieurs milliampères sur ces entrées/sorties.
C'est pour cela que le RP1 est bâtit comme un tank!
Le SoC ou la RAM ont plus de chance de défaillir avant le RP1 (sauf si vous faites des court-circuits avec le GPIO... fumée magique tu verra...).
1) Le "flash code" nous apprend:
Le SoC démarre et charge le programme de boot depuis la l'EEPROM.
2) La mise à jour EEPROM réussie nous apprend:
Que la RAM est accessible et fonctionne parfaitement.
3) Pas de "Debug Probe" disponible.
Cela aurait probablement fourni des informations intéressantes... mais bon.
3) Inspection visuelle nous apprend:
Sauf court-circuit sur GPIO, il est peu probable que le RP1 rende l'âme spontanément. Il est fort probable -si pas certain- qu'une manipulation ait arraché un composant!
Je vous propose de faire l'inspection sur les photos transmises par le client... juste pour vois si vous pouvez identifier le problème.
Résultat de l'inspection plus bas...
Alors l'image n'est pas très nette suite au grossissement logiciel mais le composant partiellement arraché est sur l'une des deux pistes de l'horloge RP1.
Normal donc qu'il ne réponde plus au sollicitations du SoC.
Par chance, c'est parfaitement réparable. Nous avons recommandé au client de remettre délicatement le composant en place puis de refaire une soudure.
C'est une tâche délicate compte tenu de la taille des composants... voici la réponse reçue du client ce Lundi matin.
Hi Dominique,
I'm super impressed and you clearly have an attention to detail I don't have yet. This was the source of the issue, moved back and re-soldered the component, and TADAAAA!!
You made my weekend! And again, well done on catching this!Cela fait plaisir!
All the best!
Alexandre
Bonjour à tous,
Dans mon article d'hier "VFD: La tension de sortie d'un transformateur n'est pas une constante!", je réduisais la tension de sortie de 36V (à vide) d'un transformateur 24V en le mettant en charge à l'aide d'une résistance de 330 Ohms.
Ce faisant, cela produisait un dégagement constant de chaleur de 1.3W et l'élévation de la température à 70°C.
Cet article va explorer d'autres options
Etant donné que nous avons aussi un transformateur 230 V AC vers 2x 6V AC, il est possible d'envisager l'utilisation d'une Cascade de Villard... qui permet d'élever une tension alternative en employant des étages de Diode + Condensateur.
La tension de sortie Vout produite est une tension continue et relevée aux bornes du condensateur.
Ce qu'il y a de bien avec la cascade de Villard, c'est qu'il est possible de chaîner les étages.
Il n'est pas une absolu nécessité d'utiliser des condensateurs polarisés.
Comme je tiens à produire une tension de -24V pour le VFD, j'ai préféré utiliser des condensateurs polarisés.
Je vous propose cette vidéo de "Ludic Science" qui donne des détails sur la réalisation d'une cascade de Villard.
Souvenez-vous, dans le précédent article, le transformateur 6V à vide produisait une tension de 10.44 Vrms à vide.
La tension de pic est toujours de 14.74V (soit 10.44 x 1.41).
J'ai donc récupérer la tension alternative sur le premier étage 5V pour obtenir une tension de 25V DC.
L'utilisation d'un oscilloscope pour contrôler la tension aux bornes du condensateur révèle que celle-ci est parfaitement lissée (en l'absence d'un courant de charge).
Cependant, vu que les deux circuits partagent des diodes en commun, nous ne pouvons pas simplement imposer la masse du circuit 5V DC comme référence commune avec le +28V DC (de sorte à obtenir les -28V nécessaires).
Si cela est fonctionnel, cela me prive aussi de mon 2ieme secondaire 6V destiné à la "chauffe" du filament.
Cela avance, au moins cette fois, il n'y a plus de dissipation de chaleur (compré au précédent article).
Si vous avez l'occasion de vous pencher sur les derniers articles concernant les "Vaccum Fluorescent Display" (FVD) alors vous savez que trois tensions sont nécessaires:
Je me tourne donc vers la réalisation d'une alimentation à multiples tensions de sorties. Je recherche donc quelques transformateurs 220V AC...
Mon premier transformateur est un BV302D06023 de Zettler Magnetics.
![]() |
BV302D06023 de Zettler Magnetics |
Mon second transformateur BV302S24012 toujours de Zettler Magnetics.
![]() | |
BV302S24012 de Zettler Magnetics |
Dont voici les caractéristiques principales:
C'est en commençant mon petit montage de test que je m’aperçois que la tension de sortie des transformateurs ne sont pas celles attendues.
C'est encore pire pour la sortie 24V AC atteint 50V DC!!! Outch!
Et bien c'est simple, la tension de sortie du transformateur varie en fonction du courant de charge.
D'ailleurs, la tension secondaire est indiquée pour la plein charge (comme le mentionne l'indication "Full Load".
Etant donné qu'il n'y a pas de charge sur l'alimentation, il est normal d'avoir une tension de 10.44V AC supérieure aux 6V AC attendus.
La tension de 13V DC s'explique parce que le condensateur lisse la tension à la tension de pic (Vpeak) de la sinusoïde.
10.44V AC est une tension Vrms. Pour obtenir la tension de pic, on applique la formule suivante:
Vpeak = Vrms * 1.41
Donc, la tension de pic aux bornes du condensateur est donc de 14.74 V - 1.4 = 13.34V et sera la tension lissée par le condensateur.
Note:
Comme précisé, le transformateur 24V produit une tension redressée de 50V DC.
C'est principalement parce que la tension de sortie à vide du transformateur est de 37V AC.
Une façon de réduire la tension de sortie est de mettre le transformateur en charge avant d'effectuer le redressement. Cela tombe bien, j'ai une résistance de 330 Ohms 5W sous la main.
Le transformateur dispose d'une puissance de 1.2 VA (Volt-Ampère).
Donc 1.2 VA = Usecondaire * Isecondaire
Or, comme la résistance sera branchée directement sur la sortie du transformateur on peut aussi écrire
Usecondaire = R * Isecondaire
Usecondaire = 330 * Isecondaire
En substituant dans la Usecondaire dans la formule de la puissance nous obtenons:
1.2 = 330 * Isecondaire * Isecondaire
Donc Isecondaire = SQRT( 1.2 / 300 ) = 0.063 A ou 63 mA.
Maintenant que le courant est connu, il est aussi possible de déterminer la tension sur le circuit secondaire.
Usecondaire = 300 * Isecondaire = 330 * 0.063 = 20.87V AC Vrms
Après contrôle, la tension de sortie est mesurée à 21.8V... car la résistance ne vaut pas exactement 300 Ohms.
Tension redressée
La puissance de 1.2 VA se calcule sur des valeurs Vrms.
Les 20.87 V AC déterminés par calcul seront donc en Vrms.
Puisque la tension a été mesurée à 21.8V, la suite réutilisera cette dernière valeur.
La tension de pic sera Vpeak = Vrms * 1.41 = 21.87 * 1.41 = 30.73 Volts.
Il faut y soustraire la chute de tension des diodes (2 * 0.7V), ce qui donne une tension Vpeak de 30.73-1.4 = 29.33 Volts aux bornes du condensateur.
La tension lissée sera de 29.33 V DC (mesuré à 29.7 VDC), pile dans les spécifications du régulateur -24V :-)
Puissance dissipée dans la résistance
Le courant circulant dans la résistance de 330 Ohms produit un échauffement.
Puisqu'il s'agit d'une tension alternative, la puissance dissipée par une résistance se formule comme suit: P = R * I² = 330 * 0.063² = 1.3 W
La température de la résistance monte assez vite et se stabilise autour de 70°C~75°C à l'air libre (même pour une résistance de 5W).
Cela chauffe vraiment beaucoup... même si l'on reste dans les tolérances de puissance de la résistance.!!!
Augmenter la surface d'échange ne serait pas du luxe.
Puissance consommée sur le transformateur 24V
La tension de -24 V produite sert principalement à la polarisation des grilles du VFD. Il n'y aura donc pas de courant significatif consommé sur ce circuit.
La résistance de charge de 330 Ohms reste donc un élément indispensable de ce circuit.
Cela représente quand même une puissance dissipée en chaleur de 1.3W ! Pas franchement idéal!
Je vais voir si une cascade de Villard (multiplicateur de tension) ne serait pas plus indiqué!
A tout bientôt pour la suite.
Bonjour Amis Maker,
Toujours dans la série des articles sur les tubes VFD (Vaccum Fluorescent Display), voici mon article de détente pour ce dimande.
Les VFD sont des tubes sous vide qui étaient utilisés pour afficher des informations sur nos appareils électroniques durant les années 1980 à 2000.
Bien que largement remplacé par des afficheurs LEDs et autres technologies, les VFDs sont encore forts appréciés malgré leur anachronismes.
Si vous ne savez pas comment fonctionne un VFD, je conseille vivement la lecture du tout premier article sur les VFD.
Il y a bien des années, je disposais d'un four à micro-ondes MT-267, un excellent appareil mais qui à rendu l'âme.
![]() |
Four micro-ondes / multi-fonctions MT-267 |
Il utilisait un afficheur VFD (je ne le savait pas encore à l'époque)... et j'aimais beaucoup l'effet produit par ce type d'affichage.
J'ai donc récupéré le panneau de commande.
![]() |
Panneau de commande du MT-267 |
Le panneau de commande ci-dessous peut être démonté pour accéder à l'électronique.
![]() |
Panneau de commande du MT-267 |
La carte expose:
![]() |
Afficheur VFD - mention FV731GN |
Après un peu de travail, il est possible d'accéder au contrôleur présent sous l'afficheur.
![]() |
TOSHIBA TMP47C1670 |
Le contrôleur de cette carte n'est pas un simple Contrôleur VFD mais plutôt un microcontrôleur TMP47C1670 de Toshiba.
Ce microcontrôleur est spécialisé pour les interface d'affichage VFD et saisie clavier. Etant donné que c'est un microcontrôleur, il dispose aussi d'entrées/sortie standard, de Timer, d'une horloge, d'un générateur PWM et même d'un convertisseur analogique/numérique.
![]() |
Diagramme de bloc du TMP47C1670 |
En utilisant ces informations, le brochage TMP47C1670 et la carte, il est possible de re-documenter le brochage de l'afficheur VFD.
![]() |
Brochage du VFD - mention FV731GN |
A tout bientôt,
Dominique
Lire cet excellent billet La « modernité » d’un site web : une injonction à questionner
Bonjour amis Maker,
Le précédent article sur les tubes VFD (Vaccum Fluorescent Display) c'était le contrôleur VFD M9202 (aussi appelé MSM9202) de mon ancien Sony compact disk player CDP-CX35.
![]() |
Sony compact disk player CDP-CX350 |
Le connecteur principal était déjà partiellement décodée pour l'afficheur VFD.
![]() |
CDP-CX350 - détail de la carte principale |
En poursuivant les investigations, j'ai découvert que les LEDs étaient contrôlées par un GPIO expander 16 bits (M66310). Pour leur part les boutons sont raccordés en grappe.
Voici donc le complément d'information concernant le connecteur principal (CON1) et le connecteur vers la carte fille (CON2).
On peut y voir que les broches DataIn, ShiftClk, Reset de l'afficheur VFD sont ici utilisées pour contrôler le GPIO Expander M66310 (plus le signal LatchClk).
Pour prendre le contrôle des LEDs, il faut donc envoyer les 16 bits de données vers le M66310 puis activer le signal LatchClk pour mettre à jour les sorties sur le GPIO Expander.
Comme déjà précisé, une fois les 16 bits de données envoyés vers le M66310, une impulsion est envoyé sur LatchClk pour envoyer les bits sur les sorties.
En suivant les traces, il est alors possible de relier LEDs et GPIOs du MF66310.
Une fois la bibliothèque m66310.py rédigée, le contrôle du GPIO expander est relativement simple.
from machine import Pin from m66310 import M66310 import time _reset = Pin(Pin.board.GP18, Pin.OUT, value=True ) # Reset désactivé _cs = Pin( Pin.board.GP14, Pin.OUT, value=True ) # VFD désactivé _sdata = Pin( Pin.board.GP13, Pin.OUT ) _sck = Pin( Pin.board.GP16, Pin.OUT, value=True ) # M66310 GPIO Expander, Latch on raising edge _latch = Pin( Pin.board.GP20, Pin.OUT, value=True ) # Modifier tous les bits en un fois (sous forme de nombre) leds = M66310( _sdata, _sck, _latch, _reset ) leds.data = data = 0b0000000000011100 # 16 bits. leds.update() time.sleep_ms( 500 ) leds.clear() leds.update() # Modification bit à bit for bit_idx in range( 2, 16 ): print( bit_idx ) leds[bit_idx]=True leds.update() time.sleep_ms(100) leds[bit_idx]=False leds.update() leds.clear() leds.update()
Dès le début de ce projet, je suis assez étonné de trouver deux entrées 5V et deux masses totalement distinctes sur le connecteur principal.
Il m'aura fallu attendre le décodage de la partie bouton pour me rendre compte que les boutons sont raccordés en grappe chacun avec une résistance d'une valeur différente.
En voici un exemple d'une série de boutons branché sur la broche "key1".
![]() |
Raccordement des boutons en grappe |
Il faut donc ajouter une résistance pour compléter un pont diviseur et ainsi obtenir une tension (qui dépend du bouton pressé).
Cela explique aussi la raison pour laquelle il existe deux masses et deux sources 5V. Un circuit est destiné à la lecture analogique et un autre circuit est destiné au circuits logiques et contrôleurs.
Le circuit analogique ne peut pas être perturbé par des parasites, variation de tension ou courant qu'il est plus facile de rencontrer sur le circuit logique (surtout à cause du contrôleur VFD).
La quantité de boutons sur le panneau fait qu'ils sont regroupés sur différentes grappes indépendantes. C'est ainsi que la carte présente les sorties Key0, Key1, Key2, Key3, Key4. Les encodeurs étant également des boutons un peu spéciaux, ceux-cis sont également repris sur les grappes.
J'ai documenté toutes les grappes dans le dépôt micropython-M9202-VFD.