Go Down

Topic: Comprehension code - Aide projet bac STI2D (Read 808 times) previous topic - next topic

Dashinox

Bonjour à tous, comme vous l'avez certainement bien compris dans le titre j'aurai besoin d'un peu d'aide concernant mon projet de SIN pour le bac..

Mon projet est plus ou moins terminer seulement voilà au vu de mes oraux qui arrivent très prochainement je ne me sens pas en mesure de bien pouvoir tout expliquer car il est vrai que par exemple il y a certaine fonction dans mon code que je ne serai pas vraiment expliquer donc si quelqu'un aurait l'amabilité de bien pouvoir le faire se serai vraiment sympa !





Code: [Select]

void moteur (int moteur_gauche, boolean sens_moteur_gauche, int moteur_droite, boolean sens_moteur_droite)
{
  // définition sens moteur LOW avance, HIGH recule
  digitalWrite(direction_moteur_gauche, sens_moteur_gauche);
  analogWrite(controle_moteur_gauche, moteur_gauche);
  digitalWrite(direction_moteur_droite, sens_moteur_droite);
  analogWrite(controle_moteur_droite, moteur_droite);
}



Code: [Select]

{
  int i;
  for (i=2;i<=7;i++){
    pinMode(i, OUTPUT);
  }
 


Voici les 2 bouts de code qui me pose le plus de problème je les comprend plus ou moins se qu'il font mais pour l'expliquer face à un jury se serai assez compliquer pour moi donc si vous pouvez me dire de façon assez simple se que chacune des ligne fait sa serai cool !



Et au passage si certains connaissent bien cette épreuve et qu'il aurait des conseilles à me donner pour la réussir au maximum je suis évidemment plus que preneur ! :p


Merci

7segpark

Bonjour,

D'habitude on n'explique pas un code ligne par ligne lors d'une présentation, il suffit de mentionner le rôle de la fonction dans le fonctionnement global du programme. Enfin si tu tiens vraiment à mieux comprendre ces 2 parties du code, vaut mieux mettre tout le programme, ça facilitera la tâche de t'expliquer à quoi ça consiste en détail.

Jambe

Code: [Select]
{
  int i;
  for (i=2;i<=7;i++){
    pinMode(i, OUTPUT);
  }


Sérieusement, tu comprend pas cette boucle? C'est un des premiers chapitres du tuto d'Eskimon.

C'est quand la soutenance? On va y aller a ta place sinon c'est pas gagné le bac

Dashinox

Code: [Select]
{
  int i;
  for (i=2;i<=7;i++){
    pinMode(i, OUTPUT);
  }


Sérieusement, tu comprend pas cette boucle? C'est un des premiers chapitres du tuto d'Eskimon.

C'est quand la soutenance? On va y aller a ta place sinon c'est pas gagné le bac
A part qu'elle sert à définir les port 2 à 7 non je comprend pas exactement désolé. J'ai encore 1 mois

Dashinox

Bonjour,

D'habitude on n'explique pas un code ligne par ligne lors d'une présentation, il suffit de mentionner le rôle de la fonction dans le fonctionnement global du programme. Enfin si tu tiens vraiment à mieux comprendre ces 2 parties du code, vaut mieux mettre tout le programme, ça facilitera la tâche de t'expliquer à quoi ça consiste en détail.
Je m'en doute c'est se que je compte faire mais lors des 10 min de questions qu'ils vont me posé sa pourrait peut être mettre bien utile de connaitre plus précisément chacune des fonctions de mon code non ?


Anthony1012

Bonjour Dashinox alors je vais t'expliquer

Pour
Code: [Select]
void moteur (int moteur_gauche, boolean sens_moteur_gauche, int moteur_droite, boolean sens_moteur_droite)
{
  // définition sens moteur LOW avance, HIGH recule
  digitalWrite(direction_moteur_gauche, sens_moteur_gauche);
  analogWrite(controle_moteur_gauche, moteur_gauche);
  digitalWrite(direction_moteur_droite, sens_moteur_droite);
  analogWrite(controle_moteur_droite, moteur_droite);
}


void moteur c'est une fonction qui renvoie rien VOID elle prend comme parametre un int "moteur_gauche" un boolean "sens_moteur_gauche" dont true ou false 1 ou 0 un int "moteur_droite" et un boolean "sens_moteur_droite" true ou false 1 ou 0.
Ensuite
Code: [Select]
digitalWrite(direction_moteur_gauche, sens_moteur_gauche);
 ça écrit 1 ou 0 "sens_moteur_gauche" a "direction_moteur_gauche" qui est le PIN DIGITAL de l'arduino entre 0 et 12

Code: [Select]
analogWrite(controle_moteur_gauche, moteur_gauche); Alors analogwrite ecrit une valeur sur un PIN analogique entre 0 et 1024 donc la tu la "controle_moteur_gauche" c'est le PIN analogique entre A0 et A5 et ensuite "moteur_gauche"  qui et ton int attention la valeur et comprise entre 0 et 1024

Ensuite

Code: [Select]
{
  int i;
  for (i=2;i<=7;i++){
    pinMode(i, OUTPUT);
  }



Ce code est censée être dans la fonction SETUP car il va initialiser tes PIN en SORTIE "OUTPUT " de 2 a 7 et au contraire "INPUT" aurais était en entre donc digitalwrite n'aurais pas marcher , tu comprend ? :)


Dashinox

Bonjour Dashinox alors je vais t'expliquer

Pour
Code: [Select]
void moteur (int moteur_gauche, boolean sens_moteur_gauche, int moteur_droite, boolean sens_moteur_droite)
{
  // définition sens moteur LOW avance, HIGH recule
  digitalWrite(direction_moteur_gauche, sens_moteur_gauche);
  analogWrite(controle_moteur_gauche, moteur_gauche);
  digitalWrite(direction_moteur_droite, sens_moteur_droite);
  analogWrite(controle_moteur_droite, moteur_droite);
}


void moteur c'est une fonction qui renvoie rien VOID elle prend comme parametre un int "moteur_gauche" un boolean "sens_moteur_gauche" dont true ou false 1 ou 0 un int "moteur_droite" et un boolean "sens_moteur_droite" true ou false 1 ou 0.
Ensuite
Code: [Select]
digitalWrite(direction_moteur_gauche, sens_moteur_gauche);
 ça écrit 1 ou 0 "sens_moteur_gauche" a "direction_moteur_gauche" qui est le PIN DIGITAL de l'arduino entre 0 et 12

Code: [Select]
analogWrite(controle_moteur_gauche, moteur_gauche); Alors analogwrite ecrit une valeur sur un PIN analogique entre 0 et 1024 donc la tu la "controle_moteur_gauche" c'est le PIN analogique entre A0 et A5 et ensuite "moteur_gauche"  qui et ton int attention la valeur et comprise entre 0 et 1024

Ensuite

Code: [Select]
{
  int i;
  for (i=2;i<=7;i++){
    pinMode(i, OUTPUT);
  }



Ce code est censée être dans la fonction SETUP car il va initialiser tes PIN en SORTIE "OUTPUT " de 2 a 7 et au contraire "INPUT" aurais était en entre donc digitalwrite n'aurais pas marcher , tu comprend ? :)


Merci beaucoup c'est exactement le genre de réponse que j'attendais ! Je comprend déjà un peu mieux certaines chose ahah

Pour

Code: [Select]

{
  int i;
  for (i=2;i<=7;i++){
    pinMode(i, OUTPUT);
  }



En gros tu me dit que pour utiliser DigitalWrite il faut que mes PIN soit en sortie, si je les aurai mis en entré cela n'aurai pas fonctionner c'est sa ? 

Anthony1012

Oui si tu mai pinMode(i, INPUT) c'est pour la fonction digitalRead donc la lecture et pas l'écriture digitalWrite .
Si tu a des question n'hésite pas !!

Dashinox

Code: [Select]
analogWrite(controle_moteur_gauche, moteur_gauche); Alors analogwrite ecrit une valeur sur un PIN analogique entre 0 et 1024 donc la tu la "controle_moteur_gauche" c'est le PIN analogique entre A0 et A5 et ensuite "moteur_gauche"  qui et ton int attention la valeur et comprise entre 0 et 1024



Je n'utilise pas de pin analogique pour contrôler mon robot ces 2 lignes me sont donc inutiles non ?

Jambe

Code: [Select]
analogWrite(controle_moteur_gauche, moteur_gauche); Alors analogwrite ecrit une valeur sur un PIN analogique entre 0 et 1024 donc la tu la "controle_moteur_gauche" c'est le PIN analogique entre A0 et A5 et ensuite "moteur_gauche"  qui et ton int attention la valeur et comprise entre 0 et 1024
Il y a méprise entre analogRead et analogWrite.

AnalogWrite concerne les pins digitales PWM (soit D3, D5, D6, D9, D10 et D11 sur une UNO) et prend comme argument un "byte" soit une valeur entre 0 et 255.

AnalogRead concerne bien les broches de A0 à A5 et mesure une tension sur 10bits, soit 1024 pas donc une valeur entre 0 et 1023.

infobarquee

un truc qui me fera toujours bondir sur ma chaise en lisant ceci

Quote
Mon projet est plus ou moins terminer seulement voilà au vu de mes oraux qui arrivent très prochainement je ne me sens pas en mesure de bien pouvoir tout expliquer car il est vrai que par exemple il y a certaine fonction dans mon code que je ne serai pas vraiment expliquer donc si quelqu'un aurait l'amabilité de bien pouvoir le faire se serai vraiment sympa !
et voyant le code
Code: [Select]
{
  int i;
  for (i=2;i<=7;i++){
    pinMode(i, OUTPUT);
  }


avec la cerise sur le gateau

Quote
Voici les 2 bouts de code qui me pose le plus de problème je les comprend plus ou moins se qu'il font mais pour l'expliquer face à un jury se serai assez compliquer pour moi donc si vous pouvez me dire de façon assez simple se que chacune des ligne fait sa serai cool !
deux choses :
soit ce n'est pas toi qui a écris le code, quelqu'un te l'as fait
soit tu copie colle des bouts de codes sans comprendre leur utilisation

et un bon conseil pour Dashinox et Anthony1012
le langage SMS est mal vu aussi bien au bac que sur les forums.
surtout que sur un forum, vous avez largement le temps de vous relire, même si des fautes peuvent échapper.
AUCUNE AIDE PAR MP

Dashinox

un truc qui me fera toujours bondir sur ma chaise en lisant ceci

et voyant le code
Code: [Select]
{
  int i;
  for (i=2;i<=7;i++){
    pinMode(i, OUTPUT);
  }


avec la cerise sur le gateau

deux choses :
soit ce n'est pas toi qui a écris le code, quelqu'un te l'as fait
soit tu copie colle des bouts de codes sans comprendre leur utilisation

et un bon conseil pour Dashinox et Anthony1012
le langage SMS est mal vu aussi bien au bac que sur les forums.
surtout que sur un forum, vous avez largement le temps de vous relire, même si des fautes peuvent échapper.

Alors, dans tes 2 suggestions il y a du vrai mais aussi du faux.

Non ce n'est pas moi qui a écris le code et ce n'est pas pour autant que quelqu'un me l'a fait et oui je copie et colle des bouts de codes mais c'est également pas pour autant que je ne comprend pas leur utilisation.
Pour le bac en aucun on nous demande en aucun cas d'écrire un code on nous demande d'en créer un et de le comprendre, nuance.

Et n'associe pas langage SMS à une faute d'orthographes s'il te plait je pense que tu peux avoir une certaine tolérance...

C'est dingue c'est vraiment impossible de demander de l'aide dès que sa à un rapport avec les études à part t'enfoncer encore plus on ne fais rien pour t'aider.


Jambe

oui je copie et colle des bouts de codes mais c'est également pas pour autant que je ne comprend pas leur utilisation.

Permet nous d'en douter, tu nous demande d'expliquer du hyper basique.
Copier coller quelque chose que tu comprends pas, c'est pas de l'apprentissage, c'est de la bêtise.

Pour le bac en aucun on nous demande en aucun cas d'écrire un code on nous demande d'en créer un et de le comprendre, nuance.


Hocus pocus! d'un coup de baguette magique, voici du code? C'est l'idée alors

Dashinox

Permet nous d'en douter, tu nous demande d'expliquer du hyper basique.
Copier coller quelque chose que tu comprends pas, c'est pas de l'apprentissage, c'est de la bêtise.

Mais évidemment que à votre niveau c'est encore plus que hyper basique vous avez toutes les clés pour m'aider si seulement vous en aviez l'envie...

Copier coller quelque chose que tu comprends pas, c'est pas de l'apprentissage, c'est de la bêtise.
C'est absolument pas se que nous à appris notre prof... (En programmation), pour notre niveau en tout cas.

Inutile de répondre si c'est pour continuer la dessus.

Quelqu'un est prêt à répondre à mes questions ? Je suis là pour qu'on m'aide à préparer mon projet pour le bac et le réussir au mieux c'est tout et désolé de ne pas connaître certaines base.

Merci ! 

infobarquee

tu ne te fou pas un peu de nous là?
une recherche de 2s me donne exactement plusieurs codes identiques et tu n'es pas capable de lire les commentaires
30 avril 2013 https://itechnofrance.wordpress.com/2013/04/30/piloter-le-robot-2wd-laide-dune-tlcommande-infrarouge/
Code: [Select]
for (i=4;i<=7;i++)
    pinMode(i, OUTPUT); //définit les port 4 à 7 en sortie


 09 mars 2016 - 09:41 http://www.robot-maker.com/forum/topic/10305-robot-arduino-telecommande-ir-et-detecteur-dobstacle/
Code: [Select]
for (i=4;i<=7;i++)
    pinMode(i, OUTPUT); //définit les port 4 à 7 en sortie


Quote
Copier coller quelque chose que tu comprends pas, c'est pas de l'apprentissage, c'est de la bêtise.
Quote
C'est absolument pas se que nous à appris notre prof... (En programmation), pour notre niveau en tout cas.
En gros, tu es en train de dire que votre prof vous enseigne a pomper sans réfléchir pour passer votre bac?

Donc aider quelqu'un, pas de soucis, on le fait volontier ici, mais ceux qui demandent des explications à quelques jours de l'exam après avoir pomper sans réfléchir, ni essayé une petite recherche sur le net, là ce n'est pas la même paire de manche niveau discours et aide.

Les prochaines questions seront quoi?
A quoi ca correspond ceic?
Code: [Select]
    else if (decode_ir.value == 0x804ED827)
et ceic?
Code: [Select]
reception_ir.resume();
AUCUNE AIDE PAR MP

Go Up