Turinys:
- Prekės
- 1 žingsnis: optiniai kodavimo įrenginiai
- 2 žingsnis: 3D spausdintos dalys
- 3 žingsnis: laidų schema
- 4 žingsnis: „Arduino“kodas
- 5 veiksmas: pirmasis nuskaitymas
Video: XYZ taškų skaitytuvas naudojant išgelbėtus rotacinius kodavimo įrenginius: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Iš savo darbo vietos įsigijęs gana daug išmestų rotacinių optinių kodavimo įrenginių, pagaliau nusprendžiau su jais nuveikti ką nors įdomaus/naudingo.
Neseniai nusipirkau naują 3D spausdintuvą savo namams ir kas gali jį pagirti geriau nei 3D skaitytuvas! Šis projektas taip pat suteikė man puikią galimybę panaudoti savo 3D spausdintuvą reikiamoms dalims gaminti.
Prekės
Optiniai kodavimo įrenginiai ir atitinkami optiniai jutikliai
Arduino UNO
pasirenkamas prototipų skydas
plieniniai strypai
prieiga prie 3D spausdintuvo
1 žingsnis: optiniai kodavimo įrenginiai
Šiam projektui galėtų būti naudojamas beveik bet kuris sukamasis kodavimo įrenginys, jei jis suteiks palyginti daug „paspaudimų“per mm. Akivaizdu, kad skirtingiems kodavimo įrenginiams reikės tinkamo montavimo sprendimo.
Aš naudoju tęstinumo matuoklį, kad galėčiau atsekti foto jutiklių prijungimo schemą.
2 žingsnis: 3D spausdintos dalys
Šiose dalyse yra sukamieji kodavimo įrenginiai ir bėgiai yra slankiojami. Vieno kodavimo įrenginio korpuso gale yra dvi skylės, prie kurių galima pritvirtinti skersinius bėgelius. Dvigubo kodavimo įrenginio korpusas yra tik du atskiri korpusai, sujungti stačiu kampu.
Sukūriau šiuos laikiklius ant „fusion360“, kad tiktų mano pasirinkti kodavimo įrenginiai ir bėgeliai. Kodavimo velenas turi trumpą guminį apvalkalo gabalėlį, kuris padės geriau suimti nerūdijančio plieno veleną.
Norite, kad velenas laisvai slystų ir nukristų per korpusą, kai jis laikomas vertikaliai, tačiau jis turi pakankamai paspausti kodavimo įrenginį, kad neslystų. Man veikė tai, kad veleno skaidrė sutapo su kodavimo velenu 0,5 mm. Šliaužtinė guma yra pakankamai minkšta, kad tokiu būdu deformuotųsi ir užtikrintų gerą sukibimą.
3 žingsnis: laidų schema
Grandinė yra labai paprasta. Opto jutikliams reikia tam tikros srovės IR spinduliuotės diodams, įžeminimo ir traukimo rezistorių fotodiodams.
Aš nusprendžiau 5mA serijiniams spinduliavimo diodams, šiame konkrečiame kodavimo įrenginyje įtampos kritimas per diodus yra 3,65 V. Aš naudoju 5 V maitinimą iš „Arduino“, kuris rezistoriui palieka 1,35 V, esant 5 mA, tai yra 270 omų.
Prisitraukimams buvo pasirinktas 10k omų, nes fotodiodai gali nuskęsti tik nedidelę srovę, 10k omų taip pat buvo naudojamas mygtukui. Prie prototipo plokštės, jau prijungtos prie žemės, galima naudoti mygtuką, tiesiog aprūpinkite ją ištraukiamuoju rezistoriumi ir prijunkite prie norimo įvesties kaiščio.
4 žingsnis: „Arduino“kodas
Kodą reikia šiek tiek paaiškinti, nes jo veikimas gali būti ne iš karto akivaizdus, tačiau jį reikėjo taip optimizuoti, kad būtų galima pakankamai greitai apdoroti 3 koduotuvus.
Pirma, mes norime apdoroti tik krypties duomenis, jei pasikeitė kodavimo įrenginio padėtis.
pokyčiai = nauja_vertybė ^ išsaugota vertė;
Norėdami gauti daugiau skiriamosios gebos iš savo kodavimo įrenginių, turėjau apdoroti tiek kylančius, tiek krintančius kraštus.
Mano sąrankoje mano skiriamoji geba yra 24 paspaudimai per 1 cm.
Tai palieka mums keletą scenarijų.
S1 yra pastovus 0, o S2 perjungtas nuo 0 iki 1
S1 yra pastovus 0, o S2 perjungtas nuo 1 iki 0
S1 yra pastovus 1, o S2 perjungiamas nuo 0 iki 1
S1 yra pastovus 1, o S2 perjungiamas nuo 1 iki 0
S2 yra pastovus 0, o S1 perjungtas nuo 0 iki 1
S2 yra pastovus 0, o S1 perjungtas nuo 1 iki 0
S2 yra pastovus 1, o S1 perjungiamas nuo 0 iki 1
S2 yra pastovus 1, o S1 perjungiamas nuo 1 iki 0
Šios sąlygos geriau suprantamos aukščiau esančiose tiesos lentelėse, taip pat kiekviena sąlyga suteikia „kryptį“, savavališkai pavadintą 0 arba 1.
Diagramos suteikia mums du svarbius įkalčius:
1) viena diagrama yra visiškai atvirkštinė kitai, taigi, jei turime vieną, galime lengvai apskaičiuoti kitą tiesiog apversdami išvestį. Mes apverčiame išvestį tik tuo atveju, jei keičiasi vienas kaištis, o ne kitas, mes galime savavališkai pasirinkti vieną.
2) pati diagrama yra tiesiog S1 ir S2 signalų XOR. (kita diagrama yra NĖRA).
Dabar suprasti kodą paprasta.
// skaityti PORT lygiagrečiai // prisiminti, kad gretimos poros priklauso tai pačiai kodavimo būsenai = PINB & 0x3f; // kokie kaiščiai pasikeitė, jei kokia nors diff = hold ^ būsena; // XOR greta esantys S1 ir S2 signalai, norint gauti tiesos lentelę // paprasčiausias būdas yra pasidaryti dabartinės būsenos kopiją // ir perkelti ją į dešinę vienu bitu lookup = state >> 1; // dabar bitai sulygiuoti XOR dir = lookup ^ state; // atminkite, kad lentelę reikia apversti, jei vienas iš įvesties elementų liko pastovus, mums nereikia IF // teiginio. Šiuo metu norimos krypties bitas // yra kiekvienos poros dešinysis kintamojo „dir“kintamasis // kairysis bitas yra beprasmis // kintamasis „diff“turi bitą, kuris pakeitė „set“// taigi mes arba „01“arba „10“// XOR tai su „dir“baitu apvers // reikšmingą bitą. dir ^= diferencialas; // dabar atnaujinti sulaikymo kintamąjį hold = state; // jei pasikeitė bet kuris šio kodavimo įrenginio bitas if (diff & 0x03) {// nustatykite kryptį, jei (dir & 0x01) {// pagal jūsų hadware ir laidus ++ arba ---z; } else {++ z; }} // taip pat likusiems, jei (skirtumas & 0x0c) {jei (dir & 0x04) {++ y; } else {--y; }} if (diff & 0x30) {if (dir & 0x10) {--x; } else {++ x; }}
Paspaudus mygtuką, siunčiame dabartinę XYZ reikšmę į terminalo programą.
Serijiniai duomenys yra lėti, tačiau įprasto veikimo metu koduotojų padėtis per tą laiką nesikeis.
Duomenys siunčiami kaip neapdoroti skaičiai. Galite atlikti skaičiavimus ir siųsti duomenis mm arba coliais ir tt. Manau, kad neapdorotos vertės yra tokios pat geros, nes vėliau programinėje įrangoje galime pakeisti objektą.
5 veiksmas: pirmasis nuskaitymas
Taškų surinkimas yra lėtas procesas, aš pakeliu zondą viršutiniame kairiajame kampe ir iš naujo nustatau „Arduino“.
Tai nulis padėties kaip namuose.
Tada perkelkite zondą į taikinio vietą, laikykite jį stabiliai ir paspauskite „momentinės nuotraukos“mygtuką.
Už šį gana didelį mėginio gabalą paėmiau tik ~ 140 taškų, todėl galutinio produkto detalumas nėra didelis.
Išsaugokite duomenis į. PCD failą ir pridėkite antraštę
#. PCD v.7 - „Point Cloud“duomenų failo formatas VERSIJA.7 LAUKAI x y z 4 4 4 F TIPAS
Įdėkite taškų skaičių į antraštę, tai lengva padaryti bet kuriame redaktoriuje, kuris pateikia eilutės numerius.
Virš taškų galima pamatyti „freeCad“, tada jie eksportuojami iš „freeCad“kaip. PLY failas.
Atidarykite. PLY „MeshLab“ir padėkite objektą ant paviršiaus. Padaryta!!
Rekomenduojamas:
Ar galima perkelti nuotraukas naudojant LPWAN pagrįstus daiktų interneto įrenginius?: 6 veiksmai
Ar įmanoma perkelti nuotraukas naudojant LPWAN pagrįstus daiktų interneto įrenginius? Tipiškos technologijos yra „Sigfox“, „LoRa NB-IoT“ir „LTE Cat.M1“. Visa tai yra mažos galios tolimojo ryšio technologija. Gerai
PA1 „pasidaryk pats“vamzdžių stiprintuvas: efektyviai pastatytas naudojant išgelbėtus komponentus: 13 žingsnių
„PA1 DIY Tube Preamp“: efektyviai pastatytas naudojant išgelbėtus komponentus: žiniatinklyje ir spaudoje yra daug išteklių apie vamzdžių stiprintuvų kūrimą, todėl maniau, kad pasidalinsiu kažkuo kitokiu. Ši instrukcija apima mano sukurto atviro kodo vamzdžių stiprintuvo konstrukciją, ir tai ne tik
Kaip naudoti pramoninius kodavimo įrenginius su „Arduino“: 6 žingsniai
Kaip naudoti pramoninius kodavimo įrenginius naudojant „Arduino“: papildomi kodavimo įrenginiai dažnai naudojami pramoninėms reikmėms, tokioms kaip robotika ar padėties stebėjimas. Pramoninės paskirties kodavimo įrenginiai dažniausiai būna su diferencine RS422 sąsaja. Šiame mažame projekte parodysiu, kaip naudoti pramoninį
3D kūno skaitytuvas naudojant „Raspberry Pi“fotoaparatus: 8 žingsniai (su paveikslėliais)
3D kūno skaitytuvas naudojant „Raspberry Pi“fotoaparatus: Šis 3D skaitytuvas yra „BuildBrighton Makerspace“bendradarbiavimo projektas, kurio tikslas - padaryti skaitmenines technologijas prieinamas bendruomenės grupėms. Skaitytuvai naudojami mados pramonėje, pritaikant drabužių dizainą, žaidimų pramonėje
Didelio nuotolio „WiFi“skaitytuvas naudojant ESP8266: 6 žingsniai (su paveikslėliais)
Ilgo nuotolio „WiFi“skaitytuvas naudojant ESP8266: Šioje instrukcijoje aš sukuriu nešiojamą nešiojamą 2,5 diapazono „WiFi“nuskaitymo įrenginį, naudojamą baterijomis, naudojamą nustatant, kuris kanalas tinkamiausias mano namų tinklui. Jis taip pat gali būti naudojamas norint rasti atvirus „WiFi“prieigos taškus kelyje. Kaina: apie 25 USD