Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Ang Mga Optical Encoder
- Hakbang 2: Mga Naka-print na Bahaging 3D
- Hakbang 3: Diagram ng Mga Kable
- Hakbang 4: Arduino Code
- Hakbang 5: Unang Pag-scan
Video: XYZ Point Scanner Gamit ang Salvaged Rotary Encoder: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Ang pagkakaroon ng nakuha ng isang malaking bilang ng mga itinapon na umiinog na mga encoder ng optikal mula sa aking lugar ng trabaho, sa wakas ay nagpasya akong gumawa ng isang bagay na masaya / kapaki-pakinabang sa kanila.
Kamakailan ay bumili ako ng isang bagong 3D printer para sa aking tahanan at kung ano ang maaaring papuri nito nang mas mahusay kaysa sa isang 3D scanner! Ang proyektong ito ay nagbigay din sa akin ng perpektong pagkakataon na gamitin ang aking 3D printer upang makagawa ng mga kinakailangang bahagi.
Mga gamit
Mga optikong encoder at kaukulang optikong sensor
Arduino UNO
opsyonal na prototyping na kalasag
riles ng bakal-bar
pag-access sa isang 3D printer
Hakbang 1: Ang Mga Optical Encoder
Halos anumang rotary encoder ay maaaring magamit para sa proyektong ito, hangga't binigyan ka nito ng isang medyo mataas na bilang ng mga 'pag-click' bawat mm. Malinaw na ang iba't ibang mga encoder ay mangangailangan ng angkop na solusyon sa pag-mount.
Gumamit ako ng isang meter ng pagpapatuloy upang masubaybayan ang diagram ng mga kable para sa mga sensor ng larawan.
Hakbang 2: Mga Naka-print na Bahaging 3D
Ang mga bahaging ito ay nakalagay ang rotary encoder at nagbibigay ng slide para sa riles. Ang solong pabahay ng encoder ay may dalawang butas sa likod para sa mga daang-bakal na naka-mount sa. Ang dalawahang encoder na pabahay ay simpleng dalawang solong pabahay na pinagtagpo sa tamang mga anggulo.
Dinisenyo ko ang mga pag-mount na ito sa fusion360 upang umangkop sa aking pagpipilian ng mga encoder at daang-bakal, ang poste ng encoder ay may isang maikling piraso ng lambanog ng goma na tirador, upang matulungan itong mahawakan nang mas mahusay ang shaft na hindi kinakalawang na asero.
Nais mo na ang baras ay malayang mag-slide at mahulog sa pamamagitan ng pabahay kapag hinawakan nang patayo, ngunit dapat itong bigyan ng sapat na presyon sa encoder upang hindi madulas. Ang nagtrabaho para sa akin ay payagan ang slide para sa baras na magkakapatong sa encoder shaft ng 0.5mm. Ang slingshot rubber ay sapat na malambot upang mabago ang halaga sa pamamagitan ng halagang iyon at magbigay ng mahusay na lakas.
Hakbang 3: Diagram ng Mga Kable
Napaka-simple ng circuit. Ang mga opto-sensor ay nangangailangan ng ilang kasalukuyang para sa IR emitter diode, isang ground at pull-up resistors para sa mga photo-diode.
Nagpasya ako sa 5mA para sa mga in-series emitter diode, sa partikular na encoder na ito ng boltahe na bumaba sa mga diode ay 3.65V. Gumagamit ako ng isang 5V na supply mula sa Arduino, na nag-iiwan ng 1.35V para sa risistor, sa 5mA gumagana ito upang maging 270 ohm.
Ang 10k ohm ay napili para sa mga pull-up dahil ang mga photo-diode ay maaari lamang lumubog ng isang maliit na kasalukuyang, 10k ohm ay ginamit din para sa pindutan ng push. Mayroong isang pindutan na magagamit para magamit sa prototype board na konektado sa lupa, bigyan lamang ito ng isang pull-up risistor at i-wire ito sa nais na pin na input.
Hakbang 4: Arduino Code
Ang code ay nangangailangan ng kaunting paliwanag dahil ang operasyon nito ay maaaring hindi kaagad halata, subalit kailangang ma-optimize sa ganitong paraan upang maiproseso nang mabilis ang 3 encoder.
Una gusto lamang namin iproseso ang data ng direksyon KUNG nagkaroon ng pagbabago sa posisyon ng encoder.
mga pagbabago = new_value ^ nakaimbak na halaga;
Upang makakuha ng karagdagang resolusyon mula sa aking mga encoder kailangan kong iproseso ang parehong tumataas at bumabagsak na mga gilid.
Sa aking pag-set up ang aking resolusyon ay 24 na pag-click bawat 1cm.
Nag-iiwan ito sa amin ng ilang mga sitwasyon.
Ang S1 ay pare-pareho 0 at ang S2 ay nagpalipat-lipat mula 0 hanggang 1
Ang S1 ay pare-pareho 0 at ang S2 ay nagpalipat-lipat mula 1 hanggang 0
Ang S1 ay pare-pareho ang 1 at S2 na toggle mula 0 hanggang 1
Ang S1 ay pare-pareho ang 1 at S2 na toggle mula 1 hanggang 0
Ang S2 ay pare-pareho 0 at ang S1 ay na-toggle mula 0 hanggang 1
Ang S2 ay pare-pareho 0 at ang S1 ay na-toggle mula 1 hanggang 0
Ang S2 ay pare-pareho ang 1 at S1 na toggle mula 0 hanggang 1
Ang S2 ay pare-pareho ang 1 at S1 na toggle mula 1 hanggang 0
Ang mga kundisyong ito ay mas nauunawaan sa mga talahanayan ng katotohanan sa itaas, din ang bawat kundisyon ay magbubunga ng isang 'direksyon', na arbitraryong pinangalanang 0 o 1.
Binibigyan kami ng mga tsart ng dalawang mahahalagang pahiwatig:
1) ang isang tsart ay ang kumpletong kabaligtaran ng iba pa, kaya't kung mayroon tayong isa, madali nating makalkula ang iba pa sa pamamagitan lamang ng pagbaligtad ng output. Ibabaliktad lamang namin ang output kung ang isang pin ay nagbabago at hindi ang isa, maaari kaming pumili ng isang arbitraryo.
2) ang tsart mismo ay simpleng XOR ng mga S1 at S2 signal. (ang iba pang tsart ay HINDI sa mga ito).
Ngayon ang pag-unawa sa code ay simple.
// read in PORT in parallel // tandaan ang mga katabing pares na kabilang sa parehong estado ng encoder = PINB & 0x3f; // anong pin ang nagbago kung may diff = hold ^ state; // XOR katabi ng S1 at S2 na mga signal upang makakuha ng talahanayan ng katotohanan // pinakamasayang paraan ay upang makagawa ng isang kopya ng kasalukuyang estado // at ilipat ito sa kanan sa pamamagitan ng isang bit na pagtingin = estado >> 1; // now bits are align for XOR dir = lookup ^ state; // tandaan, ang talahanayan ay kailangang baligtarin kung ang isa // sa mga input ay nanatiling pare-pareho, hindi namin kailangan ng isang pahayag na IF // para dito. Sa kasalukuyan ang nais na direksyon bit // ay ang kanang kamay na bit ng bawat pares sa variable na 'dir' // walang kahulugan ang kaliwang kamay // ang variable na 'diff' ay may bit na nagbago ng 'set' // kaya't mayroon kaming alinman Ang '01' o '10' // XOR na ito sa pamamagitan ng 'dir' byte ay alinman sa // baligtarin o hindi ang makahulugang kaunting. dir ^ = naiiba; // now update hold variable hold = state; // kung alinman sa bit ay nagbago para sa encoder na ito kung (diff & 0x03) {// matukoy ang direksyon kung (dir & 0x01) {// batay sa iyong hadware at mga kable alinman sa ++ o - --z; } iba pa {++ z; }} // ditto para sa natitira kung (diff & 0x0c) {kung (dir & 0x04) {++ y; } iba pa {--y; }} kung (diff & 0x30) {kung (dir & 0x10) {--x; } iba pa {++ x; }}
Kapag pinindot ang pindutan ipinapadala namin ang kasalukuyang halaga ng XYZ sa isang programa ng terminal.
Ang serial data ay mabagal, ngunit sa panahon ng normal na operasyon ang mga posisyon ng mga encoder ay hindi magbabago sa oras na ito pa rin.
Ipinadala ang data bilang hilaw na bilang. Maaari mong gawin ang matematika at ipadala ang data sa mm o pulgada atbp. Nahanap ko ang mga hilaw na halaga ay kasing ganda dahil maaari nating sukatin ang bagay sa paglaon sa software.
Hakbang 5: Unang Pag-scan
Ang pagtitipon ng mga puntos ay isang mabagal na proseso, isinalaw ko ang pagsisiyasat sa kaliwang sulok sa itaas at i-reset ang Arduino.
Ito ang zero na posisyon bilang tahanan.
Pagkatapos ay ilipat ang probe sa lokasyon sa target, hawakan ito nang matatag at pindutin ang pindutan na 'snapshot'.
Para sa halip malaking sample na piraso na kinuha ko lamang ~ 140 puntos, kaya't ang detalye ay hindi maganda sa pangwakas na produkto.
I-save ang data sa isang. PCD file, at idagdag ang header
#. PCD v.7 - Point Cloud Data format formatVERSION.7 FIELDS x y z SIZE 4 4 4 TYPE F F F COUNT 1 1 1 LAKAS (bilang ng iyong puntos) HEIGHT 1 VIEWPOINT 0 0 0 1 0 0 0 POINTS (ang iyong bilang ng puntos)
Ilagay ang bilang ng puntos sa header, madali ito sa anumang editor na nagbibigay sa iyo ng mga numero ng linya.
Sa itaas ng mga tuldok ay makikita sa freeCad, pagkatapos ay mai-export mula sa freeCad bilang. PLY file.
Buksan ang. PLY sa MeshLab at i-ibabaw ang object. Tapos na !!
Inirerekumendang:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
USB Volume Knob Gamit ang DigiSpark at Rotary Encoder: 3 Hakbang
USB Volume Knob Gamit ang DigiSpark at Rotary Encoder: Ito ay isang sobrang murang USB Volume Control Knob. Ang ilang mga oras na tradisyonal na knobs ay mas maginhawa upang makontrol ang mga bagay kaysa sa pag-click sa mouse saanman. Gumagamit ang proyektong ito ng DigiSpark, isang Rotary Encoder at Adafruit Trinket USB Library (https: //github.c
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Rotary Encoder Gamit ang Arduino Nano: 4 Hakbang
Rotary Encoder Gamit ang Arduino Nano: Kumusta ang lahat, Sa artikulong ito ay gagawa ako ng isang tutorial sa kung paano gumamit ng isang rotary encoder gamit ang Arduino Nano. Upang magamit ang Rotary encoder na ito hindi mo kailangan ng isang panlabas na library. Kaya direkta kaming makakalikha ng mga programa nang hindi muna idinadagdag ang mga aklatan. sige simulan natin ika
Arduino Menu sa isang Nokia 5110 Lcd Gamit ang isang Rotary Encoder: 6 Mga Hakbang (na may Mga Larawan)
Arduino Menu sa isang Nokia 5110 Lcd Gamit ang isang Rotary Encoder: Minamahal na mga kaibigan maligayang pagdating sa isa pang tutorial! Sa video na ito matututunan namin kung paano bumuo ng menu ng aming pag-aari para sa tanyag na display ng Nokia 5110 LCD, upang gawing mas madaling gamitin at mas may kakayahan ang aming mga proyekto. Magsimula na ’ s! Ito ang projec