Съдържание:
- Консумативи
- Стъпка 1: Оптичните енкодери
- Стъпка 2: 3D отпечатани части
- Стъпка 3: Схема на свързване
- Стъпка 4: Arduino код
- Стъпка 5: Първо сканиране
Видео: XYZ точков скенер, използващ запазени въртящи се енкодери: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
След като придобих доста голям брой изхвърлени ротационни оптични енкодери от работното си място, най -накрая реших да направя нещо забавно/полезно с тях.
Наскоро закупих нов 3D принтер за дома си и какво би могло да го комплиментира по -добре от 3D скенер! Този проект също ми предостави перфектната възможност да използвам моя 3D принтер за производство на необходимите части.
Консумативи
Оптични енкодери и съответни оптични сензори
Arduino UNO
опционален прототипиращ щит
стоманени шини
достъп до 3D принтер
Стъпка 1: Оптичните енкодери
Почти всеки въртящ се енкодер може да се използва за този проект, стига да ви осигури относително голям брой „щраквания“на мм. Очевидно различните енкодери ще изискват подходящо решение за монтаж.
Използвах измервател на непрекъснатостта, за да проследя схемата на свързване на фотосензорите.
Стъпка 2: 3D отпечатани части
Тези части съдържат въртящи се енкодери и осигуряват плъзгане за релсата. Единичният корпус на енкодера има два отвора отзад, към които могат да се монтират напречните релси. Корпусът с двоен енкодер е просто два единични корпуса, слети заедно под прав ъгъл.
Проектирах тези стойки на fusion360 така, че да отговарят на моя избор на енкодери и релси. Валът на енкодера има къса част от гумена обвивка от прашка, за да му помогне да се захване по -добре от вала от неръждаема стомана.
Искате валът да се плъзга свободно и да пада през корпуса, когато се държи вертикално, но той трябва да упражнява достатъчно натиск върху енкодера, за да не се плъзне. Това, което работи за мен, беше да позволя на плъзгача за вала да се припокрие с вала на енкодера с 0,5 мм. Прашката е достатъчно мека, за да се деформира с това количество и да осигури добро сцепление.
Стъпка 3: Схема на свързване
Схемата е много проста. Опто-сензорите изискват известен ток за диодите с IR емитер, заземяващи и издърпващи резистори за фотодиодите.
Реших за 5mA за серийните емитерни диоди, в този конкретен енкодер спадането на напрежението върху диодите е 3.65V. Използвам 5V захранване от Arduino, което оставя 1.35V за резистора, при 5mA това работи на 270 ома.
10k ohm беше избрано за издърпванията, тъй като фотодиодите могат да потънат само при малък ток, 10k ohm беше използван и за бутон. Наличен е бутон за използване на прототипната платка, която вече е свързана към земята, просто му осигурете издърпващ се резистор и го свържете към желания входен щифт.
Стъпка 4: Arduino код
Кодът се нуждае от малко обяснение, тъй като работата му може да не е очевидна веднага, но трябваше да бъде оптимизиран по този начин, за да може да обработва 3 кодера достатъчно бързо.
Първо, ние искаме да обработваме само данни за посоката, ако има промяна в позицията на енкодера.
промени = нова_ стойност ^ съхранена стойност;
За да получа по -голяма разделителна способност от моите енкодери, трябваше да обработя както нарастващите, така и падащите ръбове.
На моята настройка моята резолюция е 24 кликвания на 1 см.
Това ни оставя с няколко сценария.
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) самата диаграма е просто XOR на сигналите S1 и S2. (другата диаграма е НЕ на това).
Сега разбирането на кода е просто.
// четене в PORT паралелно // запомняне съседни двойки принадлежат към едно и също състояние на енкодера = PINB & 0x3f; // какви пинове са се променили, ако има разлика = задържане ^ състояние; // XOR съседни сигнали S1 и S2 за получаване на таблица на истината // най -лесният начин е да направите копие на текущото състояние // и да го изместите надясно с едно търсене на битове = състояние >> 1; // сега битовете са подравнени за XOR dir = lookup ^ state; // запомнете, таблицата трябва да бъде обърната, ако един // от входовете остане постоянен, не се нуждаем от IF // израз за това. В момента желаният бит за посока // е десният бит на всяка двойка в променливата „dir“// левият бит е безсмислен // променливата „diff“има бита, който промени „set“//, така че или имаме '01' или '10' // XOR това с байта 'dir' или // ще обърне или няма смисления бит. dir ^= разлика; // сега актуализираме променливата hold hold = state; // ако някой от битовете се е променил за този енкодер if (diff & 0x03) {// определете посоката if (dir & 0x01) {// въз основа на вашия хардуер и окабеляване или ++ или ---z; } else {++ z; }} // същото за останалите if (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 - Формат на файла с данни в облак от точки
Поставете броя на точките в заглавката, това е лесно за всеки редактор, който ви предоставя номера на редове.
Над точките могат да се видят в freeCad, след това те се експортират от freeCad като. PLY файл.
Отворете. PLY на MeshLab и повърхността на обекта. Свършен!!
Препоръчано:
Скенер за QR код, използващ OpenCV в Python: 7 стъпки
Скенер за QR кодове, използващ OpenCV в Python: В съвременния свят виждаме, че QR кодът и баркодът се използват почти навсякъде, от опаковката на продуктите до онлайн плащанията и сега на ден виждаме QR кодове дори в ресторанта, за да видите менюто. съмнявам се, че това е голямата мисъл сега. Но замисляли ли сте се някога
Прост точков заварчик, използващ автомобилна батерия за изграждане на литиево -йонна батерия: 6 стъпки
Прост точков заварчик, използващ автомобилна батерия за изграждане на литиево-йонна батерия: Ето как направих точков заварчик с акумулатор за кола, който е полезен за изграждане на литиево-йонни (литиево-йонни) батерии. Успях да изградя 3S10P Pack и много заварки с този точков заварчик. Този инструмент за точков заварчик включва, функционален блок диаметър
Как да използвате индустриални енкодери с Arduino: 6 стъпки
Как да използвате индустриални енкодери с Arduino: Инкременталните енкодери често се използват за промишлени приложения като роботика или проследяване на позициониране. Енкодерите за промишлени приложения се предлагат предимно с диференциран RS422 интерфейс. В този малък проект ще покажа как да използвам промишлен
WiFi скенер за дълги разстояния, използващ ESP8266: 6 стъпки (със снимки)
WiFi скенер за дълги разстояния, използващ ESP8266: В тази инструкция правя портативно устройство за сканиране с дълъг обхват 2.5 лента за захранване с батерии, използвано за определяне кой канал е най -подходящ за домашната ми мрежа. Може да се използва и за намиране на отворени точки за достъп до WiFi в движение. Разходи за изработка: Около 25 долара
Редактирани чертежи, запазени като JPEG: 6 стъпки
Редактирани чертежи, запазени като JPEG: Имам стара, евтина CAD програма, която прави някои хубави неща, но не може да запише във формат, който мога да заредя с моите инструктажи. Тази инструкция ще ви каже как да конвертирате чертежи от всяка програма за рисуване във формат JPEG. На снимката вие