Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: De optiske kodere
- Trin 2: 3D -printede dele
- Trin 3: Ledningsdiagram
- Trin 4: Arduino -kode
- Trin 5: Første scanning
![XYZ -punktscanner ved hjælp af bjærgede roterende encodere: 5 trin XYZ -punktscanner ved hjælp af bjærgede roterende encodere: 5 trin](https://i.howwhatproduce.com/images/009/image-25579-j.webp)
Video: XYZ -punktscanner ved hjælp af bjærgede roterende encodere: 5 trin
![Video: XYZ -punktscanner ved hjælp af bjærgede roterende encodere: 5 trin Video: XYZ -punktscanner ved hjælp af bjærgede roterende encodere: 5 trin](https://i.ytimg.com/vi/YMUJMvbzFsc/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
![XYZ -punktscanner ved hjælp af bjærgede roterende encodere XYZ -punktscanner ved hjælp af bjærgede roterende encodere](https://i.howwhatproduce.com/images/009/image-25579-1-j.webp)
Efter at have erhvervet et stort antal kasserede roterende optiske encodere fra mit arbejdssted, besluttede jeg endelig at gøre noget sjovt/nyttigt med dem.
Jeg har for nylig købt en ny 3D -printer til mit hjem, og hvad kunne komplimentere den bedre end en 3D -scanner! Dette projekt gav mig også den perfekte mulighed for at anvende min 3D -printer til at fremstille de nødvendige dele.
Forbrugsvarer
Optiske encodere og tilsvarende optiske sensorer
Arduino UNO
valgfri prototypeskjold
stålskinner
adgang til en 3D -printer
Trin 1: De optiske kodere
![De optiske kodere De optiske kodere](https://i.howwhatproduce.com/images/009/image-25579-2-j.webp)
![De optiske kodere De optiske kodere](https://i.howwhatproduce.com/images/009/image-25579-3-j.webp)
![De optiske kodere De optiske kodere](https://i.howwhatproduce.com/images/009/image-25579-4-j.webp)
Næsten enhver roterende encoder kunne bruges til dette projekt, så længe det gav dig et relativt højt antal 'klik' pr. Mm. Det er klart, at forskellige encodere vil kræve en passende monteringsløsning.
Jeg brugte en kontinuitetsmåler til at spore ledningsdiagrammet til fotosensorerne.
Trin 2: 3D -printede dele
![3D -trykte dele 3D -trykte dele](https://i.howwhatproduce.com/images/009/image-25579-5-j.webp)
![3D -trykte dele 3D -trykte dele](https://i.howwhatproduce.com/images/009/image-25579-6-j.webp)
Disse dele huser de roterende encodere og udgør et dias til skinnen. Enkelt encoderhuset har to huller i ryggen, som tværskinnerne kan monteres på. Dobbelt encoderhuset er simpelthen to enkelthuse smeltet sammen i de rette vinkler.
Jeg designede disse beslag på fusion360, så de passede til mit valg af encodere og skinner, akselens encoder har et kort stykke slynge af gummiskede, der hjælper med at gribe det rustfrie stålaksel bedre.
Du vil have akslen til at glide frit og falde gennem huset, når den holdes lodret, men den skal udøve nok tryk på encoderen til ikke at glide. Det, der fungerede for mig, var at lade slæden til akslen overlappe med encoderakslen med 0,5 mm. Slangeskumgummiet er blødt nok til at deformeres med den mængde og giver god trækkraft.
Trin 3: Ledningsdiagram
![Ledningsdiagram Ledningsdiagram](https://i.howwhatproduce.com/images/009/image-25579-7-j.webp)
Kredsløbet er meget enkelt. Optosensorerne kræver noget strøm til IR-emitterdioderne, en jord og pull-up modstande til fotodioderne.
Jeg besluttede mig for 5mA for seriens emitterdioder, i denne særlige encoder er spændingsfaldet over dioderne 3,65V. Jeg bruger en 5V forsyning fra Arduino, der efterlader 1,35V for modstanden, ved 5mA virker det til at være 270 ohm.
10k ohm blev valgt til pull-ups, da fotodioderne kun kan synke en lille strøm, 10k ohm blev også brugt til trykknappen. Der er en knap til rådighed til brug på prototypekortet, der allerede er forbundet til jorden, bare forsyn den med en pull-up-modstand og led den til den ønskede input-pin.
Trin 4: Arduino -kode
![Arduino kode Arduino kode](https://i.howwhatproduce.com/images/009/image-25579-8-j.webp)
![Arduino kode Arduino kode](https://i.howwhatproduce.com/images/009/image-25579-9-j.webp)
![Arduino kode Arduino kode](https://i.howwhatproduce.com/images/009/image-25579-10-j.webp)
Koden har brug for en lille forklaring, da dens drift muligvis ikke umiddelbart er indlysende, men alligevel skulle den optimeres på denne måde for at kunne behandle 3 encodere hurtigt nok.
For det første vil vi kun behandle retningsdata, HVIS der er sket en ændring i encoderpositionen.
ændringer = ny_værdi ^ lagret værdi;
For at få mere opløsning fra mine encodere måtte jeg behandle både stigende og faldende kanter.
På mit setup er min opløsning 24 klik pr. 1 cm.
Dette efterlader os med et par scenarier.
S1 er konstant 0 og S2 skiftede fra 0 til 1
S1 er konstant 0 og S2 skiftede fra 1 til 0
S1 er konstant 1 og S2 skifter fra 0 til 1
S1 er konstant 1 og S2 skifter fra 1 til 0
S2 er konstant 0 og S1 skiftede fra 0 til 1
S2 er konstant 0 og S1 skiftede fra 1 til 0
S2 er konstant 1 og S1 skifter fra 0 til 1
S2 er konstant 1 og S1 skifter fra 1 til 0
Disse betingelser er bedre forstået i sandhedstabellerne ovenfor, også hver betingelse giver en 'retning', der vilkårligt hedder 0 eller 1.
Diagrammerne giver os to vigtige spor:
1) det ene diagram er det fuldstændige inverse af det andet, så hvis vi har et, kan vi let beregne det andet ved blot at vende output. Vi inverterer kun output, hvis den ene pin ændrer sig og ikke den anden, vi kan vælge en vilkårligt.
2) selve diagrammet er simpelthen XOR for S1- og S2 -signalerne. (det andet diagram er IKKE af dette).
Nu er forståelsen af koden enkel.
// læs parallelt i PORT // husk tilstødende par tilhører samme encoder -tilstand = PINB & 0x3f; // hvilke pins har ændret sig, hvis nogen diff = hold ^ tilstand; // XOR tilstødende S1 og S2 signaler for at få sandhedstabel // den letteste måde er at lave en kopi af den aktuelle tilstand // og flytte den til højre med et bit opslag = tilstand >> 1; // nu er bits justeret til XOR dir = opslag ^ tilstand; // husk, tabellen skal vendes, hvis en // af inputene forblev konstant, vi har ikke brug for en IF // -sætning til dette. I øjeblikket er den ønskede retningsbit // højre bit for hvert par i 'dir' -variablen // venstre bit er meningsløs //' diff '-variablen har den bit, der ændrede' set '// så vi enten har '01' eller '10' // XOR dette med 'dir' byte vil enten // invertere eller ikke den meningsfulde bit. dir ^= diff; // opdater nu hold variabel hold = tilstand; // hvis en bit har ændret sig til denne encoder hvis (diff & 0x03) {// bestemme retningen hvis (dir & 0x01) {// baseret på din hadware og ledninger enten ++ eller ---z; } andet {++ z; }} // ditto for resten hvis (diff & 0x0c) {if (dir & 0x04) {++ y; } andet { -y; }} if (diff & 0x30) {if (dir & 0x10) {--x; } andet {++ x; }}
Når der trykkes på knappen, sender vi den aktuelle XYZ -værdi til et terminalprogram.
De serielle data er langsomme, men under normal drift ændres positionerne for koderne alligevel ikke i løbet af denne tid.
Dataene sendes som råtællinger. Du kan lave matematik og sende data i mm eller tommer osv. Jeg finder råværdier lige så gode, fordi vi kan skalere objektet senere i software.
Trin 5: Første scanning
![Første scanning Første scanning](https://i.howwhatproduce.com/images/009/image-25579-11-j.webp)
![Første scanning Første scanning](https://i.howwhatproduce.com/images/009/image-25579-12-j.webp)
![Første scanning Første scanning](https://i.howwhatproduce.com/images/009/image-25579-13-j.webp)
![Første scanning Første scanning](https://i.howwhatproduce.com/images/009/image-25579-14-j.webp)
Det er en langsom proces at samle punkterne, jeg gulvfører sonden i øverste venstre hjørne og nulstiller Arduino.
Dette nuller positionen som hjem.
Flyt derefter sonden til placeringen på målet, hold den stille og tryk på knappen 'snapshot'.
For dette temmelig store prøveemne tog jeg kun ~ 140 point, så detaljer er ikke store på det endelige produkt.
Gem dataene i en. PCD -fil, og tilføj overskriften
#. PCD v.7 - Point Cloud Data filformatVERSION.7 FELTER x y z STØRRELSE 4 4 4 TYPE F F F TÆL 1 1 1 BREDDE (dit pointtal) HØJDE 1 VIEWPOINT 0 0 0 1 0 0 0 PUNKTER (dit pointtal)
Sæt din pointtælling i overskriften, dette er let for enhver editor, der giver dig linjenumre.
Over prikkerne kan ses i freeCad, eksporteres de derefter fra freeCad som. PLY -fil.
Åbn. PLY på MeshLab og overflade objektet. Færdig!!
Anbefalede:
DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin
![DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin](https://i.howwhatproduce.com/images/001/image-1099-j.webp)
DIY || Sådan laver du en edderkoprobot, der kan styres ved hjælp af smartphone Brug af Arduino Uno: Mens du laver en edderkoprobot, kan man lære så mange ting om robotik. Ligesom at lave robotter er underholdende såvel som udfordrende. I denne video vil vi vise dig, hvordan du laver en Spider -robot, som vi kan betjene ved hjælp af vores smartphone (Androi
PA1 DIY Tube Preamp: Effektivt bygget med bjærgede komponenter: 13 trin
![PA1 DIY Tube Preamp: Effektivt bygget med bjærgede komponenter: 13 trin PA1 DIY Tube Preamp: Effektivt bygget med bjærgede komponenter: 13 trin](https://i.howwhatproduce.com/images/005/image-14437-j.webp)
PA1 DIY Tube Preamp: Effektivt bygget med bjærgede komponenter: Der er masser af ressourcer til at bygge rørforforstærkere på nettet og på tryk, så jeg tænkte, at jeg ville dele noget lidt anderledes. Denne instruktive dækker konstruktionen af en open source tube forforstærker til mit design, og ikke kun er dette en u
Sådan bruges industrielle encodere med Arduino: 6 trin
![Sådan bruges industrielle encodere med Arduino: 6 trin Sådan bruges industrielle encodere med Arduino: 6 trin](https://i.howwhatproduce.com/images/009/image-25946-j.webp)
Sådan bruges industrielle encodere med Arduino: Inkrementelle encodere bruges ofte til industrielle applikationer som robotik eller positioneringssporing. Encodere til industrielle applikationer leveres for det meste med et differentielt RS422 -interface. Jeg vil i dette lille projekt vise, hvordan man bruger en industriel
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: 4 trin
![Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: 4 trin Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: 4 trin](https://i.howwhatproduce.com/images/009/image-26759-j.webp)
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: Hej, jeg er Rithik. Vi kommer til at lave en internetstyret LED ved hjælp af din telefon. Vi kommer til at bruge software som Arduino IDE og Blynk.Det er enkelt, og hvis det lykkedes dig, kan du styre så mange elektroniske komponenter, du ønskerTing We Need: Hardware:
Sådan laver du en drone ved hjælp af Arduino UNO - Lav en quadcopter ved hjælp af mikrokontroller: 8 trin (med billeder)
![Sådan laver du en drone ved hjælp af Arduino UNO - Lav en quadcopter ved hjælp af mikrokontroller: 8 trin (med billeder) Sådan laver du en drone ved hjælp af Arduino UNO - Lav en quadcopter ved hjælp af mikrokontroller: 8 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-210-31-j.webp)
Sådan laver du en drone ved hjælp af Arduino UNO | Lav en Quadcopter ved hjælp af mikrokontroller: Introduktion Besøg min Youtube -kanal En Drone er en meget dyr gadget (produkt) at købe. I dette indlæg vil jeg diskutere, hvordan jeg gør det billigt ?? Og hvordan kan du lave din egen sådan til en billig pris … Nå i Indien alle materialer (motorer, ESC'er