Taula de continguts:
- Subministraments
- Pas 1: els codificadors òptics
- Pas 2: peces impreses en 3D
- Pas 3: Esquema de cablejat
- Pas 4: Codi Arduino
- Pas 5: primer escaneig
Vídeo: Escàner de punts XYZ amb codificadors rotatius recuperats: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Després d’haver adquirit un bon nombre de codificadors òptics rotatius rebutjats del meu lloc de treball, finalment vaig decidir fer alguna cosa divertida / útil amb ells.
Recentment he comprat una nova impressora 3D per a casa meva, i què podria complementar-la millor que un escàner 3D? Aquest projecte també em va proporcionar l'oportunitat perfecta d'utilitzar la meva impressora 3D per fabricar les peces necessàries.
Subministraments
Codificadors òptics i corresponents sensors òptics
Arduino UNO
protecció opcional de prototips
baranes d'acer
accés a una impressora 3D
Pas 1: els codificadors òptics
Es podria utilitzar gairebé qualsevol codificador rotatiu per a aquest projecte, sempre que us proporcionés un nombre relativament elevat de "clics" per mm. Differentbviament, diferents codificadors requeriran una solució de muntatge adequada.
Vaig utilitzar un mesurador de continuïtat per traçar el diagrama de cablejat dels fotosensors.
Pas 2: peces impreses en 3D
Aquestes parts contenen els codificadors rotatius i proporcionen una corredissa per al carril. La carcassa d'un únic codificador té dos orificis a la part posterior per muntar els rails transversals. La carcassa de doble codificador és simplement dues carcasses simples fusionades en angle recte.
Vaig dissenyar aquests muntatges a fusion360 per adaptar-se a la meva elecció de codificadors i rails, l’eix del codificador té una peça curta de funda de goma estirada per ajudar-lo a agafar millor l’eix d’acer inoxidable.
Voleu que l’eix llisqui lliurement i caigui per la carcassa quan es manté vertical, però ha d’exercir prou pressió sobre el codificador per no relliscar. El que em va funcionar va ser permetre que la corredissa de l’eix es superposés amb l’eix del codificador en 0,5 mm. La goma de la fona és prou tova per deformar-se en aquesta quantitat i proporcionar una bona tracció.
Pas 3: Esquema de cablejat
El circuit és molt senzill. Els opto-sensors requereixen una mica de corrent per als díodes emissors d’IR, un sòl i resistències de tracció per als fotodíodes.
Vaig decidir 5 mA per als díodes emissors de la sèrie, en aquest codificador en concret la caiguda de tensió dels díodes és de 3,65 V. Estic fent servir un subministrament de 5 V de l’Arduino, que deixa 1,35 V per a la resistència, a 5 mA, això resulta a 270 ohm.
Es van seleccionar 10 k ohmios per als pull-ups, ja que els fotodíodes només poden enfonsar un petit corrent, i també es van utilitzar 10k ohmis per al botó de pressió. Hi ha un botó disponible per utilitzar-lo a la placa prototip ja connectat a terra, només cal que proporcioneu una resistència de tracció i connecteu-lo al pin d’entrada desitjat.
Pas 4: Codi Arduino
El codi necessita una petita explicació, ja que pot ser que el seu funcionament no sigui immediatament evident, tot i que s’hauria d’optimitzar d’aquesta manera per poder processar 3 codificadors amb la suficient rapidesa.
En primer lloc, només volem processar dades de direcció SI hi ha hagut un canvi en la posició del codificador.
canvis = valor_nou ^ valor emmagatzemat;
Per obtenir més resolució dels codificadors, vaig haver de processar vores ascendents i descendents.
En la meva configuració, la meva resolució és de 24 clics per 1 cm.
Això ens deixa alguns escenaris.
S1 és constant 0 i S2 canvia de 0 a 1
S1 és constant 0 i S2 canvia d’1 a 0
S1 és constant 1 i S2 commuta de 0 a 1
S1 és constant 1 i S2 commuta de 1 a 0
S2 és constant 0 i S1 canvia de 0 a 1
S2 és constant 0 i S1 canvia d’1 a 0
S2 és constant 1 i S1 canvia de 0 a 1
S2 és constant 1 i S1 commuta de 1 a 0
Aquestes condicions s’entenen millor a les taules de veritat anteriors, a més, cada condició dóna una “direcció”, anomenada arbitràriament 0 o 1.
Els gràfics ens donen dues pistes vitals:
1) un gràfic és l’invers complet de l’altre, de manera que si en tenim un, podem calcular l’altre simplement invertint la sortida. Invertim la sortida només si canvia un pin i no l’altre, podem triar-ne un de forma arbitrària.
2) el gràfic en si és simplement el XOR dels senyals S1 i S2. (l'altre gràfic és el NO d'això).
Ara entendre el codi és senzill.
// llegir en PORT en paral·lel // recorda que els parells adjacents pertanyen al mateix estat del codificador = PINB & 0x3f; // quins pins han canviat si hi ha algun estat diff = hold ^; // XOR senyals S1 i S2 adjacents per obtenir la taula de veritat // la manera més ràpida és fer una còpia de l'estat actual // i canviar-la a la dreta per un bit lookup = state >> 1; // ara els bits estan alineats per a l'estat XOR dir = lookup ^; // recordeu, la taula s'ha d'invertir si una // de les entrades es manté constant, no necessitem una sentència IF // per a això. Actualment, el bit de direcció desitjat // és el bit de la dreta de cada parell de la variable 'dir' // el bit de la mà esquerra no té sentit // la variable 'diff' té el bit que ha canviat 'set' // així que o bé tenim '01' o '10' // XOR això amb el byte 'dir' // invertirà o no el bit significatiu. dir ^ = diff; // actualitza ara hold variable hold = state; // si qualsevol bit ha canviat per a aquest codificador if (diff & 0x03) {// determina la direcció if (dir & 0x01) {// segons el vostre hadware i el cablejat ++ o - --z; } else {++ z; }} // idem per a la resta if (diff & 0x0c) {if (dir & 0x04) {++ y; } else {--y; }} if (diff & 0x30) {if (dir & 0x10) {--x; } else {++ x; }}
Quan es prem el botó, enviem el valor XYZ actual a un programa de terminal.
Les dades de sèrie són lentes, però durant el funcionament normal les posicions dels codificadors no canviaran durant aquest temps de totes maneres.
Les dades s’envien com a recomptes sense processar. Podríeu fer les matemàtiques i enviar les dades en mm o polzades, etc. Em sembla que els valors en brut són igual de bons, ja que podem escalar l'objecte més endavant amb el programari.
Pas 5: primer escaneig
La recopilació dels punts és un procés lent, toco la sonda a l'extrem superior esquerre i restableixo l'Arduino.
Això posa a zero la posició com a inici.
A continuació, moveu la sonda a la ubicació de l'objectiu, manteniu-la ferma i premeu el botó "instantània".
Per a aquesta peça de mostra força gran, només vaig agafar aproximadament 140 punts, de manera que els detalls del producte final no són excel·lents.
Deseu les dades en un fitxer. PCD i afegiu la capçalera
#. PCD v.7 - Format de fitxer de dades de núvol de puntsVERSIÓ.7 CAMPS x y z TALLA 4 4 4 TIPUS F F F COMPTE 1 1 1 AMPLADA (recompte de punts) ALÇADA 1 PUNT DE VISTA 0 0 0 1 0 0 0 PUNTS (recompte de punts)
Poseu el recompte de punts a la capçalera, això és fàcil en qualsevol editor que us proporcioni números de línia.
Per sobre dels punts es poden veure a freeCad, i després s’exporten des de freeCad com a fitxer. PLY.
Obriu el fitxer. PLY a MeshLab i cobreix l'objecte. Fet !!
Recomanat:
TR-01 Tester de compressió de motors rotatius de bricolatge: 6 passos (amb imatges)
Provador de compressió de motors rotatius de bricolatge TR-01: a partir del 2009, els TR-01 v1.0, v2.0 i v2.0 Baro originals de TwistedRotors estableixen l’estàndard per als comprovadors de compressió de motors rotatius digitals de mà. I ara ja podeu construir el vostre! Per al 2017, en honor al 50è aniversari de Mazdas Rotary E
El preamplificador PA1 per a bricolatge: construït de manera eficient amb components recuperats: 13 passos
El preamplificador PA1 per a bricolatge: construït de manera eficient amb components recuperats: hi ha molts recursos per construir preamplificadors de tubs a la xarxa i a la impressió, així que vaig pensar que compartiria alguna cosa una mica diferent. Aquest instructable cobreix la construcció d'un preàmping de tub de codi obert del meu disseny i no només és un u
Com utilitzar codificadors industrials amb Arduino: 6 passos
Com s'utilitzen codificadors industrials amb Arduino: els codificadors incrementals s'utilitzen sovint per a aplicacions industrials com la robòtica o el seguiment de posicionament. Els codificadors per a aplicacions industrials inclouen principalment una interfície RS422 diferencial. En aquest petit projecte mostraré com utilitzar un industrial
Com fer un cinema a casa amb altaveus recuperats: 5 passos (amb imatges)
Com fer un cinema a casa amb altaveus recuperats: Hola, nois, en aquest manual d’instruccions us indicaré com he creat un home theater senzill d’alta potència amb altaveus recuperats. És molt senzill de fer, ho explicaré de forma més senzilla. Per obtenir més informació, visiteu Projectes electrònics HubLets
Escàner CT i escàner 3D amb Arduino: 12 passos (amb imatges)
Escàner CT i 3D amb Arduino: la tomografia computada (TC) o la tomografia axial computaritzada (TAC) s’associa amb més freqüència a la imatge del cos perquè permet als clínics veure l’estructura anatòmica del pacient sense haver de fer cap cirurgia. Imatge dins de l'home b