Création d'une library/bibliothèque [HELP]

Portrait de ZuKii

Bonjours, je suis un étudiant de 17 ans et je vais vous présenter mon probleme pour mon projet de TPE :

Pour mon TPE, moi et mes collègue, nous avons décider de créer un robot qui sort tout seul d'un labyrinthe (En utilisisant la technique de suivre un mur, ici dans notre cas celui de droite). Donc pour la création de mon programme j'ai essayer de faire des library pour que mon programme soit plus claire et j'ai procédé comme ça :

 

 

                                                image_1.png

 

 

 

 

 

 

Puis j'ai fait "nouvelle onglet" et j'ai nommé le ficher en terminant par ".h" et j'ai fait les "include" donc mon voila ce que ca donne pour le début (labibot c'est le nom de mon projet :D) :

 

 

                        image_2.png                     

 

 

 

 

  • Dans "Avancer.h" : j'ai "avancer()"    

  • Dans Detection_Mur.h" : j'ai DetectionMD() et Detection MAV()

  • Dans Rotation.h : j'ai mais deux types de rotation

 

 

Et don voila ma loop :

 

                                           sans_titre.png

 

 

Donc pour finir, une fois que je fais vérifer, Arduino me montre un tas de message d'erreur par exemple:

Avancer.h:6: error: 'MoteurGR' was not declared in this scope

   digitalWrite (MoteurGR,LOW);

Alors qu'il est déclaré au début du programme, donc je ne comprends pas. Est ce que j'ai mal fait mes library et donc dans ce cas quelqu'un peut m'expliquer comment les faire car sur internet j'ai pas touver de tuto que j'ai reussis a comprendre. Ou alors est-ce un autre problème ?

 

Portrait de ZuKii

Désolé pour la forme mais j'ai pas reussi à mettre mieux ,alors que lorsque j'ai ecrit ce message, c'était pas comme ça :(

Portrait de Alex

Il n'y a pas de soucis, j'ai un petit bug dans mon css que j'essaie de résoudre.

Pour ta question: c'est assez subtile la première de créer une librairie conçernant la déclaration des variables.

Je te conseille de bien regarder comment j'ai fais dans mon code pour la voiture et de t'en inspirer.

C'est normal que tu galères un peu la première fois en tout cas, j'ai rencontré le même problème.

Portrait de ZuKii

Le truc, c'est que je me suis inspirer de ta voiture sauf que j'ai fait quelque modification, mais le probleme quand j'ai essayé de créer des bibliothèque (avec des sous-programme à l'interieur) pour rendre mon programme plus propre au lieu de mettre mes sous-programme a la fin. Le probleme c'est qu'il ne trouve pas mes fichier.h que j'ai créer (de la facon dont j'ai expliqué en haut) donc ne trouve pas mes sous programme. Donc la question c'est : Comment créer une bibliothèque afin de mettre mes sous programme comme dans celui de ta voiture ?

Portrait de Alex

Normalement tu as seulement besoin de créer tes fichiers .c et .h et ensuite dans mon fichier qui contient setup() et loop(), tu commences par inclure tes librairies.

Par contre, fais bien attention de toujours bien inclure des librairies dans un ordre cohérent.

Je m'explique: le compilateur d'Arduino va seulement se charger de remplacer le code situé dans tes fichiers .h et .c en début de ton programme. Il faut donc que les variables que ces fichiers utilisent soient déjà déclarées.

J'espère que mon explication est claire.

Portrait de ZuKii

Ok, je pense avoir compris, je teste ça !