Innehållsförteckning:
- Steg 1: Hårdvara och saker
- Steg 2: Elektronik
- Steg 3: Förbereda musen
- Steg 4: Källkoden
- Steg 5: Video
Video: 3D AIR -mus - Arduino + Bearbetning: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:48
3D AIR -mus | Arduino + ProcessingJag är student i industriell design och förra året som en del av kursen "Technology as RAW materiel" byggde jag detta projekt som mitt sista arbete. Jag arbetar mestadels med SolidWorks, en CAD -programvara för design och konstruktion. Rotera en solid kropp på skärmen görs med hjälp av den mellersta musknappen. Jag letade efter något mer intuitivt. Så här slutade jag med 3D -luftmusen, där den faktiska rotationen av ett objekt görs genom att flytta musen i mitten av luften på alla tre axlarna - på samma sätt som du skulle rotera objektet om du höll det i handen. Jag använde Arduino, ett par sensorer och en Processing sketch. skriv en om du vet hur:)- Eftersom all hårdvara inte var min, är den faktiska 3D-musen borta, och jag använder några foton och en video för att försöka få lite mening i allt detta och för att ge dig någon idé om du vill försöka bygga en själv … Njut av den … (Det är min första instruerbara) Här är en videodemo av det färdiga projektet
Steg 1: Hårdvara och saker
Det är inte det billigaste Instructable eftersom det är baserat på en 3 -axlig accelerometer + kompasssensor. Saker du behöver:* En mus - en begagnad är bättre (bara för att den är använd och billigare), vilken mus som helst ska göra. Du behöver ha lite utrymme för att hysa sensorerna och några extra ledningar, så gå inte för extra smala / extra små möss.* Kompassmodul med lutningskompensation - HMC634 - Detta är den 3 -axliga sensorn, köpt på SpurkFun för ~ 149 $* Logic Level Converter - ett måste! Eftersom Arduino är 5V och 3 -axelsensorn är 3.3V behöver du en av dem för att konvertera 5V till 3.3V. Den har ett stort namn, men kostar bara $ 1,95 på SpurkFun.* Stor optisk detektor / fototransistor - Detta är en enkel optisk sensor som används i detta projekt för att upptäcka när musen lyfts från arbetsytan. Köpt på SpurkFun för $ 2,25 Om du inte har tillräckligt med utrymme för att hysa den här inuti din valda mus kan du använda den här, mindre och billigare. * En (1) LED - strunt i färgen, ultraljus fungerar bättre.* 2 motstånd - en (1) x 100Ω och en (1) x 100KΩ (för den optiska sensorn)* Arduino -kort - DA! Jag använde modellen Diecimila. En nyare Duemilanove finns tillgänglig på SpurkFun för cirka $ 29,95 (borde fungera också) + Arduino -programvara installerad.* Processingsprogramvara installerat.* Projektets källkod (Oroa dig inte, du kommer att ladda ner den på en sekund.) Plus: Några varmt lim (för att fixa saker på plats) Ett par små skruvar. Om 10 cm av ett 6 mm (Dia.) träankare. Några extra trådar. Lödkolv. Något att skära plasten med använde jag en skärkniv och en fil (FÖR att forma). ("Ok, hata mig inte för det här steget, engelska är mitt andra språk, om jag har fel det här, jag är ledsen, jag är säker på att du kommer att förstå vad jag gör om på en sekund. du ser det på bilder ")
Steg 2: Elektronik
Allt måste lödas ihop … På ett sätt … OBS: 3 -axelsensorn är en dyr liten sak. Kontrollera kablarna innan du sätter igång allt … Se schemat för alla kablar som används i detta projekt. Den bifogade källkoden kan bara fungera om du använder samma pin -nummer som jag gjorde, men ändra dem gärna när du ansluter så länge du ändrar lämpliga nummer i koden. Ansluta 3 -axelsensorn till den logiska nivåomvandlaren: 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 till Arduino: Se bifogad bild Digital in = Pin 11 på ArduinoLED: GND till några GND (jag använde en av den optiska sensorn)+ till Arduino PIN 13 (Detta gjordes eftersom denna stift redan har ett inbyggt motstånd, om du använder ett annat, se till att använda ett motstånd så att du inte bränner lysdioden)
Steg 3: Förbereda musen
Det är här sensorerna hittar sin plats inuti musens hus. Hitta det bästa stället för att fixa sensorn med 3 axlar. Se till att den är jämn och tänk på orienteringen (Du vet när du har sensorn i handen) Du kan fixa den hur du vill, jag använde 2 korta bitar av träankret, borrade för att acceptera de 2 små skruvarna, och varmt limmade på musens huvudkort. För den optiska sensorn formar du ett rektangulärt hål längst ner på musen, tanken är att sensorn ska "se" tabellen hela tiden. När musen lyfts och sensortillståndet är "öppet" (ingen tabell att se) växlar musen till 3D -läge (kör bearbetningsskissen) Forma ett annat hål för att dra de extra ledningarna (från sensorerna till Arduino) ut ur plasthus. Min var placerad på höger sida av musen. Fixera lysdioden där den kommer att visas. I detta projekt är lysdioden 3D-lägesindikatorn. Jag placerar mitt bredvid silikonmushjulet. När musen lyftes hade hjulet en fin blå glöd.
Steg 4: Källkoden
Koden för Arduino skrevs av Shachar Geiger, min lärare, och modifierades av mig för detta projekt. 3D -kubkoden är den grundläggande koden som finns på bearbetningswebbplatsen. Jag ändrade det lite. I koden konverterar denna bit den råa informationen från sensorn (vanligtvis -180 till 180 x 10) till 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); Informationen från sensorn och Arduino går till bearbetningsskissen för varje separat axel, men med en föregående axelbokstav (för exp. X12 Y200 Z130) tappar följande kod bokstaven och lämnar endast de värden som ska skickas till COM port while (port.available () == 0) {} char reading = 0; while (reading! = 'x') {while (port.available () == 0) {} reading = (char) port.read ();} X = port.read (); while (läsning! = 'Y') {while (port.available () == 0) {} reading = (char) port.read ();} Y = port.read (); while (läsning! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Denna bit kod tappar alla negativa värden … if ((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 bifogade ZIP -filen innehöll både Arduino- och behandlingskod
Steg 5: Video
Det är det … Det här är det färdiga projektet i en video. Det finns en mindre fel (du kan se att kuben ibland "hoppar" i videon), Detta är på grund av Z -axeln, kanske inte händer dig …
Rekommenderad:
Interaktiv LED -kupol med Fadecandy, bearbetning och Kinect: 24 steg (med bilder)
Interaktiv LED -kupol med Fadecandy, Processing och Kinect: WhatWhen in Dome är en 4,2 m geodetisk kupol täckt med 4378 lysdioder. Lysdioderna är alla individuellt mappade och adresserbara. De styrs av Fadecandy och Processing på ett Windows -skrivbord. En Kinect är fäst vid en av kupolens stag, så
Hur man kontrollerar adresserbara lysdioder med Fadecandy och bearbetning: 15 steg (med bilder)
Så här kontrollerar du adresserbara lysdioder med Fadecandy och bearbetning: WhatThis är en steg-för-steg-handledning om hur du använder Fadecandy och Processing för att styra adresserbara lysdioder. Fadecandy är en LED-drivrutin som kan styra upp till 8 remsor med 64 pixlar vardera. (Du kan ansluta flera Fadecandys till en dator för att öka
Bluetooth och IMU med Tactigon Board - Bearbetning: 7 steg
Bluetooth och IMU Med Tactigon Board - Bearbetning: Denna serie artiklar kommer att förklara hur man använder Tactigons integrerade sensorer och kommunikationsgränssnitt för att skapa en enkel gestkontroller. Källkod tillgänglig här på GitHub I den här artikeln kommer vi att lära oss hur att använda simp
Nodmcu RFID -närvaroserver med bearbetning: 4 steg
Nodmcu RFID -närvaroserver med bearbetning: Ett coolt sätt att markera närvaro
Vänd bearbetning på DMS CNC -routern: 5 steg (med bilder)
Vändbearbetning på DMS CNC-routern: Efter att ha funderat på potentialen för 3-axlig flipbearbetning bestämde jag mig för att konstruera en tredimensionell reliefmålning av laminerad plywood. Denna del skulle kunna ses från båda sidor, och även om de två sidorna skulle vara relaterade till varandra