Il y a pigpio que j'apprécie beaucoup et qui est très complète.
Il y a pigpio que j'apprécie beaucoup et qui est très complète.
Elle fonctionne avec RPi 5 ?
Edit : apparemment, non
En effet, je n'avais pas vu ce problème, n'ayant pas de Raspberry pi 5.
J'espère qu'ils vont faire un portage de la bibliothèque pour le nouveau processeur.
Le projet a été repris
WiringPi Library
This repository is the continuation of 'Gordon's wiringPi 2.5' which has been deprecated, a while ago.Support: WiringPi supports all Raspberry Pi Boards including Pi 5...
Arduino, Raspberry Pi, ESP, Cypress PSoC, FPGA...
Forums Arduino, Raspberry Pi
Des capteurs connectés pour la maison avec Arduino et Raspberry Pi [Nouveau] Et en Zigbee ?
- Apprendre à développer sur FPGA avec Intel Quartus Prime - Communication SPI avec un convertisseur Analogique-Numérique
- FPGA - Programmer un contrôleur pour écran VGA avec une carte de développement FPGA
Arduino : Le manuel de laboratoire, les Quiz, les cahiers pratiques, les sources et outils
encore une lib supplémentaire pour commander des gpios, si à chaque changement de processeur on change de librairie, on ne peut pas faire des truc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Il semble que la meilleure alternative soit libgpiod.
stable, on créer des libraires qui vont fonctionner qu'a l'instant "T".
le hardware évolue et les anciennes librairie suiveront t'il , ça va trop vite entre le hardware et les librairies après on ne peut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 chip = gpiod_chip_open("/dev/gpiochip0"); //pour rpi4 et chip = gpiod_chip_open("/dev/gpiochip4"); // pour rpi5
pas avoir quelque chose de pérenne la grosse dette tecnique?
@ keokaz : c'est pour cela que j'ai créé ma propre librairie que je maintiens et fait évoluer à chaque nouvelle version.
Sinon, il y a la librairie "bcm2835" de Mike McCauley et les versions ultérieures, qui est très bien.
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
Justement, le projet (qui n'est pas tout neuf non plus et qui est installé par défaut sur RPi OS) utilise une interface chardev (/dev/gpiochip*) depuis l'espace utilisateur, et communique au contrôleur GPIO en passant par le noyau Linux. Cela fait une certaine abstraction par rapport au matériel. Il y a des bindings C et C++, c'est pour ça que je l'ai proposée comme alternative à wiring pi.
Mais tu passes par une interface particulière ? Ou alors tu passes directement par les registres du processeur ?
Elle a l'air de suivre pour la RPi 4, mais je ne vois pas de confirmation de sa compatibilité avec la RPi 5.
La nouvelle version de wiring pi, elle, annoncée compatible avec toutes les versions du Pi y compris les 4 et 5, a un accès direct aux registres matériels. C'est plus performant, mais dépend du matériel.
Arduino, Raspberry Pi, ESP, Cypress PSoC, FPGA...
Forums Arduino, Raspberry Pi
Des capteurs connectés pour la maison avec Arduino et Raspberry Pi [Nouveau] Et en Zigbee ?
- Apprendre à développer sur FPGA avec Intel Quartus Prime - Communication SPI avec un convertisseur Analogique-Numérique
- FPGA - Programmer un contrôleur pour écran VGA avec une carte de développement FPGA
Arduino : Le manuel de laboratoire, les Quiz, les cahiers pratiques, les sources et outils
Par les registres du processeur. Ce fut un bon exercice. J'ai repris la documentation pour savoir comment faire.Envoyé par F-leb
Ma bibliothèque fonctionne pour les RPi Zero et les RPi 4B.
Mon premier projet, le chenillard, a été développé avec la RPi 2B.Envoyé par F-leb
Je sais que la bibliothèque "bcm2835" est compatible avec la RPi 2B, la RPi 3B+ et la RPi 4B.
Pour la RPi 5B, je ne saurais te dire, puisque je ne m'en suis pas procuré une.
Cela va dépendre des fonctions que tu vas utiliser car il y a très peu de différences dans l'évolution des RPi.
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
Qu'est ce qu'il faut installé ? si c'est pas trop long je peux tenter sur mon rpi5 ....
C library for Broadcom BCM 2835 as used in Raspberry Pi
Télécharger la dernière version http://www.airspayce.com/mikem/bcm2835/bcm2835-1.xx.tar.gz.
Voir le paragraphe Installation, normalement c'est rapide à installer.
Arduino, Raspberry Pi, ESP, Cypress PSoC, FPGA...
Forums Arduino, Raspberry Pi
Des capteurs connectés pour la maison avec Arduino et Raspberry Pi [Nouveau] Et en Zigbee ?
- Apprendre à développer sur FPGA avec Intel Quartus Prime - Communication SPI avec un convertisseur Analogique-Numérique
- FPGA - Programmer un contrôleur pour écran VGA avec une carte de développement FPGA
Arduino : Le manuel de laboratoire, les Quiz, les cahiers pratiques, les sources et outils
J'ai installlé la librairie, je suis aller comme dans le doc un rapsi-config et activer
puis j'ai rebooter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 under Advanced Options - enable Device Tree
je l'ai ms le dossier dans téléchargement:
Qu'est ce que je fais après ?? on peut directe faire du C ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 pi@raspberrypi:~/Téléchargements/bcm2835-1.75 $ ls -la total 872 drwxr-xr-x 5 pi pi 4096 13 nov. 16:06 . drwxr-xr-x 4 pi pi 4096 13 nov. 16:05 .. -rw-r--r-- 1 pi pi 43345 12 févr. 2024 aclocal.m4 -rw-r--r-- 1 pi pi 0 24 juin 2012 AUTHORS -rw-r--r-- 1 pi pi 45 31 août 2012 ChangeLog -rwxr-xr-x 1 pi pi 7400 18 mars 2022 compile -rwxr-xr-x 1 pi pi 45257 24 juin 2012 config.guess -rw-r--r-- 1 pi pi 853 13 nov. 16:06 config.h -rw-r--r-- 1 pi pi 699 12 févr. 2024 config.h.in -rw-r--r-- 1 pi pi 13291 13 nov. 16:06 config.log -rwxr-xr-x 1 pi pi 33059 13 nov. 16:06 config.status -rwxr-xr-x 1 pi pi 34423 24 juin 2012 config.sub -rwxr-xr-x 1 pi pi 197643 12 févr. 2024 configure -rw-r--r-- 1 pi pi 1083 12 févr. 2024 configure.ac -rw-r--r-- 1 pi pi 35148 7 mars 2020 COPYING -rwxr-xr-x 1 pi pi 18615 24 juin 2012 depcomp drwxr-xr-x 2 pi pi 4096 13 nov. 16:06 doc drwxr-xr-x 12 pi pi 4096 12 févr. 2024 examples -rw-r--r-- 1 pi pi 15578 24 juin 2012 INSTALL -rwxr-xr-x 1 pi pi 13663 24 juin 2012 install-sh -rwxr-xr-x 1 pi pi 282745 24 juin 2012 ltmain.sh -rw-r--r-- 1 pi pi 25495 13 nov. 16:06 Makefile -rw-r--r-- 1 pi pi 509 21 mars 2022 Makefile.am -rw-r--r-- 1 pi pi 25285 12 févr. 2024 Makefile.in -rwxr-xr-x 1 pi pi 6873 3 déc. 2016 missing -rw-r--r-- 1 pi pi 0 24 juin 2012 NEWS -rw-r--r-- 1 pi pi 247 24 juin 2012 README drwxr-xr-x 3 pi pi 4096 13 nov. 16:06 src -rw-r--r-- 1 pi pi 23 13 nov. 16:06 stamp-h1 -rwxr-xr-x 1 pi pi 4879 18 mars 2022 test-driver
Sinon un petit exemple ?
voici ce que je souhaite faire de simple (et que je n'ai pas réussi avec lgpiod car python me disait qu'il était occupé) :
avec lgpiod je n'ai pas trouver comment libérer les ports gpio après avoir mis à 1... sinon python me dit système buzy
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 répater configurer le port gpio 21 en sortie mettre le port gpio21 à 1 configurer le port gpio 21 en entrer mettre le port gpio 21 à 0
je pensais le faire facilement mais je me me suis casser les dents mais peut être que c'est le codeur qui n'est pas très bon ...
(et puis trop de librairie à force de testé on s'en mélange les pédales et en plus il fallait que cela soit compatible rpi4 et rpi5).
Je te conseille de faire une recherche sur le net de l'installation de cette bibliothèque BCM2835.
puis faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cd bcm2835-1.58 ./configure
Tu dois avoir toutes les explications dans le fichier ReadMe ou un autre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sudo make install
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
j'avais déjà lancé le ./configure ,
j'ai donc copier coller le code blink et essayé ceci :
mais la c'est normal c'est un bcm2712 donc c'est pas compatible just en installant la lib...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 pi@raspberrypi:~/Téléchargements/bcm2835-1.75 $ gcc blink.c /usr/bin/ld*: /tmp/cc3pR9nG.o*: dans la fonction «*main*»*: blink.c:(.text+0x10)*: référence indéfinie vers «*bcm2835_init*» /usr/bin/ld*: blink.c:(.text+0x2c)*: référence indéfinie vers «*bcm2835_gpio_fsel*» /usr/bin/ld*: blink.c:(.text+0x38)*: référence indéfinie vers «*bcm2835_gpio_write*» /usr/bin/ld*: blink.c:(.text+0x40)*: référence indéfinie vers «*bcm2835_delay*» /usr/bin/ld*: blink.c:(.text+0x4c)*: référence indéfinie vers «*bcm2835_gpio_write*» /usr/bin/ld*: blink.c:(.text+0x54)*: référence indéfinie vers «*bcm2835_delay*»
si je met
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #include <bcm2835.h> #include <stdio.h> // Blinks on RPi Plug P1 pin 11 (which is GPIO pin 17) #define PIN RPI_GPIO_P1_11 int main(int argc, char **argv) { // If you call this, it will not actually access the GPIO // Use for testing // bcm2835_set_debug(1); if (!bcm2835_init()) return 1; // Set the pin to be an output bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP); // Blink while (1) { // Turn it on bcm2835_gpio_write(PIN, HIGH); // wait a bit bcm2835_delay(500); // turn it off bcm2835_gpio_write(PIN, LOW); // wait a bit bcm2835_delay(500); } bcm2835_close(); return 0; }
il ne trouve pas la 2712
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #include <bcm2712.h>
Euhhh... Plutôt que de deviner des commandes ou d'inventer des librairies qui n'existent pas...
Et si on lisait la doc (lien dans mon message précédent) ?
Pour installer, il est écrit (au paragraphe Installation):
pour compiler, on regarde un exemple ou deux et on peut lire ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 # download the latest version of the library, say bcm2835-1.xx.tar.gz, then: tar zxvf bcm2835-1.xx.tar.gz cd bcm2835-1.xx ./configure make sudo make check sudo make install
Voir l'exemple blink.c.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // After installing bcm2835, you can build this // with something like: // gcc -o blink blink.c -l bcm2835 // sudo ./blink
Arduino, Raspberry Pi, ESP, Cypress PSoC, FPGA...
Forums Arduino, Raspberry Pi
Des capteurs connectés pour la maison avec Arduino et Raspberry Pi [Nouveau] Et en Zigbee ?
- Apprendre à développer sur FPGA avec Intel Quartus Prime - Communication SPI avec un convertisseur Analogique-Numérique
- FPGA - Programmer un contrôleur pour écran VGA avec une carte de développement FPGA
Arduino : Le manuel de laboratoire, les Quiz, les cahiers pratiques, les sources et outils
j'ai lancer exactement ce que le tuto de dit voici ce que donne un ./configure:
ensuite make:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports the include directive... yes (GNU style) checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... gcc3 checking for clock_gettime in -lrt... yes checking for docs... yes checking for doxygen... no configure: WARNING: Doxygen not found - continuing without Doxygen support checking for ranlib... ranlib checking for gcc... (cached) gcc checking whether the compiler supports GNU C... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to enable C11 features... (cached) none needed checking whether gcc understands -c and -o together... (cached) yes checking dependency style of gcc... (cached) gcc3 checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating doc/Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands
ensuite make cheek (j'avais vu le commentaire en vert et le ====)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 make all-recursive make[1] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75 » Making all in src make[2] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » make[2]: rien à faire pour « all ». make[2] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » Making all in doc make[2] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/doc » make[2]: rien à faire pour « all ». make[2] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/doc » make[2] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75 » make[2] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75 » make[1] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75 »
puis sudo make install:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Making check in src make[1] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » make test make[2] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » make[2]: « test » est à jour. make[2] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » make check-TESTS make[2] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » make[3] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » PASS: test ============================================================================ Testsuite summary for bcm2835 1.75 ============================================================================ # TOTAL: 1 # PASS: 1 # SKIP: 0 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ make[3] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » make[2] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » make[1] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » Making check in doc make[1] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/doc » make[1]: rien à faire pour « check ». make[1] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/doc » make[1] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75
ensuite la compilation blinc.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Making install in src make[1] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » make[2] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » /usr/bin/mkdir -p '/usr/local/lib' /usr/bin/install -c -m 644 libbcm2835.a '/usr/local/lib' ( cd '/usr/local/lib' && ranlib libbcm2835.a ) /usr/bin/mkdir -p '/usr/local/include' /usr/bin/install -c -m 644 bcm2835.h '/usr/local/include' make[2] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » make[1] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/src » Making install in doc make[1] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/doc » make[2] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75/doc » make[2]: rien à faire pour « install-exec-am ». make[2]: rien à faire pour « install-data-am ». make[2] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/doc » make[1] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75/doc » make[1] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75 » make[2] : on entre dans le répertoire « /home/pi/Téléchargements/bcm2835-1.75 » make[2]: rien à faire pour « install-exec-am ». make[2]: rien à faire pour « install-data-am ». make[2] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75 » make[1] : on quitte le répertoire « /home/pi/Téléchargements/bcm2835-1.75 »
$ gcc -o blink blink.c -l bcm2835
blink.c:1:10: fatal error: bcm2712.h: Aucun fichier ou dossier de ce type
1 | #include <bcm2712.h>
| ^~~~~~~~~~~
compilation terminated
E]
[/CODE]
Il attend le nom de la bibliothèque qui est "<bcm2835.h>" et non le numéro du processeur.Envoyé par keokaz
Je viens de retester la bibliothèque "<bcm2835.h>" sur mon RPi 4B, et je n'ai rencontré aucun problème, la Led clignote bien et c'est sur la broche N°11 (GPIO17).
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
j'ai du changer l'include en testant
je refait un fichier cligno.c
je l'ai prix dans exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 :~/Téléchargements/bcm2835-1.75 $ cat cligno.c // blink.c // // Example program for bcm2835 library // Blinks a pin on an off every 0.5 secs // // After installing bcm2835, you can build this // with something like: // gcc -o blink blink.c -l bcm2835 // sudo ./blink // // Or you can test it before installing with: // gcc -o blink -I ../../src ../../src/bcm2835.c blink.c // sudo ./blink // // Author: Mike McCauley // Copyright (C) 2011 Mike McCauley // $Id: RF22.h,v 1.21 2012/05/30 01:51:25 mikem Exp $ #include <bcm2835.h> #include <stdio.h> // Blinks on RPi Plug P1 pin 11 (which is GPIO pin 17) #define PIN RPI_GPIO_P1_11 int main(int argc, char **argv) { // If you call this, it will not actually access the GPIO // Use for testing // bcm2835_set_debug(1); if (!bcm2835_init()) return 1; // Set the pin to be an output bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP); // Blink while (1) { // Turn it on bcm2835_gpio_write(PIN, HIGH); // wait a bit bcm2835_delay(500); // turn it off bcm2835_gpio_write(PIN, LOW); // wait a bit bcm2835_delay(500); } bcm2835_close(); return 0; }
http://www.airspayce.com/mikem/bcm28...c-example.html
puis je lance gcc:
éfectivement il n'y plus d'erreur donc c'est compatible sur mon rpi5.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 /Téléchargements/bcm2835-1.75 $ gcc -o cligno cligno.c -l bcm2835
du coup c'est bien que cela soit compatible, les personnes sont tellement habitué à utiliser les tuto sous python que cela ne fonctionne pas comme en veux dès qu'il a un la moindre changement, dette technique.
les débutant en python comme moi perdront un bon moment car généralement ca rebute plus d'un à faire des make, encore une raison de plus de
ne pas trop faire de python , heureusement que je ne me suis pas spécialisé avec ce langage on gagne du temps mais on on perd plus tard. vu le nombre de projet il faut attendre quelque temps pour que les personnes met à jours leurs lib .
il y a tellement de lib qu'on ne sait plus quoi choisir .
Arduino, Raspberry Pi, ESP, Cypress PSoC, FPGA...
Forums Arduino, Raspberry Pi
Des capteurs connectés pour la maison avec Arduino et Raspberry Pi [Nouveau] Et en Zigbee ?
- Apprendre à développer sur FPGA avec Intel Quartus Prime - Communication SPI avec un convertisseur Analogique-Numérique
- FPGA - Programmer un contrôleur pour écran VGA avec une carte de développement FPGA
Arduino : Le manuel de laboratoire, les Quiz, les cahiers pratiques, les sources et outils
Partager