Vue normale

Reçu avant avant-hier

Pico-2-Explorer : découverte et exploration de l'électronique avec 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

Le Pico-2-Explorer, c'est un mini-laboratoire visant a simplifier la prise en main de de la programmation sous MicroPython (Python pour Microcontroleur) avec des raccordements simplifiés.
L'usage de Thonny IDE est également un élément clé pour réaliser ses premiers pas sans stress.

Raccordements simplifiés

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é)

Des tutoriels pour le peuple

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

Une meilleure lisibilité

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).

Pour éviter cette source de confusion, les libellés des broches sont rehaussés juste à côté du connecteur. C'est vraiment très confortable a l'usage!


Composants à usage multiples

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. 

Connecteur Qwiic/StemmaQt

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

Comme vous pouvez le constater, ce dernier se trouve juste sous sa documentation (qui servira d'aide mémoire). 

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.

Documenter vos projets

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)

Plus d'information

Pour plus d'information, je vous invite à la consultation de la fiche produit du Pico-2-Explorer.


Utiliser un module 4G / LTE SimCOM A7682E avec Raspberry-Pi Pico et MicroPython

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

Brancher le module SimCom A7682E

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. 

Bibliothèque sim76xx pour MicroPython

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:

  • La connexion sur réseau mobile
  • La gestion des messages URC (unsollicited Result Code) -> les notifications
  • La réception / émission de SMS
  • Gestion des appels vocaux (émettre/recevoir/décrocher/raccrocher/...)

 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' )

Options avancées

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()

Encore plus

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.

Où acheter

Les produits utilisés dans cet article sont disponibles chez MCHobby.


Autopsie: Raspberry-Pi Touchscreen et curseur de la souris au comportement erratique

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,

Le problème

Voici la vidéo disponible sur YouTube.


Cela se produisant sur les deux écrans achetés, les clients ont immédiatement pensés à un problème matériel... 

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!

Le source du problème

Hypersensibilité de la dalle tactile

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.

Ce dispositif, par nature, est donc très sensible aux problèmes d'alimentations et aux boucles de courants.
Tout problème de masse, aussi minime soit-il, aura une répercussion immédiate sur la partie tactile.
Après des recherches sur les Forums Raspberry-Pis, voici les suggestions trouvées:
  • Vérifier les masses (masse commune)
  • Vérifier l'alimentation, sinon vérifier l'alimentation et après encore vérifier l'alimentation.
Cette dernière proposition est plus que bien indiquée.

Démonstration en vidéo

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.


C'est donc bien un problème de masse!

La solution

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

Autopsie Raspberry-Pi 5 - Résolution d'un problème avec RP1

Bonjour à tous,

Chez MC Hobby, nous essayons toujours d'aider nos clients... même au delà de la période de garantie.

4 flash long + 3 flash court = RP1 not found

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.

Le RP1 c'est un tank!

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...).

Autopsie

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:

La séquence de BOOT démarre la mise-à-jour EEPROM avant de finaliser l'initialisation des composants de la plateforme. C'est assez intelligent!

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.


Réparation

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!

All the best!

Alexandre
Cela fait plaisir!

16 Go de RAM pour mon Raspberry-Pi 5

Bonjour à tous,

Cela aura prit un certain temps mais ça y est, il l'ont enfin sorti, le Raspberry-Pi 5 de 16 Go est enfin là.

Raspberry-Pi 5 de 16 Go

Le lecteur attentif remarquera que le PCB porte la mention 16GB RAM.
Il s'agit d'une PCB spécialement modifié pour supporter le module de 16 Go RAM.

Utilité de 16 Go RAM

Il n'est pas rare de rencontrer 16 Go de RAM sur un ordinateur. 

As t'on vraiment besoin de 16 Go de RAM?
La réponse serait: cela dépend de votre application. 

Le port PCIe permet déjà d'ajouter un disque NVME offrant ainsi des taux de transfert justifiant l'intérêt d'une capacité RAM plus importante.

Les applications gourmandes en RAM apprécieront cet espace supplémentaire.
Parmi elles, nous retrouvons:

  • Navigation internet : toujours aussi gourmande en ressource
  • LLM :  les grand modèle linguistique ont besoin de beaucoup de mémoire.
  • La virtualisation
  • Déploiement Kubernetes (conteneurs)
  • Conception graphique (modélisation 3D)
  • L'édition 4K : forcement gourmande en RAM.
  • Simulations : programmes gourmand en ressources processeur mais aussi en RAM.
  • Windows : probablement les plus RAMivore de tous les OS existant.
  • Mais aussi l'amélioration de la compilation d'application.

Où acheter

Chez l'un des Approved Reseller de la fondation comme MC Hobby.


❌