Innholdsfortegnelse:
- Trinn 1: Maskinvare og ting
- Trinn 2: Elektronikk
- Trinn 3: Forberede musen
- Trinn 4: Kildekoden
- Trinn 5: Video
Video: 3D AIR -mus - Arduino + behandling: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:26
3D AIR mus | Arduino + ProcessingJeg er student i industriell design, og i fjor som en del av kurset "Technology as RAW materiel" bygde jeg dette prosjektet som mitt siste arbeid. Jeg jobber mesteparten av tiden med SolidWorks, en CAD -programvare for design og engenering. Rotere en solid kropp på skjermen gjøres med den midterste museknappen. Jeg var på utkikk etter noe mer intuitivt. Slik endte jeg opp med 3D -luftmusen, der den faktiske rotasjonen av et objekt gjøres ved å flytte musen midt i luften på alle 3 aksene - på samme måte som du ville rotere objektet hvis du holdt det i hånden. Jeg brukte Arduino, et par sensorer og en prosessskisse. MERKNADER:- Fra nå av er dette bare en demonstrasjon av konseptet, siden det ikke er noen faktisk plug-in for å jobbe med SolidWork (men selvfølgelig er du velkommen til å skriv en hvis du vet hvordan:)- Siden all maskinvaren ikke var min, er den faktiske 3D-musen for lengst borte, og jeg bruker noen bilder og en video for å prøve å gi mening i alt dette, og for å gi deg noen ide om du vil prøve å bygge en selv … Nyt den … (Det er min første instruerbare) Her er en videodemo av det ferdige prosjektet
Trinn 1: Maskinvare og ting
Det er ikke den billigste instruerbare siden den er basert på et 3 -akset akselerometer + kompass sensor. Ting du trenger:* En mus - en brukt er bedre (bare fordi den er brukt og billigere), enhver mus bør gjøre. Du trenger å ha litt plass til å huse sensorene og noen ekstra ledninger, så ikke gå for ekstra slanke / ekstra små mus.* Kompassmodul med vippekompensasjon - HMC634 - Dette er den 3 -aksede sensoren, kjøpt på SpurkFun for ~ $ 149* Logic Level Converter - et must! Siden Arduino er 5V og 3 -akses sensor er 3.3V, trenger du en av dem for å konvertere 5V til 3.3V. Den har et stort navn, men koster bare $ 1,95 på SpurkFun.* Stor optisk detektor / fototransistor - Dette er en enkel optisk sensor, som brukes i dette prosjektet for å oppdage når musen løftes fra arbeidsflaten. Kjøpt på SpurkFun for $ 2,25 Hvis du ikke har nok plass til å huse denne inne i musen du har valgt, kan du bruke denne, mindre og billigere. * En (1) LED - uansett fargen, ultralyst vil fungere bedre.* 2 motstander - En (1) x 100Ω og en (1) x 100KΩ (for den optiske sensoren)* Arduino -kort - DA! Jeg brukte Diecimila -modellen. En nyere Duemilanove er tilgjengelig på SpurkFun for omtrent $ 29,95 (skulle fungere også) + installert Arduino -programvare.* Processings -programvare installert.* Prosjektets kildekode (Ikke bekymre deg, du kommer til å laste den ned på et sekund.) Pluss: Noen varmt lim (for å fikse ting på plass) Et par bittesmå skruer. Omtrent 10 cm av et 6 mm (Dia.) treanker. Noen ekstra ledninger. Loddejern. Noe å kutte plasten med brukte jeg en skjærekniv og en fil (FOR FORMING). ("Ok, ikke hat meg for dette trinnet, engelsk er mitt andre språk. Hvis jeg tok feil, beklager jeg, du er sikker på at du forstår hva jeg tar til om et sekund. du ser det på bildene ")
Trinn 2: Elektronikk
Alt må loddes sammen … På en måte … MERK: 3 -aksen -sensoren er en dyr liten ting. Sjekk ledningene før du slår på alt … Se skjemaene som er vedlagt for alle ledningene som brukes i dette prosjektet. Den vedlagte kildekoden kan bare fungere hvis du bruker de samme pin -numrene som jeg gjorde, men du kan gjerne endre dem når du kobler til så lenge du endrer de riktige tallene i koden. Koble sensoren med 3 akser til den logiske nivåomformeren: Sensor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Converter TXI (Chan1) Converter TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Converter TXI (Chan2) Converter TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (minst en av dem) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3Optisk sensor til Arduino: Se vedlagt bilde Digital in = Pin 11 på ArduinoLED: GND til noen GND (jeg brukte en av de optiske sensorene)+ til Arduino PIN 13 (Dette ble gjort siden denne pinnen allerede har en innebygd motstand, hvis du bruker en annen, må du bruke en motstand slik at du ikke brenner LED-en)
Trinn 3: Forberede musen
Det er her sensorene finner sin plass inne i musens hus. Finn det beste stedet å fikse sensoren med 3 akser. Sørg for at den er jevnet og vær oppmerksom på retningen (Du vet når du har sensoren i hånden) Du kan fikse den slik du vil, jeg brukte 2 korte stykker av treankeret, boret for å godta de 2 små skruene, og varmt limt til musens hovedkort. For den optiske sensoren, form et rektangulært hull i bunnen av musen, er tanken at sensoren skal "se" tabellen hele tiden. Når musen løftes og sensortilstanden er "åpen" (ingen tabell å se) bytter musen til 3D -modus (kjører behandlingsskissen) Form et annet hull for å føre de ekstra ledningene (fra sensorene til Arduino) ut av plasthus. Min var plassert på høyre side av musen. Fest LED -en hvor den vil vise. I dette prosjektet er LED-indikatoren 3D-modus. Jeg plasserer min ved siden av silikonhjulet. Når musen løftes, hadde hjulet en fin blå glød.
Trinn 4: Kildekoden
Koden for Arduino ble skrevet av Shachar Geiger, læreren min, og ble endret av meg for dette prosjektet. 3D -kubekoden er den grunnleggende koden som finnes på nettstedet Processing. Jeg endret det litt. I koden konverterer denne delen den rå informasjonen som kommer fra sensoren (vanligvis -180 til 180 x 10) til 0-255 getHeading (); Serial.write ('x'); x = (x +1800) / 14; Serial.write (x); Serial.write ('y'); y = (y+1800) / 14; Serial.write (y); Serial.write ('z'); z = (z+1800) / 14; Serial.write (z); Informasjonen fra sensoren og Arduino går til behandlingsskissen for hver separate akse, men med en forrige aksebokstav (for eksp. X12 Y200 Z130), slipper følgende kode bokstaven og overlater bare verdiene som skal sendes til COM port mens (port.available () == 0) {} char reading = 0; while (reading! = 'x') {while (port.available () == 0) {} reading = (char) port.read ();} X = port.read (); while (reading! = 'Y') {while (port.available () == 0) {} reading = (char) port.read ();} Y = port.read (); while (reading! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Denne delen av koden slipper alle de negative verdiene … hvis ((X! = -1) && (Y! = -1) && (Z! = -1)) {rotateZ (-(float) Y/25.0); rotateX ((float) X/25.0); rotateY ((float) Z/25.0); pX = X; pY = Y; pZ = Z;} else {rotateZ (-(float) pY/25.0); rotateX ((float) pX /25.0);rotateY((float)pZ/25.0);} Den vedlagte ZIP -filen inneholdt både Arduino og behandlingskode
Trinn 5: Video
Det er det … Dette er det ferdige prosjektet i en video. Det er en liten feil (Du kan se at kuben noen ganger "hopper" i videoen), Dette er på grunn av Z -aksen, det kan hende at det ikke skjer med deg …
Anbefalt:
Robotisk behandling med det Briller: 5 trinn
Robotic DEAL WITH IT -briller: Dette prosjektet viser deg hvordan du lager Robotic DEAL WITH IT -briller. Inkludert i dette prosjektet er et 3D -trykt feste som vil lage en lineær aktuator hvis den kombineres med billige robotstativ og tannhjulsdeler. Start med å laste ned feste her: https: //www.th
Bluetooth og IMU Med Tactigon Board - Behandling: 7 trinn
Bluetooth og IMU Med Tactigon Board - Behandling: Denne artikkelserien vil forklare hvordan du bruker Tactigons integrerte sensorer og kommunikasjonsgrensesnitt for å lage en enkel gestkontroller. Kildekode tilgjengelig her på GitHub I denne artikkelen skal vi lære hvordan å bruke simp
Nodmcu RFID -deltakerserver med behandling: 4 trinn
Nodmcu RFID -deltakerserver med behandling: En kul måte å markere oppmøte på
Tic Tac Toe m/ behandling og tastatur: 3 trinn
Tic Tac Toe W/ Processing & Keypad: I dette prosjektet skal vi bygge et Tic-Tac-Toe-spill ved hjelp av en Arduino Uno og tastaturet. Spillet lar deg spille Tic-Tac-Toe, og deretter lysdioden som tilsvarer vinneren vil lyse opp. Nødvendige materialer: 1 - Arduino Uno1 - Tastatur13 - Wires2 - 22