Innehållsförteckning:

3D AIR -mus - Arduino + Bearbetning: 5 steg
3D AIR -mus - Arduino + Bearbetning: 5 steg

Video: 3D AIR -mus - Arduino + Bearbetning: 5 steg

Video: 3D AIR -mus - Arduino + Bearbetning: 5 steg
Video: ROBOROCK T7S Plus с 3D СКАНЕРОМ, станцией самоочистки и вибро-подъемной шваброй | Обзор ROBOROCK T7S 2024, Juli
Anonim
3D AIR -mus | Arduino + Bearbetning
3D AIR -mus | Arduino + Bearbetning

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

Hårdvara och grejer
Hårdvara och grejer
Hårdvara och grejer
Hårdvara och grejer
Hårdvara och grejer
Hårdvara och grejer
Hårdvara och grejer
Hårdvara och grejer

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

Elektronik
Elektronik
Elektronik
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

Förbereda musen
Förbereda musen
Förbereder musen
Förbereder musen
Förbereda musen
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: