Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2020-03-10T10:21:04+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Bot discord.js heroku / github .JSON , message #2168812020-03-10T10:21:04+01:00adri1/@adri1https://zestedesavoir.com/forums/sujet/13708/bot-discordjs-heroku-github-json/?page=1#p216881<p>Bonjour,</p>
<p>Merci de ne pas <a href="https://zestedesavoir.com/forums/sujet/13703/bot-discordjs-probleme-de-setprefix/">dupliquer tes sujets</a>, cela rend les discussions plus difficiles à suivre et n’est pas très respectueux envers les autres utilisateurs du forum qui attendent aussi que l’on réponde à leurs sujets.</p>
<p>Merci de continuer la discussion sur le premier sujet, je ferme celui-ci.</p>Bot discord.js heroku / github .JSON , message #2168602020-03-09T20:48:47+01:00anonyme/@anonymehttps://zestedesavoir.com/forums/sujet/13708/bot-discordjs-heroku-github-json/?page=1#p216860<p>Hey je relance un sujet j’ai un problème avec heroku / github</p>
<p>Quand je !setprefix nouveau prefix</p>
<p>Le fichier prefixes.json n’est pas modifié donc a chaque fois que le bot redémarre le prefix par défaut se remet une solution ?</p>Bot Discord, message #2157102020-02-15T19:17:50+01:00Amaury/@Amauryhttps://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215710<figure><blockquote>
<figure><blockquote>
<p>Ben tu devrais surtout définir des rôles sur ton serveur discord avec des chan où ce rôle n’a pas le droit d’écrire.</p>
</blockquote><figcaption><a href="https://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215685">Phigger</a></figcaption></figure>
<p>le probléme c’est que j’ai 2 role qui ont acces au même channel (1 avec plus de permission)
donc le role mute ne fonctionne pas genre le role prend le dessus jsp si tu ma compris x)</p>
</blockquote><figcaption><a href="https://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215686">tommy.motais</a></figcaption></figure>
<p>Pour ça il suffit de mettre le rôle <em>Mute</em> au dessus des autres rôles, un peu comme ça. S’il est au dessus, ses permissions explicites vont écraser toutes les permissions des rôles en dessous de lui.</p>
<figure><img src="/media/galleries/5995/f66cdd94-4bd6-42a1-b49a-57c0492e715e.png" alt="Role “Muet” au dessus des rôles qu peuvent avoir les gens qui peuvent avoir le rôle “Muet”, dans la section “Rôles” des paramètres d'un serveur"><figcaption>Role “Muet” au dessus des rôles qu peuvent avoir les gens qui peuvent avoir le rôle “Muet”, dans la section “Rôles” des paramètres d'un serveur</figcaption></figure>Bot Discord, message #2157052020-02-15T15:28:20+01:00Moté/@Mot%C3%A9https://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215705<p>Comme on te l’a déjà dit, tu oeux régler ça nativement avec les rôles, pas besoin de faire un bot. De plus, on est là pour t’aider, pas pour faire le script à ta place, et on ne peut pas dire que tu aies beaucoup essayé. Cependant, si tu veux de l’aide, il va falloir que tu sois précis : que tu énonces ta problématique, que tu expliques ce que tu fais et ce que tu as essayé, que tu montres des exemples de ton code et nous dises clairement les erreurs que tu as eues et les blocages auxquels tu fais face.</p>Bot Discord, message #2156942020-02-15T07:45:03+01:00anonyme/@anonymehttps://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215694<p>Bonjour je n’arrive vraiment pas a le faire je suis désolé xd
Si quelqun aurait le scripts sous les mains </p>Bot Discord, message #2156882020-02-14T23:42:03+01:00anonyme/@anonymehttps://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215688<figure><blockquote>
<p>Je suppose d’après les tags que tu utilises <code>discord.js</code>. Je ne vais pas te donner de solution toute faite, mais je t’invite à consulter sa <a href="https://discord.js.org/#/docs/main/stable/general/welcome">documentation fournie</a>, qui contient des méthodes pour :</p>
<ul>
<li><a href="https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-message">écouter l’envoi d’un message</a> ;</li>
<li><a href="https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=author">récupérer son auteur</a>, puis <a href="https://discord.js.org/#/docs/main/stable/class/User?scrollTo=id">l’identifiant de cet auteur</a> ;</li>
<li>ensuite, la <code>guild</code> (le terme interne pour un “serveur Discord”) permet de récupérer <a href="https://discord.js.org/#/docs/main/stable/class/Guild?scrollTo=roles">la liste des rôles</a>, et pour chaque rôle, <a href="https://discord.js.org/#/docs/main/stable/class/Role?scrollTo=members">la liste de ses membres</a> ;</li>
<li>enfin, un message peut être <a href="https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=delete">supprimé</a>.</li>
</ul>
<p>Avec tout ça, plus le reste de la documentation (notamment les exemples), je te laisse réfléchir à comment faire ce que tu veux <img src="/static/smileys/smile.png" alt=":)" class="smiley"></p>
<p>Cela dit ça ressemble à un problème qui pourrait être corrigé par les permissions natives de Discord.</p>
</blockquote><figcaption><a href="https://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215687">Amaury</a></figcaption></figure>
<p>merci beaucoup <img src="/static/smileys/smile.png" alt=":)" class="smiley"></p>Bot Discord, message #2156872020-02-14T23:35:43+01:00Amaury/@Amauryhttps://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215687<p>Je suppose d’après les tags que tu utilises <code>discord.js</code>. Je ne vais pas te donner de solution toute faite, mais je t’invite à consulter sa <a href="https://discord.js.org/#/docs/main/stable/general/welcome">documentation fournie</a>, qui contient des méthodes pour :</p>
<ul>
<li><a href="https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-message">écouter l’envoi d’un message</a> ;</li>
<li><a href="https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=author">récupérer son auteur</a>, puis <a href="https://discord.js.org/#/docs/main/stable/class/User?scrollTo=id">l’identifiant de cet auteur</a> ;</li>
<li>ensuite, la <code>guild</code> (le terme interne pour un “serveur Discord”) permet de récupérer <a href="https://discord.js.org/#/docs/main/stable/class/Guild?scrollTo=roles">la liste des rôles</a>, et pour chaque rôle, <a href="https://discord.js.org/#/docs/main/stable/class/Role?scrollTo=members">la liste de ses membres</a> ;</li>
<li>enfin, un message peut être <a href="https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=delete">supprimé</a>.</li>
</ul>
<p>Avec tout ça, plus le reste de la documentation (notamment les exemples), je te laisse réfléchir à comment faire ce que tu veux <img src="/static/smileys/smile.png" alt=":)" class="smiley"></p>
<p>Cela dit ça ressemble à un problème qui pourrait être corrigé par les permissions natives de Discord.</p>Bot Discord, message #2156862020-02-14T23:29:32+01:00anonyme/@anonymehttps://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215686<figure><blockquote>
<p>Ben tu devrais surtout définir des rôles sur ton serveur discord avec des chan où ce rôle n’a pas le droit d’écrire.</p>
</blockquote><figcaption><a href="https://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215685">Phigger</a></figcaption></figure>
<p>le probléme c’est que j’ai 2 role qui ont acces au même channel (1 avec plus de permission)
donc le role mute ne fonctionne pas genre le role prend le dessus jsp si tu ma compris x)</p>Bot Discord, message #2156852020-02-14T23:26:10+01:00Moté/@Mot%C3%A9https://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215685<p>Ben tu devrais surtout définir des rôles sur ton serveur discord avec des chan où ce rôle n’a pas le droit d’écrire.</p>Bot Discord, message #2156842020-02-14T23:07:31+01:00anonyme/@anonymehttps://zestedesavoir.com/forums/sujet/13626/bot-discord/?page=1#p215684<p>Bonjours, bonsoir </p>
<p>Je viens de commencée mon premier projet de développement et je créer un bot discord
J’aurais besoin d’aide sur un point
Comment peut-on a chaque message regarde le message de l’utilisateur est si il a un certaint role (mute) supprime son message ? si quelqun pourrait m’aide merci bcp <img src="/static/smileys/smile.png" alt=":)" class="smiley"></p>Plusieurs fichiers avec discord.py, message #1766882018-03-30T12:21:26+02:00Eragon/@Eragonhttps://zestedesavoir.com/forums/sujet/10480/plusieurs-fichiers-avec-discordpy/?page=1#p176688<p>Ce que je ne sait pas faire surtout et que je ne comprend pas c’est comment créer un fonction qui se lance lors de l’appel/import d’un fichier en python.</p>Plusieurs fichiers avec discord.py, message #1766772018-03-30T09:40:36+02:00Ge0/@Ge0https://zestedesavoir.com/forums/sujet/10480/plusieurs-fichiers-avec-discordpy/?page=1#p176677<figure>
<blockquote>
<p>Ayant cherché je suis déjà tombé sur ton bot mais je n’ai rien compris de son fonctionnement.</p>
<p>Il me faudrait donc créer une fonction qui soit appelé lors du chargement du fichier, dans <code>commands/admin.py</code> et dans <code>commands/fun.py</code>?</p>
</blockquote>
<figcaption><a href="https://zestedesavoir.com/forumssujet/10480/plusieurs-fichiers-avec-discordpy/?page=1#p176557">Eragon</a></figcaption>
</figure>
<p>J’ai de la doc a écrire en effet… Tu m’en vois navré.</p>
<p>Je suis actuellement peu disponible mais si tu as suffisamment de patience je pourrai te parler plus en détail de la logique du bot. Je compte même le refacto car sa configuration est juste infâme.</p>
<p>Et pour quelqu’un qui ne sait que très peu de choses en python, je te concède que mon code abjecte puisse être déroutant.</p>Plusieurs fichiers avec discord.py, message #1765642018-03-28T17:28:36+02:00Eragon/@Eragonhttps://zestedesavoir.com/forums/sujet/10480/plusieurs-fichiers-avec-discordpy/?page=1#p176564<p>Le grand problème que j’ai est que je n’ai pas une commande par fichier mais une catégorie de commande, et je ne vois pas comment créer une fonction <code>load</code> dans mes fichiers.</p>Plusieurs fichiers avec discord.py, message #1765572018-03-28T16:40:38+02:00Eragon/@Eragonhttps://zestedesavoir.com/forums/sujet/10480/plusieurs-fichiers-avec-discordpy/?page=1#p176557<p>Ayant cherché je suis déjà tombé sur ton bot mais je n’ai rien compris de son fonctionnement.</p>
<p>Il me faudrait donc créer une fonction qui soit appelé lors du chargement du fichier, dans <code>commands/admin.py</code> et dans <code>commands/fun.py</code>?</p>Plusieurs fichiers avec discord.py, message #1765552018-03-28T16:30:59+02:00Ge0/@Ge0https://zestedesavoir.com/forums/sujet/10480/plusieurs-fichiers-avec-discordpy/?page=1#p176555<p>Salut Eragon,</p>
<p>Tout d’abord je vais me permettre un peu de pub <img alt=":D" src="/static/smileys/heureux.png"> : <a href="https://github.com/cacophony-discord/cacophony">https://github.com/cacophony-discord/cacophony</a></p>
<p>Pour faire en sorte qu’une commande soit séparée dans un fichier, j’ai utilisé un pattern particulier (qu’il faut que je refactore un peu à l’occasion, mais là n’est pas la question).</p>
<p>J’ai un sous-module "commands" dans mon bot : <a href="https://github.com/cacophony-discord/cacophony/tree/master/src/cacophony/commands">https://github.com/cacophony-discord/cacophony/tree/master/src/cacophony/commands</a></p>
<p>Tu verras que pour chaque fichier, il y est défini une fonction <code>load</code> qui retourne un tuple avec le nom de la commande ainsi que la coroutine responsable de la gestion de la commande.</p>
<p>Et en fonction de la configuration de mon bot (qui est, il faut le dire, un vrai merdier), je charge le fichier en questions dans le sous-module <code>commands</code> et appelle <code>load</code> :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7
8</pre></div></td><td class="code"><div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">_load_extra_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">server_id</span><span class="p">,</span> <span class="n">extra_commands</span><span class="p">):</span>
<span class="sd">"""Load extra commands."""</span>
<span class="k">for</span> <span class="n">command</span><span class="p">,</span> <span class="n">config</span> <span class="ow">in</span> <span class="n">extra_commands</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="bp">self</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Will load </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">command</span><span class="p">)</span>
<span class="n">module</span> <span class="o">=</span> <span class="n">importlib</span><span class="o">.</span><span class="n">import_module</span><span class="p">(</span><span class="s2">".commands.{}"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">command</span><span class="p">),</span>
<span class="n">package</span><span class="o">=</span><span class="s2">"cacophony"</span><span class="p">)</span>
<span class="n">command</span><span class="p">,</span> <span class="n">function</span> <span class="o">=</span> <span class="n">module</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">callbacks</span><span class="p">[(</span><span class="n">command</span><span class="p">,</span> <span class="n">server_id</span><span class="p">)]</span> <span class="o">=</span> <span class="n">function</span>
</pre></div>
</td></tr></table></div>
<p>C’est une piste parmi d’autres. Je réfléchis à mes heures perdues à une meilleure archi et à un code plus découplé. Parfois les projets persos manquent cruellement de design et il devient difficile de dev par-dessus ou d’impliquer d’autres devs…</p>Plusieurs fichiers avec discord.py, message #1765482018-03-28T15:32:29+02:00Eragon/@Eragonhttps://zestedesavoir.com/forums/sujet/10480/plusieurs-fichiers-avec-discordpy/?page=1#p176548<p>Bonjour, je suis actuellement en train de créer un bot pour mon serveur discord.<br>
Ce bot est codé en python3 avec discord.py, j’aimerais séparer mon code en plusieurs fichier de façon à le rendre plus propre mais je n’arrive pas à utiliser les commandes étant situé dans d’autres fichiers que le fichier principal.<br>
J’utilise un venv, je suis sous ArchLinux donc pour les commandes de shell(bash, sh, fish …) n’ayez pas peur de m’en donner pour avoir plus d’informations sur mon code et les éventuelles erreurs que j’ai. </p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>.
├── autostart.sh
├── commands
│ ├── admin.py
│ ├── fun.py
│ └── __pycache__
│ ├── admin.cpython-36.pyc
│ └── fun.cpython-36.pyc
├── discord.log
├── erabot.py
├── herobrine.py
├── main.py
└── requirements.txt
2 directories, 10 files
</pre></div>
</td></tr></table></div>
<p>Le fichier <code>requirements.txt</code> est vide, les fichier <code>erabot.py</code> et <code>herobrine.py</code> sont deux fichier de démarrage différents, l’un n’utilise pas plusieurs fichiers et l’autre utilise <code>commands/admin.py</code> et <code>commands/fun.py</code>.<br>
<code>main.py</code> est vide et n’est pas encore utilisé. </p>
<p><code>erabot.py</code> est le fichier qui doit en importer plusieurs pour fonctionner, voici son code.</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="ch">#!/usr/bin/env python</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="kn">import</span> <span class="nn">asyncio</span>
<span class="kn">import</span> <span class="nn">discord</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">from</span> <span class="nn">commands.admin</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="nn">commands.fun</span> <span class="kn">import</span> <span class="o">*</span>
<span class="c1"># Logs</span>
<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s1">'discord'</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span>
<span class="n">handler</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">FileHandler</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="s1">'discord.log'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">'w'</span><span class="p">)</span>
<span class="n">handler</span><span class="o">.</span><span class="n">setFormatter</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">(</span><span class="s1">'</span><span class="si">%(asctime)s</span><span class="s1">:</span><span class="si">%(levelname)s</span><span class="s1">:</span><span class="si">%(name)s</span><span class="s1">: </span><span class="si">%(message)s</span><span class="s1">'</span><span class="p">))</span>
<span class="n">logger</span><span class="o">.</span><span class="n">addHandler</span><span class="p">(</span><span class="n">handler</span><span class="p">)</span>
<span class="n">client</span> <span class="o">=</span> <span class="n">discord</span><span class="o">.</span><span class="n">Client</span><span class="p">()</span>
<span class="nd">@client.event</span>
<span class="n">async</span> <span class="k">def</span> <span class="nf">on_ready</span><span class="p">():</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'Connecté en tant que:'</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">client</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">client</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">id</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'En cours d</span><span class="se">\'</span><span class="s1">éxecution.'</span><span class="p">)</span>
<span class="n">client</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="s1">'Token'</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>
<p>J’ai remplacé le token par <code>Token</code></p>
<p>Soyez indulgent je ne sait que très peu de choses en python, et je débute avec discord.py.</p>Robot arduino problème, message #1418362017-02-20T15:18:30+01:00LudoBike/@LudoBikehttps://zestedesavoir.com/forums/sujet/8028/robot-arduino-probleme/?page=1#p141836<p>Salut et bienvenu(e) ! </p>
<p>C’est bien d’avoir mis ton code dans un bloc de code, mais tu peux aussi activer la coloration syntaxique en spécifiant le langage que tu utilise après les back-quotes (```arduino dans ton message) cela aidera les autres agrumes à te lire et donc t’aider <img alt=";)" src="/static/smileys/clin.png"></p>
<p>De plus tu indente trop ton code, tu n’as pas besoin de mettre de tabulation après un commentaire et je pense que ton code sera plus lisible si tu les omettrais.</p>Robot arduino problème, message #1418252017-02-20T14:07:55+01:00µston/@%C2%B5stonhttps://zestedesavoir.com/forums/sujet/8028/robot-arduino-probleme/?page=1#p141825<p>Bonjour à tous,
j’ai récemment programmer un petit robot à l’aide d’une carte arduino, d’un shield moteurs officiel, d’un capteur a ultrasons, de deux moteurs etc…
J’ai réussi à le rendre totalement autonomes mais j’ai par la suite voulu ajouter un moyen de le commander à l’aide d’une petite radiocommande et d’un récepteurIR. Cependant, j’ai revu mon programme dans tout les sens mais rien à faire, lorsque l’instruction "irrecv.enableIRIn();" apparait dans mon programme, les moteurs refusent de fonctionner (en revanche le reste telles que les leds répondent bien aux différentes instructions). Il me suffit d’enlever cette instruction pour que tout qu’ils acceptent de refonctionner mais bien sur elle m’est nécessaire pour utiliser la radiocommande…
Voici mon programme:</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>//Radiocommande:
#include <IRremote.h>
int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;
//Capteur HC-SR04: ( VCC=5v; GND=GND; Echo=7; Trig=6)
#define echoPin 7 // Echo Pin
#define trigPin 6 // Trigger Pin
int maximumRange = 150; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration, distance; // Durée que l'on utilise pour calculer la distance
void setup()
{
//Affichage sur l'ordinateur:
Serial.begin(9600);
//Radiocommande:
irrecv.enableIRIn(); // Active le récepteur IR Bloque le fonctionnement des moteur!!!!!!!!!!
//LED:
pinMode(2,OUTPUT); //Led rouge qui brillera quand distance <= 15 cm
pinMode(4,OUTPUT); //Led verte qui brillera quand ça avance
//Capteur HC-SR04:
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
//Moteur A:
pinMode(9, OUTPUT);
pinMode(12, OUTPUT);
//Moteur B:
pinMode(13, OUTPUT);
pinMode(8, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) { //Si on appui sur un bouton
Serial.println(results.value, HEX); //Affiche la valeur en hexadécimal du bouton pressé
if (results.value==0xFFE21D){ //Si le bouton pressé est celui CH+
//Robot mit en fonctionnement automatique
//LEDS:
digitalWrite(4,HIGH); //LED verte allumée en temps normal
digitalWrite(2,LOW); //LED rouge éteinte en temps normal
//Motor A:
digitalWrite(12, LOW); //Direction (Forward ici)
digitalWrite(9, LOW); //Frein (Disengage ici)
analogWrite(3, 120); //Valeur pour vitesse
//Motor B:
digitalWrite(13, LOW); //Direction (Forward ici)
digitalWrite(8, LOW); //Frein (Disengage ici)
analogWrite(11, 117); //Valeur pour vitesse
//Capteur HC-SR04:
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration/58.2; //Calcul de la distance en cm à l'aide de la vitesse du song
if (distance >= maximumRange || distance <= minimumRange){
Serial.println("-"); //"-" s'affiche à l'écran de l'ordinateur lorsque le capteur HC-SR04 ne détecte pas la distance ou que celle-ci est hors de l'intervalle de tolérance
}
else { //La distance est correctement mesurée par le capteur
Serial.println(distance); //La distance est affiché en cm à l'écran de l'ordinateur
if (distance <=15){
//LEDS:
digitalWrite(2,HIGH); //Allume la LED rouge
digitalWrite(4,LOW); //Eteint la LED verte
//Moteurs qui s'arrêtent (avant de changer le sens de rotation pour ne pas les endommager):
digitalWrite(9, HIGH); //Frein du moteur A (engaged ici)
digitalWrite(8, HIGH); //Frein du moteur B (engaged ici)
delay(350); //Temps d'arrêt
//Recul:
digitalWrite(12, HIGH); //Direction A (Backward ici)
digitalWrite(9, LOW); //Frein A (Disengage ici)
analogWrite(3, 100); //Valeur A pour vitesse
digitalWrite(13, HIGH); //Direction B (Backward ici)
digitalWrite(8, LOW); //Frein B (Disengage ici)
analogWrite(11, 100); //Valeur A pour vitesse
digitalWrite(2,HIGH); //Allume la LED rouge
delay(500); //Temps de recule
//Moteurs qui s'arrêtent (avant de changer le sens de rotation pour ne pas les endommager):
digitalWrite(9, HIGH); //Frein du moteur A (engaged ici)
digitalWrite(8, HIGH); //Frein du moteur B (engaged ici)
digitalWrite(2,HIGH); //Allume la LED rouge
delay(300); //Temps d'arrêt
//Rotation:
digitalWrite(12, LOW); //Direction A (Forward ici)
digitalWrite(9, LOW); //Frein A (disengage ici)
analogWrite(3, 100); //Valeur A pour vitesse
digitalWrite(13, HIGH); //Direction B (Forward ici)
digitalWrite(8, LOW); //Frein B (disengage ici)
analogWrite(11, 100); //Valeur B pour vitesse
digitalWrite(2,HIGH); //Allume la LED rouge
delay(300); //Temps de la rotation
//LEDS:
digitalWrite(2,LOW); //Allume la LED rouge
digitalWrite(4,HIGH); //Eteint la LED verte
}
else{ //Dans le cas où la distance mesurée est suffisamment grande pour continuer d'avancer
//Ne change pas les instructions intiales données en premier
}
}
delay(70); //Temps avant une nouvelle acquisition de la distance (Une faible valeur permet de meilleur résultats, ie moins d'obstacle pris dans la gueule
}
if (results.value==0xFFC23D){ //Si la touche play/stop est pressée
//Robot en stand-by:
//LEDS:
digitalWrite(4,LOW); //LED verte éteinte
digitalWrite(2,HIGH); //LED rouge allumé
//Freins activés:
digitalWrite(9, HIGH); //Frein A (Engaged ici)
digitalWrite(8, HIGH); //Frein B (Engaged ici)
}
if (results.value==0xFFA25D){ //Si la touche CH- est pressée
//Robot en mode manuel:
//LEDS:
digitalWrite(4,HIGH); //LED verte allumée en temps normal
digitalWrite(2,LOW); //LED rouge éteinte en temps normal
//Freins activés:
digitalWrite(9, HIGH); //Frein A (Engaged ici)
digitalWrite(8, HIGH); //Frein B (Engaged ici)
//Commandes permmettant le pilotage:
if (results.value==0xFF18E7){ //Si la touche 2 est pressée
//Marche avant:
digitalWrite(9, HIGH); //Frein A (Engaged ici)
digitalWrite(8, HIGH); //Frein B (Engaged ici)
delay(400); //Temps d'arrêt pour les moteurs
digitalWrite(12, LOW); //Direction A (Forward ici)
digitalWrite(9, LOW); //Frein A (Disengage ici)
analogWrite(3, 120); //Valeur A pour vitesse
digitalWrite(13, LOW); //Direction A (Forward ici)
digitalWrite(8, LOW); //Frein A (Disengage ici)
analogWrite(11, 117); //Valeur A pour vitesse
}
if (results.value==0xFF38C7){ //Si la touche 5 est pressée
//Marche arrière:
digitalWrite(9, HIGH); //Frein A (Engaged ici)
digitalWrite(8, HIGH); //Frein B (Engaged ici)
delay(400); //Temps d'arrêt pour les moteurs
digitalWrite(12, HIGH); //Direction A (Backward ici)
digitalWrite(9, LOW); //Frein A (Disengage ici)
analogWrite(3, 120); //Valeur A pour vitesse
digitalWrite(13, HIGH); //Direction B (Backward ici)
digitalWrite(8, LOW); //Frein B (Disengage ici)
analogWrite(11, 117); //Valeur B pour vitesse
}
if (results.value==0xFF10EF){ //Si la touche 4 est pressée
//Virage à gauche:
digitalWrite(9, HIGH); //Frein A (Engaged ici)
digitalWrite(8, HIGH); //Frein B (Engaged ici)
delay(400); //Temps d'arrêt pour les moteurs
digitalWrite(12, LOW); //Direction A (Forward ici)
digitalWrite(9, LOW); //Frein A (Disengage ici)
analogWrite(3, 120); //Valeur A pour vitesse
digitalWrite(13, HIGH); //Direction B (Backward ici)
digitalWrite(8, LOW); //Frein B (Disengage ici)
analogWrite(11, 117); //Valeur B pour vitesse
}
if (results.value==0xFF5AA5){ //Si la touche 6 est pressée
//Virage à droite:
digitalWrite(9, HIGH); //Frein A (Engaged ici)
digitalWrite(8, HIGH); //Frein B (Engaged ici)
delay(400); //Temps d'arrêt pour les moteurs
digitalWrite(12, HIGH); //Direction A (Backward ici)
digitalWrite(9, LOW); //Frein A (Disengage ici)
analogWrite(3, 120); //Valeur A pour vitesse
digitalWrite(13, LOW); //Direction B (Forward ici)
digitalWrite(8, LOW); //Frein B (Disengage ici)
analogWrite(11, 117); //Valeur B pour vitesse
}
}
irrecv.resume(); // Receive the next value
}
}
</pre></div>
</td></tr></table></div>
<p>D’avance merci pour votre aide! <img alt=":)" src="/static/smileys/smile.png"></p>Crée un Hexapod Arduino, message #790092015-10-23T22:02:39+02:00Eskimon/@Eskimonhttps://zestedesavoir.com/forums/sujet/4334/cree-un-hexapod-arduino/?page=2#p79009<figure><blockquote>
<p>Fait attention à ne pas passer trop de temps sur le site lui même <img alt=":)" src="/static/smileys/smile.png"></p>
<p>Bonne chance pour ton projet !
</p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/4334/cree-un-hexapod-arduino/?page=2#p79008">Milael</a></p></figcaption></figure><p><img alt=":D" src="/static/smileys/heureux.png"> je me suis fait exactement la même reflexion : "Dans votre projet le site est un outil, pas une finalité"</p>Crée un Hexapod Arduino, message #790082015-10-23T21:59:14+02:00Milael/@Milaelhttps://zestedesavoir.com/forums/sujet/4334/cree-un-hexapod-arduino/?page=2#p79008<p>Fait attention à ne pas passer trop de temps sur le site lui même <img alt=":)" src="/static/smileys/smile.png"></p>
<p>Bonne chance pour ton projet !</p>Crée un Hexapod Arduino, message #787562015-10-21T23:32:16+02:00philotronic/@philotronichttps://zestedesavoir.com/forums/sujet/4334/cree-un-hexapod-arduino/?page=2#p78756<p>C'est exactement ce que j'avais pensés faire haha !
J'aimerais bien que des personnes me conseils pour les moteurs, car je sait pas quoi prendre ( le meilleur qualité prix svp !! )</p>