Salut, dans le cadre d'un projet scolaire, nous somme un groupe de 5 personnes,
devant réaliser un trieur de linge. Pour cela nous avons réalisé et simulé la partie
mécanique. Mais maintenant nous devons appliqué la partie robotique/electronique.
l’alimentations est fourni par le secteur. Nous disposons de 1 moteur, 1 capteurs de couleur
(les références ne sont pas encore défini, cela va déprendre de la compatibilité avec le raspberry)
puis 4 éjecteur electro-aimant.
Ce que je voudrais savoir : est il possible de diriger tous ces composants à partir d'un programme
fait sur le raspberry. Je programme moi même en C++ depuis 3 ans, je sais ce qui m'attend.
Donc si vous avez des tutoriels je suis preneur.
Merci
TPE terminal s
8 posts
- Posts: 11
- Joined: Wed Dec 26, 2012 3:37 pm
Je ne m'y connais pas des masses en gpio et compagnie mais de ce que j'ai vu qui à été réalisé avec le rpi , je ne vois aucune raison que ça ne convienne pas
- Posts: 15
- Joined: Fri Dec 28, 2012 12:55 pm
Seul problème : la conception électronique,
Côté soft, pas de problème.
Plusieurs solutions existent (et la doc est bien fournie) :
- en shell : gpio
- C wiringPi
- en python
Côté soft, pas de problème.
Plusieurs solutions existent (et la doc est bien fournie) :
- en shell : gpio
- C wiringPi
- en python
- Posts: 184
- Joined: Thu Jan 24, 2013 8:43 am
Tout cela est possible bien sur ! Tu peux disposer de 17 GPIO au maximum sur le RPi. Pour l'entrée du capteur optique, il y a un port CSI sur la carte, tu peux trouver une caméra compatible ou passer par une autre biais.
Visitez mon site Web : les aventures d'un apprenti pilote : http://dreamofflying.wordpress.com/
- Posts: 42
- Joined: Thu Nov 29, 2012 8:55 pm
Merci, je pense plutot utiliser le language C, pour programmer.
j'ai trouvé quelque demo qui mon l'air tres simple :
Sauriez vous où je pourrais trouver des capteurs de couleur/ou autre composants
compatible avec le raspberry ? j'ai beau chercher je ne sais pas si le composant
est compatible avec le raspberry.
Merci
j'ai trouvé quelque demo qui mon l'air tres simple :
- Code: Select all
#define BCM2708_PERI_BASE 0x20000000
#define GPIO_BASE (BCM2708_PERI_BASE + 0x200000) /* GPIO controller */
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <unistd.h>
#define PAGE_SIZE (4*1024)
#define BLOCK_SIZE (4*1024)
int mem_fd;
char *gpio_map;
// I/O access
volatile unsigned *gpio;
// GPIO setup macros. Always use INP_GPIO(x) before using OUT_GPIO(x) or SET_GPIO_ALT(x,y)
#define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3))
#define OUT_GPIO(g) *(gpio+((g)/10)) |= (1<<(((g)%10)*3))
#define SET_GPIO_ALT(g,a) *(gpio+(((g)/10))) |= (((a)<=3?(a)+4:(a)==4?3:2)<<(((g)%10)*3))
#define GPIO_SET *(gpio+7) // sets bits which are 1 ignores bits which are 0
#define GPIO_CLR *(gpio+10) // clears bits which are 1 ignores bits which are 0
void setup_io();
int main(int argc, char **argv)
{
int g,rep;
// Set up gpi pointer for direct register access
setup_io();
// Switch GPIO 7..11 to output mode
/************************************************************************\
* You are about to change the GPIO settings of your computer. *
* Mess this up and it will stop working! *
* It might be a good idea to 'sync' before running this program *
* so at least you still have your code changes written to the SD-card! *
\************************************************************************/
// Set GPIO pins 7-11 to output
for (g=7; g<=11; g++)
{
INP_GPIO(g); // must use INP_GPIO before we can use OUT_GPIO
OUT_GPIO(g);
}
for (rep=0; rep<10; rep++)
{
for (g=7; g<=11; g++)
{
GPIO_SET = 1<<g;
sleep(1);
}
for (g=7; g<=11; g++)
{
GPIO_CLR = 1<<g;
sleep(1);
}
}
return 0;
} // main
//
// Set up a memory regions to access GPIO
//
void setup_io()
{
/* open /dev/mem */
if ((mem_fd = open("/dev/mem", O_RDWR|O_SYNC) ) < 0) {
printf("can't open /dev/mem \n");
exit(-1);
}
/* mmap GPIO */
gpio_map = (char *)mmap(
NULL, //Any adddress in our space will do
BLOCK_SIZE, //Map length
PROT_READ|PROT_WRITE,// Enable reading & writting to mapped memory
MAP_SHARED, //Shared with other processes
mem_fd, //File to map
GPIO_BASE //Offset to GPIO peripheral
);
close(mem_fd); //No need to keep mem_fd open after mmap
if ((long)gpio_map < 0) {
printf("mmap error %d\n", (int)gpio_map);
exit(-1);
}
// Always use volatile pointer!
gpio = (volatile unsigned *)gpio_map;
} // setup_io
Sauriez vous où je pourrais trouver des capteurs de couleur/ou autre composants
compatible avec le raspberry ? j'ai beau chercher je ne sais pas si le composant
est compatible avec le raspberry.
Merci
- Posts: 11
- Joined: Wed Dec 26, 2012 3:37 pm
Bonjour,
Il n'y a pas de composant spécifiquement compatible avec le Raspberry PI. Si tu utilises les GPIO, il faut des capteurs qui travaillent en 3,3V. Sinon, il faut réaliser un étage électronique de compatibilité de tension. Regarde du coté des forum Arduino par exemple.
Bon projet.
A+
Il n'y a pas de composant spécifiquement compatible avec le Raspberry PI. Si tu utilises les GPIO, il faut des capteurs qui travaillent en 3,3V. Sinon, il faut réaliser un étage électronique de compatibilité de tension. Regarde du coté des forum Arduino par exemple.
Bon projet.
A+
- Posts: 164
- Joined: Wed Oct 17, 2012 7:53 pm
Ces 2 circuits fonctionnent en 3,3V:
http://www.watterott.com/en/Color-Light-Sensor-Evaluation-Board
http://www.watterott.com/en/Color-Light-Sensor-Evaluation-Board-
La société est sérieuse et livre rapidement.
http://www.watterott.com/en/Color-Light-Sensor-Evaluation-Board
http://www.watterott.com/en/Color-Light-Sensor-Evaluation-Board-
La société est sérieuse et livre rapidement.
- Posts: 94
- Joined: Fri Oct 07, 2011 5:37 pm
Salut, j'ai trouvé une librairie C, qui me permet de gère des composant en input/output.
Les composant que tu me propose sont des capteur de lumière, est ce que c'est la même
chose que des capteurs de couleurs ?
Les composant que tu me propose sont des capteur de lumière, est ce que c'est la même
chose que des capteurs de couleurs ?
- Posts: 11
- Joined: Wed Dec 26, 2012 3:37 pm