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> |