- Robot Maker
- → Contenu de Shuzaku
Contenu de Shuzaku
Il y a 82 élément(s) pour Shuzaku (recherche limitée depuis 04-mai 13)
Par type de contenu
Voir pour ce membre
#21520 Programmation en C
Posté par Shuzaku sur 09 juin 2008 - 08:17 dans Programmation
Je suis pas modo mais tant pis !
#21492 Programmation en C
Posté par Shuzaku sur 05 juin 2008 - 05:42 dans Programmation
#28421 [Question] Télécommande
Posté par Shuzaku sur 08 juin 2008 - 02:11 dans Electronique
#28418 [Question] Télécommande
Posté par Shuzaku sur 07 juin 2008 - 10:11 dans Electronique
Comment ça c'est pas adapté à une télécommande :p
#28433 [Question] Télécommande
Posté par Shuzaku sur 10 juin 2008 - 05:46 dans Electronique
Certes on apprend moins en utilisant des modules tout prêt mais pour un débutant qui à besoin d'émerveillement pour trouver le courage de se lancer lui même dans les moindre détailles de l'électronique je vois pas le souci ! Que chacun trouve sa voie :p
#28452 [Question] Télécommande
Posté par Shuzaku sur 26 août 2008 - 11:10 dans Electronique
étant donné que, contrairement à la programmation, la robotique n'est pas gratuite :p ).
A notre grand malheur ...
Je serais toi, je commencerais par effectuer une première étape que je vais te décrire, qui ne demande pas d'électronique ni rien de tout ça, juste 2 PC reliés par câble série seraient nécessaire !
Tu chope un joystick, un langage de programmation que tu connais bien qui sait bosser avec les joysticks (le C et la SDL à tout hasard ...), aller en cadeau je te met à la fin de ce message des fonctions qui permettent d'utiliser le port série parce que ça peut être relou à trouver sur le web.
Sur Windows tu as un truc très sympa qui s'appelle "Hyper Terminal" dans démarrer->tout les programmes->accessoires->communication. Ce fameux hyperterminal permet de travailler avec le port série lui aussi.
Sur le premier PC, tu créer un programme qui est capable de lire le joystick et les boutons que tu veux.
Ce programme va devoir renvoyer l'info du joystick sur le port série avec un quelconque octet (nombre) que tu choisi, par exemple tu renvoi un 1 sur le port série si tu appuie sur le bouton 1, un 2 si c'est le deuxième bouton etc.
Sur le second PC, tu va ouvrir ce fameux hyper terminal, tu donnes un nom bidon à ta connexion hyper terminal quand il te le demande, tu fais ok, tu choisies "Se connecter en utilisant COM3", ensuite tu mets 9600 bits/seconde, 8 bits de données, partié paire, bit d'arrêt 1, contrôle de flux matériel. Voilà, ton hyperterminal est réglé et affichera maintenant tout ce qu'on lui enverra par le port COM.
Tu relie bien sûr les deux PC avec un câble série qui convient.
Maintenant, le but est que lorsque tu appuie sur un bouton de ton joystick, tu recoive bien le nombre du bouton sur le second PC. Si déjà tu parvient à ce résultat, c'est que ta bien bossé !
Des exemples d'utilisation des fonctions :
g_ErrCom=OuvreCom(PORT1,V9600,BITS_8,PARITE_PAIRE,BIT_DE_STOP_1);
//émission vers port
g_ErrCom=EmissionCom(&moteur_gauche,1);[/code]
// FONCTION : OuvreCom
//------------------------------------------------------------------------------
// DESCRIPTION :
// Initialise et ouvre un port série
//
//------------------------------------------------------------------------------
// PARAMETRES :
// - strPort Nom du port "COM1", "COM2"
// - BaudRate Vitesse
// - BitsSize Taille de l'info
// - Parity Parité
// - StopBits Nombre de bits de stop
//
// RETOUR :Code d'erreur
//------------------------------------------------------------------------------
e_ErrCom OuvreCom(char *strPort,long BaudRate,int BitsSize,int Parity,int StopBits)
{
g_ErrCom = e_ErrCom_None;
// On ouvre le port série
g_hCom = CreateFile(strPort,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_WRITE_THROUGH | FILE_FLAG_NO_BUFFERING,NULL);
if(g_hCom == INVALID_HANDLE_VALUE)
{
// Echec
g_ErrCom=e_ErrCom_Creation;
}
else
{
// On vide les buffers
PurgeComm(g_hCom,PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
// On paramètre le port série
g_DCB.DCBlength = sizeof(DCB);
//Configuration actuelle
GetCommState(g_hCom, &g_DCB);
//Modification du DCB
g_DCB.BaudRate=BaudRate;
g_DCB.ByteSize=BitsSize;
g_DCB.Parity=Parity;
g_DCB.StopBits=StopBits;
g_DCB.fDtrControl=DTR_CONTROL_DISABLE;
//Configuration de la liaison serie
SetCommState(g_hCom,&g_DCB);
}
return g_ErrCom;
}
//----------------------------------------------------------------------------
// FONCTION : EmissionCom
//----------------------------------------------------------------------------
// DESCRIPTION :
// Emission d'octets sur la liaison série
//
//----------------------------------------------------------------------------
// PARAMETRES :
// -lpBuf Pointeur sur les octets a emettre
// -nCount Nombre d'octet a emettre
//
//----------------------------------------------------------------------------
// RETOUR :Code d'erreur
//----------------------------------------------------------------------------
e_ErrCom EmissionCom(const void* lpBuf,unsigned int nCount)
{
DWORD NumBytes=0;
if(g_hCom!=NULL)
{
// On pari sur pas d'erreur
g_ErrCom=e_ErrCom_None;
//Emission du buffer
if(WriteFile(g_hCom,lpBuf,nCount,&NumBytes,NULL)==0)
{
g_ErrCom=e_ErrCom_Emission;
}
}
else
//Le port n'a pas été ouvert
g_ErrCom=e_ErrCom_Creation;
return g_ErrCom;
}
//---------------------------------------------------------------------------
// FONCTION : ReceptionCom
//---------------------------------------------------------------------------
// DESCRIPTION :
// Reception de caractères sur la liaison série
//
//---------------------------------------------------------------------------
// PARAMETRES :
// -lpBuf Pointeur sur le buffer de caractère a lire
// -nCountMax Nombre maxi de caractère a lire
// -pCountRead Pointeur sur le nombre de caractères lus
//---------------------------------------------------------------------------
// RETOUR :Code d'erreur
//---------------------------------------------------------------------------
e_ErrCom ReceptionCom(void *lpBuf,unsigned int nCountMax, unsigned int* pCountRead)
{
COMSTAT Stat;
DWORD Errors;
unsigned int nCarALire;
unsigned long NCarLus=0;
if(g_hCom!=NULL)
{
//on pari sur pas d'erreur
g_ErrCom=e_ErrCom_None;
//Pour éviter de gérer un time out
Sleep(500);
//Pour connaitre le nombre d'octets dans le buffer d'entrée
ClearCommError(g_hCom,&Errors,&Stat);
nCarALire=Stat.cbInQue;
//On effectue la lecture si il y a des caractères présents
if( (nCarALire>0)&&(nCarALire<=nCountMax) )
{
if(ReadFile(g_hCom,lpBuf,nCarALire,&NCarLus,NULL)==0)
{
g_ErrCom=e_ErrCom_Reception;
}
}
*pCountRead=NCarLus;
}
else
//Le port n a pas été ouvert
g_ErrCom=e_ErrCom_Creation;
//Compte rendu de l'exécution
return g_ErrCom;
}
//-----------------------------------------------------------------------
// FONCTION : FermeCom
//-----------------------------------------------------------------------
// DESCRIPTION :
// Ferme le port série préalablement ouvert avec OuvreCom
//
//-----------------------------------------------------------------------
// PARAMETRES :
// Néant
//-----------------------------------------------------------------------
// RETOUR :Néant
//-----------------------------------------------------------------------
void FermeCom()
{
if(g_hCom!=NULL)
{
CloseHandle(g_hCom);
}
}[/code]
Code d'en tête, tu as des truc inutile à enlever là dedans, je le mets juste pour t'aider ...
//------------------------------------------------------------------------------
#include
#include
#include
#include
#include
#include
#include
#include
#include
// CONSTANTES
//-------------------------------------------------------------------------------
// Définition du code d'erreurs
typedef enum
{
e_ErrCom_None, // Pas d'erreur
e_ErrCom_Creation, // Erreur lors de la création du flux
e_ErrCom_Utilise, // Le port com est déjà utilisé
e_ErrCom_Inexistant, // Le port com n'existe pas
e_ErrCom_Timeout, // Timeout lors d'une émission-réception
e_ErrCom_Emission, // Erreur lors de l'émission
e_ErrCom_Reception, // Erreur lors de la réception
e_ErrCom_Definition_Trame, // Erreur de définition de la trame
e_ErrCom_Nack, // Demande non prise en coompte
e_ErrCom_Checksum // Erreur de checksum
} e_ErrCom;
// Nom du port série
#define PORT1 "COM1"
#define PORT2 "COM2"
// Définition des vitesses de communication
#define V1200 1200
#define V2400 2400
#define V4800 4800
#define V9600 9600
// Définition du nombre de bits
#define BITS_7 7
#define BITS_8 8
// Définition du nombre de bits de stop
#define BIT_DE_STOP_1 1
#define BIT_DE_STOP_2 2
// Définition de la parité
#define PAS_DE_PARITE 'N'
#define PARITE_IMPAIRE 'O'
#define PARITE_PAIRE 'E'
// Codes de retour génériques
#define OK 1
#define KO 0
// Longueur max réservée pour une trame
#define LG_TRAME 100
// PROTOTYPES
//----------------------------------------------------------------------------
e_ErrCom OuvreCom(char *strPort,long BaudRate,int BitsSize,int Parity,int StopBits);
e_ErrCom EmissionCom(const void *lpBuf, unsigned int nCount);
e_ErrCom ReceptionCom(void *lpBuf, unsigned int nCountMax, unsigned int *pCountRead);
void FermeCom();
void pause();
void image_position(int position, SDL_Surface *ecran, SDL_Surface *imageDePosition);
// VARIABLES GLOBALES
//-----------------------------------------------------------------------------
DCB g_DCB; // structure dcb du port
e_ErrCom g_ErrCom= e_ErrCom_None; // Variable des erreurs de com
HANDLE g_hCom = 0; // handle de la com[/code]
BON COURAGE ET BONNE CHANCE !
Après, l'info primaire est sortie de ton PC, il ne reste plus qu'à la faire voyager dans des ondes ! :p
#28457 [Question] Télécommande
Posté par Shuzaku sur 27 août 2008 - 08:27 dans Electronique
comment les utiliser ? ou plutôt comment les fabriquer ?
Parce que on peut surement en trouver plein de différent tout prêt mais en général dans ces cas là, c'est très facile à utiliser ils font quasiment tout tout seul !
#28454 [Question] Télécommande
Posté par Shuzaku sur 27 août 2008 - 03:44 dans Electronique
#28412 [Question] Télécommande
Posté par Shuzaku sur 03 juin 2008 - 05:12 dans Electronique
Un module de réception qui convertie un signal série en une onde quelconque puis un module de réception qui convertie la même onde en signal série. Du coup, ça devient beaucoup plus facile de faire du sans fil avec ce genre de matériel.
#28447 [Question] Télécommande
Posté par Shuzaku sur 11 juin 2008 - 05:10 dans Electronique
Et ça donnait ça :
edit : tien ça marche pu les balises daily <.<
vidéo là : http://www.dailymotion.com/Yoshimi2/video/x4uw9w_robot2_tech
C'était un projet vraiment sympatique ^^
#28414 [Question] Télécommande
Posté par Shuzaku sur 03 juin 2008 - 06:23 dans Electronique
#28365 effets lumineux sur maquettes
Posté par Shuzaku sur 05 juin 2008 - 06:56 dans Electronique
#28361 effets lumineux sur maquettes
Posté par Shuzaku sur 05 juin 2008 - 06:30 dans Electronique
Les tension s'ajoute lorsque c'est en série
#22764 Knaky
Posté par Shuzaku sur 12 juillet 2008 - 05:42 dans Et si vous vous présentiez?
On a du bol qu'il n'y a pas de modo qui passe par là, je suis pas sûr que notre discussion soit très constructive :p
#22760 Knaky
Posté par Shuzaku sur 12 juillet 2008 - 11:29 dans Et si vous vous présentiez?
Fr écrit 7
Fr oral 14
Hist-Géo 8 (je suis plus trop sûr)
Et je me suis retrouvé avec mention AB à la fin grâce à un 17 en math 17 en physique 16 en bio :p
(Et l'année prochaine je rentre dans une des plus grosse école d'ingé scientifique de france :| )
Y'a encore tout plein d'espoir :p
#22762 Knaky
Posté par Shuzaku sur 12 juillet 2008 - 03:59 dans Et si vous vous présentiez?
(si il n'y avait que ça :D )
#22767 Knaky
Posté par Shuzaku sur 13 juillet 2008 - 11:01 dans Et si vous vous présentiez?
#28614 Un microcontroleur ???
Posté par Shuzaku sur 26 juin 2008 - 11:36 dans Electronique
#28515 Programmer un PIC sans le retirer de son montage
Posté par Shuzaku sur 11 juin 2008 - 05:02 dans Electronique
#23080 Enchanté !
Posté par Shuzaku sur 13 décembre 2008 - 02:51 dans Et si vous vous présentiez?
Je suis également en école d'ingé de mécanique (ENSAM), bien qu'à la base je voulais aller dans une école d'élec mais bon, un petit coup de hasard et me voilà redirigé dans la mécanique.
Au niveau des alims de labo, jete un petit coup d'oeil ici : http://www.robotix.fr/forum/sujet-3384-1-se-monter-une-alimentation.html
#22984 et dire que j'ai découvert ça à l'école^^
Posté par Shuzaku sur 08 octobre 2008 - 10:00 dans Et si vous vous présentiez?
Merci ;)
PS: j'aime bien le "on a eu un STI qui a réussi" xD Hahaha
[/quote]
Après GEII, y'a carrément moyen d'intégrer l'ENSEA si tu es à fond sur l'élec. Ou d'autres écoles... même en venant de STI. Si tu veux plus d'info là dessus n'hésite pas.
#28975 La masse ?
Posté par Shuzaku sur 28 août 2008 - 11:44 dans Electronique
La masse, c'est le point (potentiel) de référence du circuit. Dans la plupart des cas, c'est le 0V, le moins de la pile, le moins du générateur.
Si il y a plusieurs masse sur un schéma, il faut considérer qu'elles sont toutes reliées ensembles.
#21533 [Programmation du micro-contrôleur] limite d'instructions
Posté par Shuzaku sur 09 juin 2008 - 06:11 dans Programmation
Il existe plein de microcontroleurs différents, il doit y en avoir des plus gros :)
#28978 La masse ?
Posté par Shuzaku sur 28 août 2008 - 04:07 dans Electronique
#28739 microcontroleur
Posté par Shuzaku sur 17 juillet 2008 - 11:32 dans Electronique
- Robot Maker
- → Contenu de Shuzaku
- Privacy Policy