Sadržaj:
- Supplies
- Korak 1: Optički koderi
- Korak 2: 3D štampani dijelovi
- Korak 3: Shema ožičenja
- Korak 4: Arduino kod
- Korak 5: Prvo skeniranje
Video: Skener XYZ tačaka pomoću spašenih rotacionih davača: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Nabavivši veliki broj odbačenih rotacijskih optičkih kodera sa svog radnog mjesta, konačno sam odlučio učiniti s njima nešto zabavno/korisno.
Nedavno sam kupio novi 3D štampač za svoj dom i šta bi mu moglo biti kompliment bolje od 3D skenera! Ovaj projekat mi je također pružio savršenu priliku da uposlim svoj 3D štampač za proizvodnju potrebnih dijelova.
Supplies
Optički koderi i odgovarajući optički senzori
Arduino UNO
opcionalni prototipni štit
čelične šipke
pristup 3D štampaču
Korak 1: Optički koderi
Gotovo bilo koji rotacijski koder mogao bi se koristiti za ovaj projekt, pod uvjetom da vam omogući relativno veliki broj "klikova" po mm. Očigledno je da će različiti koderi zahtijevati odgovarajuće rješenje za montažu.
Koristio sam mjerač kontinuiteta da pronađem dijagram ožičenja za foto-senzore.
Korak 2: 3D štampani dijelovi
Ovi dijelovi sadrže rotacijske davače i pružaju klizni okvir za šinu. Kućište pojedinačnog kodera ima dvije rupe na stražnjoj strani na koje se mogu montirati poprečne šine. Dvostruko kućište kodera jednostavno su dva pojedinačna kućišta spojena pod pravim kutom.
Dizajnirao sam ove nosače na fusion360 kako bi odgovarali mom izboru kodera i šina. Vratilo kodera ima kratki komad gumiranog omotača praćke koji mu pomaže da bolje prianja uz vratilo od nehrđajućeg čelika.
Želite da osovina slobodno klizi i da pada kroz kućište ako se drži okomito, ali mora vršiti dovoljan pritisak na davač da ne sklizne. Ono što mi je uspjelo bilo je dopustiti da se klizač vratila preklopi s vratilom kodera za 0,5 mm. Guma za praćku je dovoljno mekana da se za tu količinu deformira i osigura dobro prianjanje.
Korak 3: Shema ožičenja
Krug je vrlo jednostavan. Opto-senzori zahtijevaju određenu struju za diode s IC odašiljačem, uzemljenje i pull-up otpornike za foto-diode.
Odlučio sam se za 5mA za serijske emiterske diode, u ovom koderu pad napona na diodama je 3,65V. Koristim napajanje od 5V iz Arduina, koje ostavlja 1,35 V za otpornik, na 5 mA ovo radi na 270 ohma.
10 k ohma je odabrano za izvlačenje jer foto-diode mogu potopiti samo malu struju, 10 k oma je također korišteno za pritiskanje tipke. Dostupno je dugme za upotrebu na prototipnoj ploči koja je već spojena na masu, samo mu priložite pull-up otpornik i povežite ga sa željenim ulaznim pinom.
Korak 4: Arduino kod
Kodu je potrebno malo objašnjenja jer njegov rad možda nije odmah očit, no ipak ga je trebalo optimizirati na ovaj način da bi mogao dovoljno brzo obraditi 3 kodera.
Prvo želimo samo obraditi podatke o smjeru AKO je došlo do promjene položaja davača.
promjene = nova_vrijednost ^ pohranjena vrijednost;
Da bih dobio veću rezoluciju od svojih kodera, morao sam obraditi i rastuće i padajuće rubove.
Na mojim postavkama moja rezolucija je 24 klika po 1 cm.
Ovo nam ostavlja nekoliko scenarija.
S1 je konstanta 0 i S2 se prebacuje s 0 na 1
S1 je konstanta 0 i S2 se prebacuje s 1 na 0
S1 je konstanta 1 i S2 prebacuje od 0 do 1
S1 je konstanta 1 i S2 prebacuje sa 1 na 0
S2 je konstanta 0 i S1 se prebacuje s 0 na 1
S2 je konstanta 0 i S1 se prebacuje s 1 na 0
S2 je konstanta 1 i S1 prebacuje od 0 do 1
S2 je konstanta 1 i S1 prebacuje sa 1 na 0
Ovi uvjeti su bolje razumljivi u gornjim tablicama istine, a svaki uvjet daje 'smjer', proizvoljno nazvan 0 ili 1.
Grafikoni nam daju dva vitalna traga:
1) jedan grafikon je potpuno inverzan drugom, pa ako ga imamo, možemo lako izračunati drugi jednostavnim preokretanjem izlaza. Invertiramo izlaz samo ako se mijenja jedan pin, a drugi ne, jedan možemo izabrati proizvoljno.
2) sam grafikon je jednostavno XOR signala S1 i S2. (drugi grafikon je NE ovoga).
Sada je razumijevanje koda jednostavno.
// paralelno čitati u PORT -u // zapamtiti susjedni parovi pripadaju istom stanju kodera = PINB & 0x3f; // koji su se pinovi promijenili ako je bilo koji diff = hold ^ stanje; // XOR susjedni S1 i S2 signali za dobijanje tablice istinitosti // najjednostavniji način je napraviti kopiju trenutnog stanja // i pomaknuti ga udesno pomoću jednog pretraživanja bita = stanje >> 1; // sada su bitovi poravnati za XOR dir = lookup ^ stanje; // zapamtite, tablicu je potrebno obrnuti ako je jedan od ulaza ostao konstantan, za to nam ne treba IF // izraz. Trenutno je željeni bit smjera // desni bit svakog para u 'dir' varijabli // lijevi bit je besmislen // varijabla 'diff' ima bit koji je promijenio 'set' // pa imamo ili '01' ili '10' // XOR ovo sa 'dir' bajtom će ili // obrnuti ili ne smisleni bit. dir ^= razlika; // sada ažuriraj varijablu hold hold = state; // ako se bilo koji bit promijenio za ovaj koder if (diff & 0x03) {// odredite smjer if (dir & 0x01) {// na osnovu vašeg hardvera i ožičenja ili ++ ili ---z; } else {++ z; }} // isto za ostale if (diff & 0x0c) {if (dir & 0x04) {++ y; } else {--y; }} if (razlika & 0x30) {if (red & 0x10) {--x; } else {++ x; }}
Kada pritisnete gumb, šaljemo trenutnu vrijednost XYZ u terminalni program.
Serijski podaci su spori, ali tijekom normalnog rada položaji kodera se ionako neće mijenjati za to vrijeme.
Podaci se šalju kao neobrađeni brojevi. Mogli biste izračunati i poslati podatke u mm ili inčima itd. Smatram da su sirove vrijednosti jednako dobre jer kasnije možemo skalirati objekt u softveru.
Korak 5: Prvo skeniranje
Prikupljanje bodova je spor proces, spustio sam sondu u gornji lijevi kut i resetirao Arduino.
Ovo poništava poziciju doma.
Zatim pomaknite sondu na lokaciju na meti, držite je mirno i pritisnite dugme 'snapshot'.
Za ovaj prilično veliki uzorak uzeo sam samo ~ 140 bodova, pa detalji nisu sjajni na konačnom proizvodu.
Spremite podatke u. PCD datoteku i dodajte zaglavlje
#. PCD v.7 - Format datoteke podataka u oblaku tačaka VERZIJA, 7 POLJA x y z VELIČINA 4 4 4 TIP F F F CO COUNT 1 1 1 ŠIRINA (vaš broj bodova) VISOKA 1 VIEWPOINT 0 0 0 1 0 0 0 BODOVA (vaš broj bodova)
Stavite broj bodova u zaglavlje, to je lako za bilo koji uređivač koji vam daje brojeve redova.
Iznad točaka možete vidjeti u freeCad -u, zatim se izvoze iz freeCad -a kao. PLY datoteku.
Otvorite. PLY na MeshLabu i isplovite objekt. Gotovo !!
Preporučuje se:
Upravljajte istosmjernim motorom s modulom optičkog senzora davača FC-03: 7 koraka
Upravljajte istosmjernim motorom s modulom optičkog senzora davača FC-03: U ovom ćemo vodiču naučiti kako brojati prekide optičkog davača pomoću istosmjernog motora, OLED ekrana i Visuina. Pogledajte video
LEGO pojas za osvjetljavanje tačaka: 6 koraka (sa slikama)
LEGO Dots Light-Up pojas: LEGO #LetsBuildZajedno istražite, izgradite i podijelite svoje LEGO kreacije
Štampač sa više tačaka u boji: 6 koraka
Štampač sa više tačaka u boji: Zdravo svima. Ovo uputstvo je o dizajnu i izradi višebojnog štampača. Uglavnom se temelji na sličnom djelu koje je već objavljeno ovdje u uputstvima. Rad na koji se pozivam je „Dotter: Ogromna matrica matrica zasnovana na Arduinu
Zamjena rotacijskog davača ISDT Q6: 4 koraka
Zamjena rotacijskog kodera ISDT Q6: Ovaj vodič služi kako bi pomogao ljudima koji su Q6 koderi s vremenom prešli u sh*t da postanu neupotrebljivi. Moj se počeo pomicati u nasumičnim, neredovnim smjerovima, pa čak i nakon što je preformulirao lemne spojeve i očistio koder alkoholom, to je i dalje bilo neispravno
Kako stvoriti sistem za nadzor neovlaštenih bežičnih pristupnih tačaka: 34 koraka
Kako stvoriti sistem za nadzor neovlaštenih bežičnih pristupnih tačaka: Saludos lectores. El presente instructivo es una gu í a de como desarrollar un system de monitoreo de punntos acceso inal á mbricos no autorizados uselidando una Raspberry PI.Este system fue desarrollado como parte de un trabajo de inv