Projet

Général

Profil

Hardware » Historique » Version 33

Baptiste Pelouas, 05/01/2015 14:24

1 1 Baptiste Pelouas
Hardware
2
========
3
4
La Platine3D avec tout ses composants matériels.
5
La mécanique, l'électronique mais aussi le code de l'arduino.
6
7
Le plateau
8
----------
9
10 17 Baptiste Pelouas
<img src="http://redmine.acolab.fr/attachments/download/56/iso_schema_plateau.png" height="154" width="319" title="schema rapide plateau" alt="schema rapide plateau">
11 9 Baptiste Pelouas
12 19 Baptiste Pelouas
Diamètre du plateau= 30cm
13
14 3 Baptiste Pelouas
Son entrainement est réalisé par un moteur pas-a-pas (*récupérer dans une imprimante*) via une courroie (démultiplication ~ 1:2).
15 8 Baptiste Pelouas
Le pilotage est réalisé par un double pont en H (*récupérer dans une imprimante*): <a href="http://redmine.acolab.fr/attachments/download/54/DSA-249779.pdf">ha13421 a</a>. Le circuit ne pourra pas faire micro-steping... Il faudra 2 connection sur l'arduino pour le piloter.
16
17
La solution simple pour savoir l'angle de rotation effectif est de "faire confiance" au nombre de pas que l'on demande au moteur puis de le multiplier par la démultlipication de la courroie. Malheureusement, après quelque test, il s'est avéré que mon moteur saute parfois des pas (charge trop lourde ou vitesse trop élevée...
18
19
J'ai donc choisi de mettre en place un système de mesure d'angle directement sur l'arbre du plateau. Mon choix s'est porté sur un codeur incrémental.
20
21
### Le codeur incrémental
22
23
* Il faut un disque codé (*récupérer dans une imprimante sur l'arbre d'entrainement du papier*): il s'agit d'un disque en plastique transparent sur lequel est imprimé a intervalle régulier des traits radiaux (sur le mien 100 marque).
24
* Puis le capteur proprement dit (*tant qu'a faire celui qui été avec le disque sur l'imprimante*): c'est généralement un assemblage d'une LED infrarouge et, en face, de 2 photo-diodes (même principe que des diodes schottky, donc a branché a l'envers par rapport a une LED).
25 3 Baptiste Pelouas
26 1 Baptiste Pelouas
27
Le laser
28
--------
29
30 18 Baptiste Pelouas
<img src="http://redmine.acolab.fr/attachments/download/55/iso_schema_laser.png" height="154" width="319" title="schema rapide laser" alt="schema rapide laser">
31 1 Baptiste Pelouas
32 15 Baptiste Pelouas
### Du laser au laser plan
33
34 14 Baptiste Pelouas
Pour avoir un faisceau laser plan, il un laser (ex: un pointeur laser) puis intercalé une lentille plan (ex: un cilyndre de verre de largeur du faisceau). Ou plus simplement l'acheter tout fait, dans un magasin de bricolage, un niveau de chantier bas de gamme (c.a.d: un laser + une lentille plan + une ou deux bulles) pour a peux près 10 a 15 euros... *(je n'en ai pas trouver dans les rebus électroniques)*
35
36 15 Baptiste Pelouas
### Positionner le faisceau plan
37 1 Baptiste Pelouas
38
BUT: Pouvoir diriger le faisceau laser précisément en angle:
39 24 Baptiste Pelouas
40 32 Baptiste Pelouas
    <blockquote>***précision requise*** Horyzontal: ±1mm pour le point scanné. Donc sur le point C.
41 31 Baptiste Pelouas
    Or <notextile>10cm < b < 40cm , bmax=40cm.</notextile>
42
    aTan( 0.001/0.40 ) = ±0.1432°
43
    Donc, si on prend une marge, disont facteur 2 soit ±0.5mm pour le point scanné,
44
    la précision angulaire sera aTan( 0.0005/0.40 )= ±0.0716°.
45
    Pour arrondir on prendra <b> ±0.05° </b>
46 16 Baptiste Pelouas
    </blockquote>
47 14 Baptiste Pelouas
48
Solutions possibles:
49
50 1 Baptiste Pelouas
* fixer le laser sur l'axe d'un **moteur pas-a-pas**) puis piloter ce dernier. >> simple, mais poids+alimentation+centrage du laser; et précision limité par le moteur>> Non essayé.
51
* laser fixe + miroir en rotation constante et régulière (fixé sur un **spindle motor**). Solution que l'on trouve dans les imprimantes laser avec un miroir polygonal. Le laser fonctionne par impulsion a la fréquence de rotation du **spindle motor** (pour que laser pointe dans une direction fixe). >> compliqué ?; faisceau laser != faisceau laser plan, donc besoin d'une surface de miroir large et haute >> Non essayé.
52 32 Baptiste Pelouas
* laser fixe + miroir fixé sur un **<a href="http://en.wikipedia.org/wiki/Voice_coil">VC</a>M** (***Voice Coil Motor***).>> compliqué mais pécision via pilotage du courant. >> **[[Pilotage VCM]]**
53 14 Baptiste Pelouas
54 1 Baptiste Pelouas
L'arduino
55
---------
56 2 Baptiste Pelouas
57
58
La webcam
59 1 Baptiste Pelouas
---------
60
61 9 Baptiste Pelouas
<img src="http://redmine.acolab.fr/attachments/download/57/iso_schema_webcam.png" height="154" width="319" title="schema rapide webcam" alt="schema rapide webcam">
62 18 Baptiste Pelouas
63 32 Baptiste Pelouas
Dans l'enthousiasme de la découverte du projet GGG, je suis allé acheté la webcam utilisé dans un magasin de jeu vidéo. Il m'en a couté 5 euros pour un "PlayStation Eye" d'occasion.
64
65 28 Baptiste Pelouas
Ci-dessous la description wikipedia:
66
67 26 Baptiste Pelouas
<div>
68 27 Baptiste Pelouas
<div class="images"><a href="//commons.wikimedia.org/wiki/File:PlayStation-Eye.png?uselang=fr" class="image"><img alt="alt=Description de cette image, également commentée ci-après" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/80/PlayStation-Eye.png/220px-PlayStation-Eye.png" width="110" height="114" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/80/PlayStation-Eye.png/330px-PlayStation-Eye.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/80/PlayStation-Eye.png/440px-PlayStation-Eye.png 2x" data-file-width="2320" data-file-height="2400"></a></div>
69 24 Baptiste Pelouas
<p class="legend">PlayStation Eye</p>
70
<table>
71
<caption class="hidden">Données clés</caption>
72
<tbody><tr>
73
<th scope="row">Fabricant</th>
74 25 Baptiste Pelouas
<td><a href="http://fr.wikipedia.org/wiki/Sony_Computer_Entertainment" title="Sony Computer Entertainment">Sony Computer Entertainment</a></td>
75 24 Baptiste Pelouas
</tr>
76
<tr>
77
<th scope="row">Interface</th>
78 25 Baptiste Pelouas
<td><a href="http://fr.wikipedia.org/wiki/Universal_Serial_Bus" title="Universal Serial Bus">USB</a> 2.0<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite_crochet">[</span>1<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite_crochet">[</span>2<span class="cite_crochet">]</span></a></sup></td>
79 24 Baptiste Pelouas
</tr>
80
<tr>
81
<th scope="row">Connecteur</th>
82 25 Baptiste Pelouas
<td><a href="http://fr.wikipedia.org/wiki/Universal_Serial_Bus" title="Universal Serial Bus">USB-A</a></td>
83 24 Baptiste Pelouas
</tr>
84
<tr>
85 25 Baptiste Pelouas
<th scope="row">Dimensions (<a href="http://fr.wikipedia.org/wiki/Millim%C3%A8tre" title="Millimètre">mm</a>)</th>
86 24 Baptiste Pelouas
<td>84 × 57 × 67</td>
87
</tr>
88
<tr>
89
<th scope="row">Poids</th>
90 25 Baptiste Pelouas
<td>173 <a href="http://fr.wikipedia.org/wiki/Gramme" title="Gramme">g</a></td>
91 24 Baptiste Pelouas
</tr>
92
<tr>
93
<th scope="row">Résolutions</th>
94 25 Baptiste Pelouas
<td>640×480 <a href="http://fr.wikipedia.org/wiki/Pixel" title="Pixel">pixels</a> en 60 Hz<br>
95
320x240 <a href="http://fr.wikipedia.org/wiki/Pixel" title="Pixel">pixels</a> en 120 Hz</td>
96 24 Baptiste Pelouas
</tr>
97
</tbody></table>
98
</div>
99
100 29 Baptiste Pelouas
<blockquote>The camera features a two-setting adjustable fixed focus zoom lens. Selected manually by rotating the lens barrel, the PlayStation Eye can be set to a 56° field of view (red dot) similar to that of the EyeToy,[10] for close-up framing in chat applications, or a 75° field of view (blue dot) for long shot framing in interactive physical gaming applications.[1]</blockquote>
101
102 30 Baptiste Pelouas
<table frame="VOID" cellspacing="0" cols="8" rules="NONE" border="0">
103
	<colgroup><col width="104"><col width="57"><col width="56"><col width="56"><col width="98"><col width="98"><col width="98"><col width="98"></colgroup>
104
	<tbody>
105
		<tr>
106
			<td colspan="8" width="662" height="17" align="LEFT"><b>Approximative pixel dimension</b></td>
107
			</tr>
108
		<tr>
109
			<td height="18" align="LEFT"><br></td>
110
			<td align="LEFT"><br></td>
111
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 3px solid #000000" colspan="2" align="LEFT"> field of view ( ° )</td>
112
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 3px solid #000000" colspan="2" align="CENTER" sdval="75" sdnum="1036;"><font face="Times New Roman">75</font></td>
113
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 3px solid #000000" colspan="2" align="CENTER" sdval="56" sdnum="1036;"><font face="Times New Roman">56</font></td>
114
			</tr>
115
		<tr>
116
			<td height="18" align="LEFT"><br></td>
117
			<td align="LEFT"><br></td>
118
			<td align="LEFT"><br></td>
119
			<td align="LEFT"><br></td>
120
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" align="LEFT">width_dim (m)</td>
121
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000" align="LEFT">height_dim (m)</td>
122
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" align="LEFT">width_dim (m)</td>
123
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000" align="LEFT">height_dim (m)</td>
124
		</tr>
125
		<tr>
126
			<td height="18" align="LEFT"><br></td>
127
			<td align="LEFT"><br></td>
128
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" colspan="2" align="LEFT">Object at 40cm</td>
129
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" align="RIGHT" sdval="0,613861590383168" sdnum="1036;0;0,0000">0,6139</td>
130
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000" align="RIGHT" sdval="0,460396192787376" sdnum="1036;0;0,0000">0,4604</td>
131
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" align="RIGHT" sdval="0,425367545329183" sdnum="1036;0;0,0000">0,4254</td>
132
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000" align="RIGHT" sdval="0,319025658996887" sdnum="1036;0;0,0000">0,3190</td>
133
		</tr>
134
		<tr>
135
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" height="18" align="LEFT">résolution</td>
136
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="LEFT">refresh</td>
137
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="LEFT">width</td>
138
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="LEFT">height</td>
139
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" align="LEFT">width_pxl (m)</td>
140
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000" align="LEFT">height_pxl (m)</td>
141
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" align="LEFT">width_pxl (m)</td>
142
			<td style="border-top: 3px solid #000000; border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000" align="LEFT">height_pxl (m)</td>
143
		</tr>
144
		<tr>
145
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" height="17" align="LEFT">320*240</td>
146
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="LEFT">120Hz</td>
147
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="RIGHT" sdval="320" sdnum="1036;">320</td>
148
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="RIGHT" sdval="240" sdnum="1036;">240</td>
149
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" align="RIGHT" bgcolor="#FFCC99" sdval="0,0019183174699474" sdnum="1036;0;0,00000">0,00192</td>
150
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000" align="RIGHT" bgcolor="#FFCC99" sdval="0,0019183174699474" sdnum="1036;0;0,00000">0,00192</td>
151
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" align="RIGHT" sdval="0,0013292735791537" sdnum="1036;0;0,00000">0,00133</td>
152
			<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000" align="RIGHT" sdval="0,0013292735791537" sdnum="1036;0;0,00000">0,00133</td>
153
		</tr>
154
		<tr>
155
			<td style="border-top: 1px solid #000000; border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" height="17" align="LEFT">VGA 640*480</td>
156
			<td style="border-top: 1px solid #000000; border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="LEFT">60Hz</td>
157
			<td style="border-top: 1px solid #000000; border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="RIGHT" sdval="640" sdnum="1036;">640</td>
158
			<td style="border-top: 1px solid #000000; border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" align="RIGHT" sdval="480" sdnum="1036;">480</td>
159
			<td style="border-top: 1px solid #000000; border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" align="RIGHT" sdval="0,0009591587349737" sdnum="1036;0;0,00000">0,00096</td>
160
			<td style="border-top: 1px solid #000000; border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000" align="RIGHT" sdval="0,0009591587349737" sdnum="1036;0;0,00000">0,00096</td>
161
			<td style="border-top: 1px solid #000000; border-bottom: 3px solid #000000; border-left: 3px solid #000000; border-right: 1px solid #000000" align="RIGHT" bgcolor="#CCFF99" sdval="0,000664636789576849" sdnum="1036;0;0,00000">0,00066</td>
162
			<td style="border-top: 1px solid #000000; border-bottom: 3px solid #000000; border-left: 1px solid #000000; border-right: 3px solid #000000" align="RIGHT" bgcolor="#CCFF99" sdval="0,000664636789576849" sdnum="1036;0;0,00000">0,00066</td>
163
		</tr>
164
	</tbody>
165
</table>