Мазмуну:

Куткарылган Ротари Encoders колдонуу XYZ Пойнт Сканери: 5 кадам
Куткарылган Ротари Encoders колдонуу XYZ Пойнт Сканери: 5 кадам

Video: Куткарылган Ротари Encoders колдонуу XYZ Пойнт Сканери: 5 кадам

Video: Куткарылган Ротари Encoders колдонуу XYZ Пойнт Сканери: 5 кадам
Video: Финал на подсосе ► 9 Прохождение Silent Hill (PS ONE) 2024, Июль
Anonim
Куткарылган Ротари Encoders колдонуу XYZ Пойнт Сканери
Куткарылган Ротари Encoders колдонуу XYZ Пойнт Сканери

Жумуш ордумдан көп сандаган жараксыз айлануучу оптикалык кодерлерди алып, акыры алар менен кызыктуу/пайдалуу нерсе кылууну чечтим.

Мен жакында эле үйүмө жаңы 3D принтер сатып алдым жана аны 3D сканерден артык эмне мактаса болот! Бул долбоор мага керектүү тетиктерди чыгаруу үчүн 3D принтеримди колдонууга эң сонун мүмкүнчүлүк берди.

Жабдуулар

Оптикалык кодерлер жана тиешелүү оптикалык сенсорлор

Arduino UNO

кошумча прототип калканы

болоттон жасалган рельстер

3D принтерге кирүү

1 -кадам: Оптикалык коддогучтар

Оптикалык коддогучтар
Оптикалык коддогучтар
Оптикалык коддогучтар
Оптикалык коддогучтар
Оптикалык коддогучтар
Оптикалык коддогучтар

Бул проект үчүн дээрлик бардык ротациялык кодер колдонулушу мүмкүн, эгерде ал сизге мм үчүн салыштырмалуу көп "чыкылдатууну" камсыз кылса. Албетте, башка коддогучтар ылайыктуу монтаж чечимин талап кылат.

Мен фото-сенсорлордун туташуу схемасын байкоо үчүн үзгүлтүксүздүк өлчөгүчтү колдондум.

2 -кадам: 3D басылган бөлүктөр

3D басылган бөлүктөрү
3D басылган бөлүктөрү
3D басылган бөлүктөрү
3D басылган бөлүктөрү

Бул бөлүктөрдө айлануучу коддогучтар жайгашкан жана темир жол үчүн слайд камсыз кылынат. Жалгыз коддоочу корпустун артында кайчылаш рельстерди орнотуу үчүн эки тешиги бар. Кош коддогуч корпусу жөн гана туура бурчта бириктирилген эки жалгыз корпус.

Мен бул тоолорду fusion360 боюнча коддогучтарды жана рельстерди тандап алуу үчүн иштеп чыккам, коддогучтун огунда дат баспас болоттон жасалган валды жакшыраак кармоо үчүн, анын кыска сабы резина кабыгы бар.

Сиз валдын эркин жылышын жана корпустун тигинен кармалышын каалайсыз, бирок ал тайып кетпеши үчүн кодерге жетиштүү басым жасашы керек. Мен үчүн иштеген нерсе, валдын слайдынын коддогучтун огу менен 0,5 мм капталуусуна уруксат берүү болчу. Калкан резинасы ошол өлчөмдө деформацияланууга жана жакшы тартылууга жетиштүү жумшак.

3 -кадам: Электр схемасы

Кабелдик диаграмма
Кабелдик диаграмма

Район абдан жөнөкөй. Опто-сенсорлор IR эмитент диоддору үчүн бир аз токту, фотодиоддор үчүн жерге жана тартылуучу каршылыкты талап кылат.

Мен сериядагы эмиттер диоддору үчүн 5мАны чечтим, бул өзгөчө кодерде диоддордун чыңалуусунун төмөндөшү 3.65В. Мен Arduinoдон 5 В резервуарды колдонуп жатам, ал резистор үчүн 1.35 В калтырат, 5 мАда бул 270 Ом болуп чыгат.

Фото-диоддор кичинекей токту батыра тургандыктан тартуу үчүн 10к Ом тандалды, баскыч үчүн 10k Ом да колдонулду. Жерге туташкан прототип тактасында колдонуу үчүн жеткиликтүү баскыч бар, аны жөн эле тартылуу каршылыгы менен камсыздап, керектүү киргизүү пинине зым менен байланыштырыңыз.

4 -кадам: Arduino коду

Arduino коду
Arduino коду
Arduino коду
Arduino коду
Arduino коду
Arduino коду

Код бир аз түшүндүрмөгө муктаж, анткени анын иштеши дароо эле билинбеши мүмкүн, бирок аны тез арада 3 коддогучту иштетүү үчүн оптималдаштыруу керек болчу.

Биринчиден, биз эгерде коддогучтун абалында өзгөрүү болгон болсо, анда биз багыт маалыматын гана иштетүүнү каалайбыз.

өзгөрүүлөр = new_value ^ сакталган мааниси;

Менин коддогучтарымдан көбүрөөк чечим алуу үчүн, мен өсүп бараткан жана түшкөн четин иштетүүгө туура келди.

Менин орнотуумда менин чечимим 1см үчүн 24 чыкылдатуу.

Бул бизге бир нече сценарийлерди калтырат.

S1 туруктуу 0 жана S2 0дон 1ге которулат

S1 туруктуу 0 жана S2 1ден 0гө которулат

S1 туруктуу 1 жана S2 0дон 1ге которулат

S1 туруктуу 1 жана S2 1ден 0гө которулат

S2 туруктуу 0 жана S1 0дон 1ге которулат

S2 туруктуу 0 жана S1 1ден 0гө которулат

S2 туруктуу 1 жана S1 0дон 1ге которулат

S2 1 туруктуу жана S1 1ден 0гө которулат

Бул шарттар жогорудагы чындык таблицаларында жакшыраак түшүнүлөт, ошондой эле ар бир шарт 0 же 1 деп өзүм билемдик менен "багыт" берет.

Диаграммалар бизге эки маанилүү кеңеш берет:

1) бир диаграмма экинчисине таптакыр карама -каршы келет, андыктан бизде бирөө болсо, биз чыгууну тескери буруп, экинчисин оңой эле эсептей алабыз. Биз бир пин өзгөрүп, экинчисин өзгөртпөсөк гана чыгууну тескери бурабыз, биз каалагандай тандап алабыз.

2) диаграмманын өзү S1 жана S2 сигналдарынын XOR гана. (башка диаграмма бул ЭМЕС).

Эми кодду түшүнүү жөнөкөй.

// ПОРТТО параллелдүү түрдө окуу // чектеш түгөйлөр бир эле коддогуч абалына таандык экенин унутпаңыз = PINB & 0x3f; // кандай пинтер өзгөрдү, эгерде diff = hold ^ state; // чындыктын таблицасын алуу үчүн XOR чектеш S1 жана S2 сигналдары // эң оңой жолу - учурдагы абалдын көчүрмөсүн // жана аны бир аз издөө менен оңго жылдыруу = абал >> 1; // азыр биттер XOR dir = search ^ state үчүн тегизделди; // эсиңизде болсун, эгерде кирүүлөрдүн бири туруктуу бойдон калса, анда таблицаны тескери буруш керек, бул үчүн бизге IF // билдирүүсүнүн кереги жок. Учурда керектүү багыт бит // "dir" өзгөрмөсүндөгү ар бир жуптун оң колу // сол колунун мааниси жок // "diff" өзгөрмөсүндө "set" өзгөртүлгөн бит бар // ошондуктан бизде да бар '01' же '10' // XOR муну 'dir' байт менен же // тескери бурат, же мааниге ээ эмес. dir ^= diff; // азыр hold өзгөрмөсүн hold = state жаңыртуу; // эгерде бул коддоочу үчүн бит да өзгөрсө if (diff & 0x03) {// багытын аныктоо, эгерде (dir & 0x01) {// сиздин программаңызга жана зымыңызга негизделген болсо ++ же --z; } else {++ z; }} // калгандары үчүн, эгерде (diff & 0x0c) {if (dir & 0x04) {++ y; } else {--y; }} if (diff & 0x30) {if (dir & 0x10) {--x; } else {++ x; }}

Кнопка басылганда, биз учурдагы XYZ баасын терминалдык программага жөнөтөбүз.

Сериялык маалыматтар жай, бирок кадимки иштөө учурунда бул убакыттын ичинде коддогучтардын абалы өзгөрбөйт.

Маалыматтар чийки эсеп катары жөнөтүлөт. Сиз математиканы жасай аласыз жана маалыматтарды мм же дюймда ж.

5 -кадам: Биринчи скандоо

Биринчи скандоо
Биринчи скандоо
Биринчи скандоо
Биринчи скандоо
Биринчи скандоо
Биринчи скандоо
Биринчи скандоо
Биринчи скандоо

Упайларды чогултуу жай процесс, мен иликтөөнү сол жактын жогорку бурчуна коюп, Arduino'ду баштапкы абалга келтирем.

Бул үйдүн абалын нөлгө теңейт.

Андан кийин иликтөөнү бутадагы жерге жылдырыңыз, бир калыпта кармап туруңуз жана "сүрөт" баскычын басыңыз.

Бул чоң үлгүдөгү бөлүк үчүн мен ~ 140 гана упай алдым, андыктан акыркы продукт боюнча деталдар анча жакшы эмес.

Маалыматтарды. PCD файлына сактаңыз жана башын кошуңуз

#. PCD v.7 - Пойнт Булут Дайындарынын файл форматы VERSION.7 ТАЛААЛАР x y z SIZE 4 4 4 TYPE F F F COUNT 1 1 1 WIDTH (сиздин упайларыңыздын саны) БИЙИКТИКТИН 1 КӨРҮНҮШҮ 0 0 0 1 1 0 0 0 POINTS (сиздин упайыңыздын саны)

Башыңызга чекитти коюңуз, бул сизге сап номерлерин берген бардык редактордо оңой.

Чокуларды freeCadдан көрүүгө болот, алар freeCadдан. PLY файлы катары экспорттолот.

. PLY ачыңыз MeshLab жана объектинин үстүн. Бүттү !!

Сунушталууда: