Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BIBLIOTHEQUE

gpiolib.bbc

DESCRIPTION.


Le module gpiolib.bbc propose des procédures et des fonctions permettant d'utiliser et gérer les broches du GPIO d'un Raspberry.




SYNTAXE.


INSTALL @lib$ + "gpiolib.bbc"




REMARQUES.


Le module gpiolib.bbc permet d’accéder directement aux registres GPIO via /dev/gpiomem (mémoire mappée). Il s’adapte automatiquement aux modèles : Raspberry Pi 2 / 3 / 4 ou Raspberry Pi 5, qui dispose d'une architecture différente.


Le Raspberry Pi est un nano-ordinateus ultra-performant propulsés par un processeur quadricœur Arm Cortex-A76 à 2,4 GHz, offrant une puissance supérieure. Il innove en intégrant des transferts de données optimisés et une connectique PCIe 2.0 permettant l'ajout facile de disques SSD NVMe ultrarapides. Équipé d'un bouton d'alimentation, d'une horloge temps réel et gérant un double affichage 4K parfaitement fluide, il offre le confort d'un véritable ordinateur compact.


Ses fonctionnalités ouvrent la voie à des possibilités infinies : bureautique, 2d ou 3d, création de serveurs rapides, systèmes de domotique complexes, ou centres multimédias exigeants. Il devient ainsi la plateforme idéale pour explorer l'intelligence artificielle, la robotique avancée et l'émulation de jeux vidéo sans aucun compromis sur les performances.


Le GPIO (General Purpose Input/Output) est l'une des fonctionnalités les plus puissantes du Raspberry Pi. C'est une rangée de 40 broches qui permet à la carte mère de communiquer avec des composants électroniques externes : capteurs, moteurs, LED, écrans, etc. Certaines broches ont des fonctions dédiées ou alternatives lorsqu'elles sont activées.


Alimentation (Power) : Fournit du courant (3.3V et 5V) pour alimenter vos circuits Masse (Ground / GND) : Ferme le circuit électrique (0V).


I2C (Inter-Integrated Circuit) : Protocole de communication synchrone permettant de connecter de multiples capteurs ou écrans en utilisant seulement deux broches (SDA pour les données, SCL pour l'horloge).


SPI (Serial Peripheral Interface) : Protocole de communication plus rapide que l'I2C, idéal pour les écrans ou les lecteurs de cartes SD, nécessitant quatre broches (MOSI, MISO, SCLK, CE).


UART (Serial) : Port série asynchrone (TX et RX) souvent utilisé pour communiquer avec un ordinateur, un module GPS ou un microcontrôleur.


PWM (Pulse Width Modulation) : Bien que toutes les broches puissent simuler du PWM via logiciel, certaines offrent un PWM matériel (Hardware PWM) beaucoup plus précis, indispensable pour contrôler la vitesse d'un moteur ou la position d'un servomoteur avec fluidité.



Important : la gestion du GPIO du modèle Raspberry Pi 5 étant différente des modèles antérieurs, il peut être nécessaire de savoir quel est le modèle sur lequel est exécuté le programme afin d'adapter le script, en particulier pour placé une broche en mode alternatif. Par exemple avec :  


kmodele = FN_ModeleRPI

PRINT "Modele detecte : Raspberry Pi "; STR$ ( kmodele )

END



REM --- Detection du modele du Raspberry hote ---

DEF FN_ModeleRPI


LOCAL kfichier% , kmodele$ , kmessage$


REM --- Méthode 1 : device-tree (meilleure) --- 

kfichier% = OPENIN( "/proc/device-tree/model" )

IF kfichier% THEN

kmodele$ = GET$#kfichier% BY 100

CLOSE #kfichier%

ELSE

kfichier% = OPENIN( "/proc/cpuinfo" )

IF kfichier% THEN

kmessage$ = GET$#kfichier% BY &ffff

CLOSE #kfichier%

kmodele$ = kmessage$

ENDIF

ENDIF


IF INSTR( kmodele$ , "Raspberry Pi 5" ) THEN = 5

IF INSTR( kmodele$ , "Raspberry Pi 4" ) THEN = 4

IF INSTR( kmodele$ , "Raspberry Pi 3" ) THEN = 3

IF INSTR( kmodele$ , "Raspberry Pi 2" ) THEN = 2


REM --- Méthode 2 : Vérification matérielle (fallback) ---

SYS "open" , "/dev/gpiomem0" , 2 TO kfichier%

IF kfichier% >= 0 THEN

SYS "close" , kfichier%

= 5

ENDIF


SYS "open" , "/dev/gpiomem" , 2 TO kfichier%

IF F% >= 0 THEN

SYS "close" , kfichier%

= 3 : REM - valeur generique pour les modeles Pi 2/3/4

ENDIF


= 0 : REM - ce n'est pas un raspberry ou modele non reconu


REM --- Fin de la fonction FN_ModeleRPI ---



Pour plus de détails, sur les innombrables possibilités des Raspberry, consultez le site raspberry.com.



Le module doit être chargé depuis votre programme à l'aide de l'instruction : INSTALL @lib$ + "gpiolib.bbc"




LISTE DES PROCEDURES DU MODULE.


FN_gpio_all() : retourne l'état de toutes les broche du GPIO.

FN_gpio_get() : retourne l'état d'une broche du GPIO.

FN_gpio_pad() : retourne l'adresse mémoire d'une broche du GPIO. (Pi 5 uniquement) 

FN_gpio_setup : initialise le module.

PROC_gpio_alt() : place une broche du GPIO en mode alternative (SPI, I2C, UART, ...).

PROC_gpio_clr() : place une broche du GPIO en mode low, connectée au GND.

PROC_gpio_inp() : place une broche du GPIO en mode entrée.

PROC_gpio_out() : place une broche du GPIO en mode sortie.

PROC_gpio_pud() : permet de configurer la résistance interne d’une broche GPIO.

PROC_gpio_set() : place une broche du GPIO en mode high, connectée au 3,3 v.

Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions.

Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour

TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER

avec un exemple de résolution à télécharger pour vous inspirer.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse