Aller au contenu


Contenu de Shuzaku

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



#21626 Femme parfaite.

Posté par Shuzaku sur 26 août 2008 - 11:16 dans Programmation

C'est beau de vouloir ...

Mais quand on voit quel travail peut demander un simple détails qui parait si simple à dire ...

J'ai envi de dire une seule chose, commence par le commencement :x



#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



#28940 vérification des composants

Posté par Shuzaku sur 16 août 2008 - 12:02 dans Electronique

Il y a ptet des lettres ou des chiffres barbares inscrits sur tes composants ? C'est le genre de truc qui aide normalement.



#28937 vérification des composants

Posté par Shuzaku sur 16 août 2008 - 12:09 dans Electronique

Un emetteur, un récepteur par deux fois les mêmes. Optocoupleurs ? (Ce n'est qu'une suggestion, j'en sais rien en fait :p )



#28864 Schématisation Cocotix v1 : 2 générateurs o__O

Posté par Shuzaku sur 31 juillet 2008 - 12:10 dans Electronique

C'est vrai qu'un petit tuto sur les symboles et leur signification ça pourrait être utile :)



#22845 Nouveau membre !

Posté par Shuzaku sur 31 juillet 2008 - 10:05 dans Et si vous vous présentiez?

Bienvenue !

Les microcontrolleurs sont loin d'être aussi limités que tu peux le penser. Tu peux commander un robot sans problème à l'aide d'une caméra (analogique ou numérique) et d'un microcontrolleur, après tout dépend comment tu veux qu'il "se dirige tout seul dans son environnement" qui à mon avis veut pas dire grand chose :p

Après comme l'a dit miky-mike, suffit de mettre le prix :|



#28845 Trucs && Astuces

Posté par Shuzaku sur 30 juillet 2008 - 10:57 dans Electronique

Test de continuité



A modifier, voir quelques messages plus bas



Munissez vous d'un multimètre bipeur, pointer deux points de votre circuit qui doivent être normalement reliés avec les deux fils du multimètre, si le multimètre bip c'est que vos deux points sont effectivement bien reliés et que le courant pourra passer. Sinon, c'est qu'il existe une micro-coupure ou que votre montage a une erreur de connexion.



#21598 Comment compiler mon programme dans ma carte ?

Posté par Shuzaku sur 30 juillet 2008 - 10:07 dans Programmation

Je ne fais qu'informer :| En plus j'ai même donné une option légale :p :heu:



#21596 Comment compiler mon programme dans ma carte ?

Posté par Shuzaku sur 30 juillet 2008 - 09:59 dans Programmation

Tu peux télécharger légalement une version d'essai de c++ builder (borland) et une version complète illégalement. Je l'ai déjà utilisé ce logiciel, il est pas mal du tout.



#28750 [Projet en commun] Big tutoriel sur l'électronique

Posté par Shuzaku sur 20 juillet 2008 - 10:06 dans Electronique

Si tu peux les intégrer, mais d'une façon pas trop approfondie. Mais c'est vrai que finallement je ne crois pas que les transistor fasse partie des base théorique de l'électronique, c'est juste un composant comme un autre :p

Dans ce cas là il faudrait peut être aussi parler des diodes, des thyristors, des triacs, enfin bref partout ou il y a X jonction N et P :p



#28748 [Projet en commun] Big tutoriel sur l'électronique

Posté par Shuzaku sur 20 juillet 2008 - 09:41 dans Electronique

[quote"miky-mike"][quote"robocop"]Ca fait peut être un peu trop de chapitres pour les transistors, nan ?[/quote]
avec ça, cela fera une très bonne base.

je vois mal expliquer comment calculer la polarisation alors que le mec ne sais pas ce que c'est que le point de repos par exemple.
Et encore j'ai fait souple car sur les transistor on pourrais carrément faire tout un livre quasi .[/quote]

+1, il y a vraiment de quoi faire un big tutoriel juste pour les transistors :p



#25128 [projet de groupe] Calculatrice

Posté par Shuzaku sur 20 juillet 2008 - 07:50 dans Archives

[quote"gogohan"]
Je vais faire un pdf pour expliquer l'addition/soustraction/multiplication/division en binaire et les conversions vers d'autres bases (binaire -> décimal etc...) :D . Je vous l'envoie dès que possible :-° [/quote]

Le pdf en question, faut suivre les gars :D



#28739 microcontroleur

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

Je suis d'accord ! Vive Atmel :p



#22787 Ya2N

Posté par Shuzaku sur 15 juillet 2008 - 06:31 dans Et si vous vous présentiez?

Et bien on commandait des maquettes tapis roulant plus tout un tas de petit actionneurs à l'aide d'automates Schneider et de PL7PRO.
Ensuite, on a bosser sur un petit projet style "domotique" avec des ventilateurs, des lampes, des interrupteurs avec un petit automates sympathique WAGO avec contrôle par page web, serveur FTP ...
Niveau régulation, on a rien fait en rapport avec les automates mais on a appris le théorique. Il parrait qu'on peut facilement piloter un PID avec un automates tout ça, ça doit être sympathique, dommage qu'on est pas été jusque là.



#22785 Ya2N

Posté par Shuzaku sur 14 juillet 2008 - 12:07 dans Et si vous vous présentiez?

- Les petits circuits logique à l'aide d'un langage appelé "VHDL"
- Les API (automate programmable industriel), mais ça, si tu veux en faire à domicile va falloir beaucoup débourser parce que c'est très axé robots industriels :p (par contre qu'est ce que c'est agréable à faire :| )



#22783 Ya2N

Posté par Shuzaku sur 14 juillet 2008 - 11:20 dans Et si vous vous présentiez?

(Et ça demande pas mal de matériel du coup)

Comme l'a dit miky mike, ça se programme très bien en C, sauf que je dirais quand même que c'est du C très axé microcontrolleur, c'est à dire qu'on utilise beaucoup les opérateurs bit à bit, les octets tout ça. Cependant, chaque constructeur y va de sa petite sauce et il n'y a pas vraiment de standards universels.
En électronique, il n'y a pas non plus que les microcontrolleurs qui se programment même si sur robotix on ne parle quasiment que de ç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 <.<



#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



#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 )



#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



#28733 Les TRIACS

Posté par Shuzaku sur 11 juillet 2008 - 02:46 dans Electronique

Il se bloque quand l'intensité passe à zéro. (Ptet que certains triacs ce n'est pas zéro mais une certaine valeur défini par le constructeur :x)



#28731 Les TRIACS

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

J'ai pas trop compris ta première question, mais ton graph me semble correcte :)



#28729 Les TRIACS

Posté par Shuzaku sur 10 juillet 2008 - 09:37 dans Electronique

J'ai fais ça vite fait, j'espère ne pas me planter (je suis pas un expert du triac ^^) et que ça pourra t'aider.


Je me suis planté c'est pas "courant thyristor" mais "courant triac".



#28727 Les TRIACS

Posté par Shuzaku sur 10 juillet 2008 - 06:32 dans Electronique

En cours, j'ai toujours appris à faire fonctionner un triac avec de l'alternatif !

Lorsque que ta une impulsion sur la gâchette, le courant peut passer a travers le triac jusqu'à ce que la tension atteigne le 0. (Fatalement, si pas d'impulsions, le triac ne conduit jamais)

Si besoin, je peux essayer de tracer les courbes, c'est toujours plus facile à comprendre comme ça.



#25101 [TUTO] asservissement et régulation

Posté par Shuzaku sur 09 juillet 2008 - 02:18 dans Archives

Bonjour,



Le tuto sur lequel j'ai passé je dois dire de nombreuses dizaines d'heures est en ligne. Ce tuto essai d'expliquer le fonctionnement des asservissements et régulation. Il n'est pas encore fini (60%). Son niveau de difficulté reste élevé, car c'est pas évident d'expliquer les asservissement sans math de niveau Terminale S.



Je recherche des critiques, des conseils, des corrections par rapport à ce tuto pour l'optimiser ! L'engouement qu'il peut créer aura forcément une incidence sur la fin de rédaction. J'ai volontairement laissé les futurs chapitre vides.



Je vous remercie d'avance ;)