Aller au contenu


Contenu de Shuzaku

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



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



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



#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à.



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



#28632 Un microcontroleur ???

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

Dans ce cas là programmer un logiciel en C est aussi un abus de langage puisque ça passe par un compilateur, enfin bon moi je dis ça mais je dis rien ... :p

(par contre les gens qui programme direct en ASM, ils sont complètement maso :p )

C'est juste pour blaguer hein ^^



#28621 Un microcontroleur ???

Posté par Shuzaku sur 27 juin 2008 - 04:00 dans Electronique

http://www.datasheetcatalog.org/datasheets/90/69628_DS.pdf

Aucun passage particulier, c'est dans la globalité.



#28619 Un microcontroleur ???

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

J'ai regardé vite sa doc mais j'y comprends pas grand chose ^^



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



#20922 tutoriel SDCC

Posté par Shuzaku sur 27 juin 2008 - 04:01 dans Programmation

[quote"danman"]le C++ n'est pas plus difficile que le C et est théoriquement plus facile[/quote]

théoriquement :|



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



#21538 [SONDAGE] comment avez-vous appris a pogrammer?

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

En lisant les tutos du sdz
En créant des sites
En allant en cours



#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



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



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



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



#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



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



#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



#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



#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



#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



#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



#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



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