Projet

Général

Profil

Hardware » Historique » Version 31

Baptiste Pelouas, 04/01/2015 16:21

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 31 Baptiste Pelouas
    <blockquote>
41
    ***précision requise*** Horyzontal: ±1mm pour le point scanné. Donc sur le point C.
42
    Or <notextile>10cm < b < 40cm , bmax=40cm.</notextile>
43
    aTan( 0.001/0.40 ) = ±0.1432°
44
    Donc, si on prend une marge, disont facteur 2 soit ±0.5mm pour le point scanné,
45
    la précision angulaire sera aTan( 0.0005/0.40 )= ±0.0716°.
46
    Pour arrondir on prendra <b> ±0.05° </b>
47 16 Baptiste Pelouas
    </blockquote>
48 14 Baptiste Pelouas
49
Solutions possibles:
50
51
* 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é.
52
* 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é.
53
* laser fixe + miroir fixé sur un **<a href="http://en.wikipedia.org/wiki/Voice_coil">VC</a>M** (***Voice Coil Motor***). Les VCM ont beaucoup d'application, la plus basique est le haut-parleur. Mais il y en aussi un dans chaque disque-dur pour positionner la tête de lecture sur le disque ( <ins>en angle</ins> ). Pour ce faire une idée, ce projet: <a href="http://ele-tech.com/html/diy-swing-led-clock-of-creative-design.html">DIY swing LED clock of creative design</a>. Ce n'est pas exactement ce que je cherche puisque le VCM est piloté en tout ou rien. Pour reproduire le système en place dans les disques-durs, il faut asservir le courant dans la bobine (*Coil*) avec une "closed-loop". Ainsi cette dernière peut garder une position fixe selon la **consigne** que l'on injecte dans la "closed-loop".
54 13 Baptiste Pelouas
55
<img src="http://redmine.acolab.fr/attachments/download/58/vcm_ouvert.jpg" title="vcm_ouvert" alt="vcm_ouvert">
56 9 Baptiste Pelouas
57 1 Baptiste Pelouas
L'arduino
58
---------
59 2 Baptiste Pelouas
60
61
La webcam
62
---------
63 9 Baptiste Pelouas
64 18 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">
65 24 Baptiste Pelouas
66 28 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 une PlayStation Eye d'occasion.
67
Ci-dessous la description wikipedia:
68
69 26 Baptiste Pelouas
<div>
70 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>
71 24 Baptiste Pelouas
<p class="legend">PlayStation Eye</p>
72
<table>
73
<caption class="hidden">Données clés</caption>
74
<tbody><tr>
75
<th scope="row">Fabricant</th>
76 25 Baptiste Pelouas
<td><a href="http://fr.wikipedia.org/wiki/Sony_Computer_Entertainment" title="Sony Computer Entertainment">Sony Computer Entertainment</a></td>
77 24 Baptiste Pelouas
</tr>
78
<tr>
79
<th scope="row">Interface</th>
80 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>
81 24 Baptiste Pelouas
</tr>
82
<tr>
83
<th scope="row">Connecteur</th>
84 25 Baptiste Pelouas
<td><a href="http://fr.wikipedia.org/wiki/Universal_Serial_Bus" title="Universal Serial Bus">USB-A</a></td>
85 24 Baptiste Pelouas
</tr>
86
<tr>
87 25 Baptiste Pelouas
<th scope="row">Dimensions (<a href="http://fr.wikipedia.org/wiki/Millim%C3%A8tre" title="Millimètre">mm</a>)</th>
88 24 Baptiste Pelouas
<td>84 × 57 × 67</td>
89
</tr>
90
<tr>
91
<th scope="row">Poids</th>
92 25 Baptiste Pelouas
<td>173 <a href="http://fr.wikipedia.org/wiki/Gramme" title="Gramme">g</a></td>
93 24 Baptiste Pelouas
</tr>
94
<tr>
95
<th scope="row">Résolutions</th>
96 25 Baptiste Pelouas
<td>640×480 <a href="http://fr.wikipedia.org/wiki/Pixel" title="Pixel">pixels</a> en 60 Hz<br>
97
320x240 <a href="http://fr.wikipedia.org/wiki/Pixel" title="Pixel">pixels</a> en 120 Hz</td>
98 24 Baptiste Pelouas
</tr>
99
</tbody></table>
100
</div>
101
102 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>
103
104 30 Baptiste Pelouas
<table frame="VOID" cellspacing="0" cols="8" rules="NONE" border="0">
105
	<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>
106
	<tbody>
107
		<tr>
108
			<td colspan="8" width="662" height="17" align="LEFT"><b>Approximative pixel dimension</b></td>
109
			</tr>
110
		<tr>
111
			<td height="18" align="LEFT"><br></td>
112
			<td align="LEFT"><br></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="LEFT"> field of view ( ° )</td>
114
			<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>
115
			<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>
116
			</tr>
117
		<tr>
118
			<td height="18" align="LEFT"><br></td>
119
			<td align="LEFT"><br></td>
120
			<td align="LEFT"><br></td>
121
			<td align="LEFT"><br></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
			<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>
125
			<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>
126
		</tr>
127
		<tr>
128
			<td height="18" align="LEFT"><br></td>
129
			<td align="LEFT"><br></td>
130
			<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>
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,613861590383168" sdnum="1036;0;0,0000">0,6139</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,460396192787376" sdnum="1036;0;0,0000">0,4604</td>
133
			<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>
134
			<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>
135
		</tr>
136
		<tr>
137
			<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>
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">refresh</td>
139
			<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>
140
			<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>
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
			<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>
144
			<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>
145
		</tr>
146
		<tr>
147
			<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>
148
			<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>
149
			<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>
150
			<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>
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" bgcolor="#FFCC99" sdval="0,0019183174699474" sdnum="1036;0;0,00000">0,00192</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" bgcolor="#FFCC99" sdval="0,0019183174699474" sdnum="1036;0;0,00000">0,00192</td>
153
			<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>
154
			<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>
155
		</tr>
156
		<tr>
157
			<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>
158
			<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>
159
			<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>
160
			<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>
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" sdval="0,0009591587349737" sdnum="1036;0;0,00000">0,00096</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" sdval="0,0009591587349737" sdnum="1036;0;0,00000">0,00096</td>
163
			<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>
164
			<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>
165
		</tr>
166
	</tbody>
167
</table>