Aller au contenu


Contenu de Shuzaku

Il y a 82 élément(s) pour Shuzaku (recherche limitée depuis 04-mai 13)



#21520 Programmation en C

Posté par Shuzaku sur 09 juin 2008 - 08:17 dans Programmation

Que dire à part ... bloqué ^^

Je suis pas modo mais tant pis !



#21492 Programmation en C

Posté par Shuzaku sur 05 juin 2008 - 05:42 dans Programmation

Un compilateur il transforme pas le C en assembleur ? <.<



#28421 [Question] Télécommande

Posté par Shuzaku sur 08 juin 2008 - 02:11 dans Electronique

oui voilà zigbee :p (bah là c'était pour un projet de robot téléopéré)



#28418 [Question] Télécommande

Posté par Shuzaku sur 07 juin 2008 - 10:11 dans Electronique

Je sais pas trop, il faut chercher sur internet mais je crois que ceux que j'ai eu l'occasion de maniper valait tout de même quelques centaines d'euros :x (mais ils avaient une porté de 200 mètre aussi et utilisait les ondes xbee un truc comme ça)

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

Inutile de ré-inventer l'eau chaude tout les jours :x

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

Merci robocop ;)

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

Je ne comprends rien de ce que tu compte faire avec tes portes logiques, mais bon courage quand même ! (Ptet parce que "gérer un flux binaire sur un robot" ça ne veut pas dire grand chose pour moi)



#28412 [Question] Télécommande

Posté par Shuzaku sur 03 juin 2008 - 05:12 dans Electronique

Il existe des petits modules tout prêt mais généralement assez cher.
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

J'ai créé un robot en cours télé-opéré par joystick sur PC en utilisant les fameux modules que j'ai cité plus haut et en utilisant un programme en C qui à l'aide de la librairie SDL lisait les renseignements du joystick, s'en suit un petit calcul pour transformer ces renseignements en 2 octets allant de - 127 à 128, un octet pour chaque moteur (droit ou gauche) et le signe servait à indiquer marche avant ou marche arrière. Donc on envoyait ces octets l'un après l'autre sur le port série du PC, ce port série étant relié au module transmetteur zigbee, celui-ci transmet ses info au module récepteur zigbee qui lui meme retransforme les octect en série relié à un petit micro-contrôlleur (codé aussi en C, parce que vive le C :p ) sur le robot, le microcontrolleur se chargait de capter ces données et de les traité pour les envoyé sur le pont en H de chaque moteur !

Et ça donnait ça :

x4uw9w_robot2_tech
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 ^^
Edit bio : c'est da



#28414 [Question] Télécommande

Posté par Shuzaku sur 03 juin 2008 - 06:23 dans Electronique

Bah si tu achète les modules tout prêts c'est exactement la même difficulté que le filaire :p



#28365 effets lumineux sur maquettes

Posté par Shuzaku sur 05 juin 2008 - 06:56 dans Electronique

Je dirais même plus revoir loi des nœuds des mailles tout ça ^^



#28361 effets lumineux sur maquettes

Posté par Shuzaku sur 05 juin 2008 - 06:30 dans Electronique

Les intensité s'ajoute lorsque c'est en parallèle
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?

oui mais lui c'est un dingue :p
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?

T'inquiete Alex, j'avais eu encore moins que toi ^^

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?

:heu:

(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?

Toutes les résistances que j'ai sont quasiment déjà toutes soudées <.<



#28614 Un microcontroleur ???

Posté par Shuzaku sur 26 juin 2008 - 11:36 dans Electronique

Si tu veux faire tourner les moteurs dans un sens ou dans l'autre avec un microcontrolleur, il va falloir mettre un petit pont en H aux moteurs ^^



#28515 Programmer un PIC sans le retirer de son montage

Posté par Shuzaku sur 11 juin 2008 - 05:02 dans Electronique

En cours on programmait nos microcontrolleur directement sur leur maquette sans les enlever mais je sais pas comment ça marchait (en tout cas ça marchait bien ^^)



#23080 Enchanté !

Posté par Shuzaku sur 13 décembre 2008 - 02:51 dans Et si vous vous présentiez?

Avec un parcours atypique comme ça, tu as les cartes de ton côté, tu rebondis et tu es capable d'expliquer le pourquoi des choses, bravo ! Que veux tu demander de plus, bonne continuation ! ^^

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?

[quote"Alex934"]Curiosité :D mais bon je pense passer par la case DUT GEII et après je verrais le moment venu ; mais bon je commence a voir un peu de tous les cotés
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

Ce n'est pas une question conne, on se l'est déjà tous posé un jour ou l'autre.

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

C'est vrai que 70 instructions ca semble pas énorme ! Ça fait un tout petit programme ça ^^

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

Je l'ai rajouté



#28739 microcontroleur

Posté par Shuzaku sur 17 juillet 2008 - 11:32 dans Electronique

Je suis d'accord ! Vive Atmel :p