Mundarija:
- Ta'minotlar
- 1 -qadam: Optik kodlovchi
- 2 -qadam: 3D bosilgan qismlar
- 3 -qadam: ulanish sxemasi
- 4 -qadam: Arduino kodi
- 5 -qadam: Birinchi ko'rish
Video: Qutqarilgan aylanuvchi kodlovchi yordamida XYZ nuqta skaneri: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Ish joyimdan juda ko'p tashlab yuborilgan aylanadigan optik enkoderlarni sotib olib, nihoyat ular bilan qiziqarli va foydali ish qilishga qaror qildim.
Men yaqinda uyim uchun yangi 3D printer sotib oldim va uni 3D skanerdan yaxshiroq nima iltifot qila oladi! Bu loyiha menga kerakli qismlarni ishlab chiqarish uchun 3D -printerimdan foydalanish uchun ajoyib imkoniyatni berdi.
Ta'minotlar
Optik kodlovchi va mos keladigan optik sensorlar
Arduino UNO
ixtiyoriy prototiplash qalqoni
po'latdan yasalgan relslar
3D printerga kirish
1 -qadam: Optik kodlovchi
Bu loyiha uchun deyarli har qanday aylanuvchi kodlovchi ishlatilishi mumkin, agar u sizga mm uchun nisbatan yuqori bosish imkonini bersa. Shubhasiz, har xil kodlovchi mos o'rnatish echimini talab qiladi.
Men uzluksizlikni o'lchash moslamasidan foydalanib, datchiklarning ulanish sxemasini oldim.
2 -qadam: 3D bosilgan qismlar
Bu qismlar aylanadigan enkoderlarni joylashtiradi va temir yo'l uchun slaydni beradi. Yagona kodlovchi korpusining orqa tomonida o'zaro chiziqlar o'rnatilishi uchun ikkita teshik bor. Ikkita kodlovchi korpus - bu to'g'ri burchak ostida birlashtirilgan ikkita bitta korpus.
Men bu fusion360 qurilmalarini o'zim tanlagan enkoder va relslarga mos ravishda ishlab chiqardim, enkoderning milida zanglamaydigan po'latdan yasalgan valni yaxshiroq ushlab turish uchun slingshot rezina niqobi qisqa bo'lakka ega.
Siz mil erkin siljishini va vertikal ushlab turganda korpusdan qulab tushishini xohlaysiz, lekin u sirg'almasligi uchun enkoderga etarlicha bosim o'tkazishi kerak. Men uchun ishlaydigan narsa, milning slaydini enkoder miliga 0,5 mm ga yopishishiga ruxsat berish edi. Slingshot kauchuki shunchalik yumshoqki, bu miqdor deformatsiyalanadi va yaxshi tortish imkoniyatini beradi.
3 -qadam: ulanish sxemasi
O'chirish sxemasi juda oddiy. Opto-datchiklar IQ-emition diodlari uchun bir oz tokni, fotodiodlar uchun er va tortish rezistorlarini talab qiladi.
Men ketma-ket emitrli diodlar uchun 5mA ga qaror qildim, bu maxsus enkoderda diodlardagi kuchlanish pasayishi 3.65V. Men Arduino -dan rezistor uchun 1,35V qoldiradigan 5V kuchlanishdan foydalanayapman, 5mA da bu 270 ohmga teng.
Olib tashlash uchun 10k ohm tanlangan, chunki fotodiodlar faqat kichik oqimni tushirishi mumkin, tugma uchun esa 10k ohm ishlatilgan. Erga ulangan prototip taxtasida foydalanish mumkin bo'lgan tugma mavjud, uni tortish qarshiligi bilan ta'minlang va kerakli kirish piniga ulang.
4 -qadam: Arduino kodi
Kod biroz tushuntirishga muhtoj, chunki uning ishlashi darhol aniq bo'lmasligi mumkin, lekin 3 ta kodlovchini tezda qayta ishlash uchun uni shunday optimallashtirish kerak edi.
Birinchidan, agar biz faqat kodlovchi pozitsiyasida o'zgarish bo'lsa, yo'nalish ma'lumotlarini qayta ishlashni xohlaymiz.
o'zgarishlar = new_value ^ saqlangan qiymat;
Enkoderlarimdan ko'proq aniqlik olish uchun men ko'tarilgan va tushgan qirralarni qayta ishlashim kerak edi.
O'rnatish paytida mening o'lchamim 1 sm uchun 24 marta bosiladi.
Bu bizga bir nechta stsenariylarni qoldiradi.
S1 doimiy 0 va S2 0 dan 1 gacha o'zgaradi
S1 doimiy 0 va S2 1 dan 0 gacha o'zgaradi
S1 doimiy 1 va S2 0 dan 1 gacha o'zgaradi
S1 doimiy 1 va S2 1 dan 0 gacha o'zgaradi
S2 - 0 doimiy va S1 - 0 dan 1 gacha
S2 doimiy 0 va S1 1 dan 0 gacha o'zgaradi
S2 doimiy 1 va S1 0 dan 1 gacha o'zgaradi
S2 doimiy 1 va S1 1 dan 0 gacha o'zgaradi
Bu shartlar yuqoridagi haqiqat jadvallarida yaxshiroq tushuniladi, shuningdek har bir shart o'zboshimchalik bilan 0 yoki 1 deb nomlangan "yo'nalish" ni beradi.
Grafika bizga ikkita muhim maslahat beradi:
1) bitta grafik ikkinchisining to'liq teskarisidir, shuning uchun agar bizda bo'lsa, biz chiqishni teskari aylantirish orqali boshqasini osongina hisoblashimiz mumkin. Biz chiqishni teskari tomonga o'zgartiramiz, ikkinchisi esa o'zgarmaydi.
2) grafikning o'zi S1 va S2 signallarining XOR -dir. (boshqa jadval - bu emas).
Endi kodni tushunish juda oddiy.
// PORTda parallel o'qiladi // qo'shni juftliklar bir xil kodlovchi holatiga tegishli ekanligini eslang = PINB & 0x3f; // qanday pinlar o'zgardi, agar diff = hold ^ state; // XOR qo'shni S1 va S2 signallari haqiqat jadvalini olish uchun // eng oson yo'li - hozirgi holatning nusxasini olish // uni bir oz qidirish = holat >> 1 bilan o'ngga siljitish; // endi bitlar XOR dir = search ^ state uchun hizalanadi; // esda tutingki, agar kirishlar // dan biri o'zgarmasa, jadvalni teskari o'zgartirish kerak, buning uchun bizga IF // ifodasi kerak emas. Hozirgi vaqtda kerakli yo'nalish biti - "dir" o'zgaruvchisidagi har bir juftlikning o'ng qo'li // chap qo'lning ma'nosi yo'q // "diff" o'zgaruvchisida "set" ni o'zgartirgan bit bor // shuning uchun bizda ham '01' yoki '10' // XOR 'dir' bayt bilan // teskari bo'ladi yoki ma'nosiz bit bo'lmaydi. dir ^= farq; // hozir hold o'zgaruvchining hold = holatini yangilang; // agar bu kodlovchi uchun har qanday bit ham o'zgargan bo'lsa, (diff & 0x03) {// yo'nalishni aniqlang, agar (dir & 0x01) {// sizning dasturiy ta'minotingiz va simlaringizga qarab ++ yoki --z; } boshqa {++ z; }} // qolganlar uchun ham agar if (diff & 0x0c) {if (dir & 0x04) {++ y; } boshqa { -y; }} if (diff & 0x30) {if (dir & 0x10) {--x; } boshqa {++ x; }}
Tugma bosilganda biz joriy XYZ qiymatini terminal dasturiga yuboramiz.
Ketma -ket ma'lumotlar sekin, lekin normal ishlayotganda, bu vaqt davomida enkoderlarning joylashuvi o'zgarmaydi.
Ma'lumotlar xom hisob sifatida yuboriladi. Siz matematikani bajarishingiz va ma'lumotlarni mm yoki dyuym va boshqalarga yuborishingiz mumkin, menimcha, xom qiymatlar juda yaxshi, chunki biz ob'ektni keyinchalik dasturiy ta'minotda o'lchashimiz mumkin.
5 -qadam: Birinchi ko'rish
Ballarni yig'ish - bu sekin jarayon, men probni chap yuqori burchagiga qo'yaman va Arduino -ni qayta o'rnataman.
Bu uyning o'rnini nolga tenglashtiradi.
Keyin zondni maqsadli joyga o'tkazing, uni ushlab turing va "oniy tasvir" tugmasini bosing.
Bu juda katta namuna qismi uchun men ~ 140 ball oldim, shuning uchun yakuniy mahsulot haqida batafsil ma'lumot yo'q.
Ma'lumotni. PCD faylga saqlang va sarlavhani qo'shing
#. PCD v.7 - Nuqta bulutli ma'lumotlar fayl formati VERSION.7 DAVLATLAR x y z O'lcham 4 4 4 TUR F F F SONI 1 1 1 kengligi (sizning ballar soni) Balandlik 1 VIDEO 0 0 0 0 1 0 0 0 ballar (sizning ballar soni)
Sarlavhada nuqta sanashni qo'ying, bu sizga qator raqamlarini taqdim etadigan har qanday muharrirda oson.
Yuqoridagi nuqtalarni freeCad -da ko'rish mumkin, keyin ular freeCad -dan. PLY fayli sifatida eksport qilinadi.
MeshLab -da. PLY -ni oching va ob'ektni yuzasiga qo'ying. Bajarildi !!
Tavsiya:
Nuqta-nuqta kuchlanishli boshqariladigan osilator: 29 qadam
Nuqtadan-nuqtaga voltaj bilan boshqariladigan osilator: Salom! Siz loyihani topdingiz, u erda biz chindan ham arzon mikrochipni, CD4069 (yaxshi) olib, uning ba'zi qismlarini yopishtirib olamiz va kuchlanish nazorat qilinadigan juda foydali osilatorga ega bo'lamiz! Biz quradigan versiyada faqat arra yoki rampa to'lqin shakli mavjud, bu
DigiSpark va aylanadigan kodlovchi yordamida USB ovoz balandligi tugmasi: 3 qadam
DigiSpark va Rotary Encoder yordamida USB ovoz balandligi tugmasi: bu juda arzon USB tovushni boshqarish tugmasi. Ba'zida hamma joyda sichqonchani bosishdan ko'ra, an'anaviy tugmachalarni boshqarish qulayroq bo'ladi. Ushbu loyihada DigiSpark, Rotary Enkoder va Adafruit Trinket USB kutubxonasi ishlatiladi (https: //github.c
Dual Decay Eurorack nuqta-nuqta sxemasi: 12 qadam
Dual Decay Eurorack nuqta-nuqta sxemasi: Ushbu ko'rsatmaning maqsadi modulli sintezatoringiz uchun DUAL DECAY sxemasini qanday qilish mumkinligini ko'rsatishdir. Bu har qanday pcb bo'lmagan nuqta-nuqta sxemasi va minimal qismlardan iborat funktsional sintezator zanjirlarini yaratishning boshqa usulini ko'rsatadi
Arduino Nano yordamida aylanadigan kodlovchi: 4 qadam
Arduino Nano -dan foydalanadigan Rotary Enkoder: Hammaga salom, men ushbu maqolada Arduino Nano -dan foydalanib aylanadigan kodlovchi qanday ishlatilishini o'rgataman. Bu Rotary enkoderidan foydalanish uchun sizga tashqi kutubxona kerak emas. Shunday qilib, biz kutubxonalarni qo'shmasdan to'g'ridan -to'g'ri dasturlarni yaratishimiz mumkin. OK, boshlaylik
Nokia 5110 Lcd -dagi Arduino menyusi aylanadigan kodlovchi yordamida: 6 qadam (rasmlar bilan)
Nokia 5110 Lcd -dagi Arduino menyusi aylanadigan kodlovchi yordamida: Aziz do'stlar, boshqa darslikka xush kelibsiz! Ushbu videoda biz Nokia 5110 LCD displeyi uchun o'z menyusimizni qanday yaratishni o'rganamiz, bu esa loyihalarimiz foydalanuvchilarga qulay va qobiliyatli bo'lishi uchun. Boshlaylik! Bu loyiha