GitHub - vog01r/LockCrypt
Un petit dépôt sympa contenant un ransomware "gentil" permettant de tester la cybersécurité d'une plateforme.
— Permalink
Un petit dépôt sympa contenant un ransomware "gentil" permettant de tester la cybersécurité d'une plateforme.
... and how to use them in CI pipelines.
Comparing W3C v.Nu HTML checke, html-tidy, htmlhint, html-validate, LintHTML and html-eslint.
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.
Au cours des 18 derniers mois, j'ai eu l'occasion de concevoir plusieurs sites web pour des proches et des associations où je suis bénévole.
Dans cet article, je reviens sur mes choix de solutions pour les mettre en place, et partage mes réflexions concernant les alternatives pour concevoir de "petits …
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.
Et donc GraalVM vous offre l'interopérabilité Java/Python (y compris les dépendances PIP - mais pas toutes)
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,
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 ?
Dans cette deuxième partie, Frédéric vous invite à entraîner le modèle d’IA que vous avez créé précédemment. Ici vous verrez comment créer le modèle local sous Linux Entraînement du modèle IA sous Linux Pour réaliser l’apprentissage de notre modèle, plusieurs solutions se présentent à nous : entraîner le modèle en local, sous linux ou en […]
Cet article Créer et Entraîner son propre IA pour le module AI HAILO du Raspberry PI 5 [Partie 2] a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....
Fredéric (Frederic JELMONI alias Fred Robotic) avait déjà présenté des articles sur le Blog, dont le « Raspberry Pi sur la planète Mars« . Membre (et vice-Président) de l’association de robotique Caliban Fred utilise l’IA pour agrémenter le fonctionnement des ses robots et il a fait un énorme travail sur la création de modules d’IA avec Hailo […]
Cet article Créer et Entraîner son propre IA pour le module AI HAILO du Raspberry PI 5 [Partie 1] a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....
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.
![]() |
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.
Multigit est un outil graphique conçu pour simplifier la gestion de projets composés de beaucoup de dépôts git.
Une image et une vidéo valant mieux qu'un long discours, voici à quoi ça ressemble:
Je l'ai développé dans le cadre de mon travail chez IDEMIA où nous sommes souvent confrontés à plus de trente (voire plus de soixante) dépôts à gérer conjointement sur un projet. Dans ce contexte, la moindre opération git devient un mini-défi qu'il fallait relever quotidiennement.
Multigit est abouti et stable, il est utilisé au quotidien par plus d'une centaine de personnes (sous Windows), depuis plusieurs années. Mon employeur m'a aimablement autorisé à le publier en Open Source, ce dont je lui sais gré. Il est publié sous licence Apache 2.0
La problématique de gestion de plusieurs dépôts git conjoints pour un projet est assez peu répandue dans le monde du logiciel libre. Mais beaucoup plus dans le monde de l'entreprise. En effet, git ne gère pas la notion de droit d'accès à une partie d'un dépôt. La seule façon de restreindre l'accès à certains parties d'un projet est donc de créer un dépôt spécifique pour les y stocker, avec des droits d'accès au niveau du dépôt. Ajoutons à cela beaucoup de personnes, beaucoup de projets parfois complexes, beaucoup de sous-projets, beaucoup d'historique et on se retrouve avec une gestion des sources particulièrement complexe. Complexe … avant l'arrivée de Multigit en tout cas.
Installation
Sous Linux, la seule option d'installation disponible à l'heure actuelle est Python + pip, ou encore mieux avec pipx:
$ sudo apt install python-pipx
$ pipx install multigit_gx
$ multigit
Sous Windows, un installeur graphique click-and-play vous permettra d'arriver au même résultat.
J'ai bien tenté de fournir un snap pour Linux mais snap est conçu pour empêcher à peu près tout ce que veut faire Multigit: accèder à tous vos fichiers et lancer des programmes de votre distribution (git, gitk, …)
Je ferai mieux dans la prochaine version. D'ailleurs, si vous avez des recommandations pour un packaging moderne, simple, facile à maintenir et couvrant toutes les distributions Linux, je suis preneur.
Contribution
Le projet est géré sous GitHub, les contributions ou les retours sont les bienvenus.
Commentaires : voir le flux Atom ouvrir dans le navigateur
La mécanique des imports
- Comprendre ce qu'il se passe lors d'un import
- Interférer sur la découverte des modules
- Modifier le comportement de l'import
Kubii m’a confié pour test un ensemble composé d’un Raspberry Pi 5 équipé de 16 Go de RAM, une carte PineBoards pouvant accueillir un SSD M.2 et un module AI Coral Accelerator. Le montage est facile et à la portée de tous. Je vous présente dans cet article les tests de ce matériel. Raspberry […]
Cet article Raspberry Pi 5 avec SSD 256 Go et Accélérateur AI Coral M.2 sur carte PineBoards a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....