Inhoudsopgave:

3D AIR-muis - Arduino + verwerking: 5 stappen
3D AIR-muis - Arduino + verwerking: 5 stappen

Video: 3D AIR-muis - Arduino + verwerking: 5 stappen

Video: 3D AIR-muis - Arduino + verwerking: 5 stappen
Video: Крутейший 5 осевой ЧПУ фрезер - Pocket NC V2-50 2024, November
Anonim
3D AIR-muis | Arduino + Verwerking
3D AIR-muis | Arduino + Verwerking

3D AIR-muis | Arduino + Processing Ik ben een student industrieel ontwerpen en vorig jaar heb ik dit project als onderdeel van een cursus genaamd "Technologie als RAW-materiaal" gebouwd als mijn laatste werk. Ik werk meestal met SolidWorks, een CAD-software voor ontwerp en engineering. Het roteren van een solide lichaam op het scherm gebeurt met de middelste muisknop. Ik was op zoek naar iets meer intuïtief. Dit is hoe ik uiteindelijk de 3D-luchtmuis heb gedaan, waarbij de daadwerkelijke rotatie van een object wordt gedaan door de muis in de lucht op alle 3 de assen te bewegen - op dezelfde manier waarop je het object zou draaien als je het in je hand zou houden. Ik heb de Arduino, een paar sensoren en een Processing-schets gebruikt. OPMERKINGEN: - Vanaf nu is dit slechts een demonstratie van het concept, omdat er geen echte plug-in is om met SolidWork te werken (maar voel je natuurlijk vrij om schrijf er een als je weet hoe:)- Aangezien alle hardware niet van mij was, is de eigenlijke 3D-muis al lang weg, en ik gebruik enkele foto's en een video om te proberen hier enige zin in te krijgen, en om je een idee als je wilt proberen er zelf een te bouwen … Geniet ervan … (Het is mijn eerste Instructable) Hier is een videodemo van het voltooide project

Stap 1: Hardware en zo

Hardware en spullen
Hardware en spullen
Hardware en spullen
Hardware en spullen
Hardware en spullen
Hardware en spullen
Hardware en spullen
Hardware en spullen

Het is niet de goedkoopste Instructable, want het is gebaseerd op een 3-assige accelerometer + kompassensor. Dingen die je nodig hebt: * Een muis - een gebruikte is beter (alleen omdat het gebruikt en goedkoper is), elke muis zou moeten doen. Je hebt wel wat ruimte nodig om de sensoren en wat extra draden te huisvesten, dus ga niet voor extra dunne / extra kleine muizen.* Compass Module met Tilt Compensation - HMC634 - Dit is de 3-assige sensor, gekocht bij SpurkFun voor ~ $149* Logic Level Converter - EEN MUST! Aangezien de Arduino 5V is en de 3-assige sensor 3,3V is, heb je er een nodig om de 5V om te zetten in 3,3V. Het heeft een grote naam, maar kost slechts $ 1,95 bij SpurkFun.* Grote optische detector / fototransistor - Dit is een eenvoudige optische sensor die in dit project wordt gebruikt om te detecteren wanneer de muis van het werkoppervlak wordt getild. Gekocht bij SpurkFun voor $ 2,25. Als je niet genoeg ruimte hebt om deze in de door jou gekozen muis te plaatsen, kun je deze kleiner en goedkoper gebruiken. * Eén (1) LED - let niet op de kleur, ultrahelder zal beter werken. * 2 weerstanden - één (1) x 100Ω en één (1) x 100 KΩ (voor de optische sensor) * Arduino-bord - DA! Ik heb het Diecimila-model gebruikt. Een nieuwere Duemilanove is verkrijgbaar bij SpurkFun voor ongeveer $ 29,95 (zou ook moeten werken) + Arduino-software geïnstalleerd. hete lijm (om dingen op hun plaats te bevestigen)Een paar kleine schroeven. Ongeveer 10cm van een 6mm (Dia.) houten anker. Wat extra draden. Soldeerbout. Iets om het plastic mee te snijden, ik gebruikte een snijmes en een vijl (VOOR vormgeven). ("Ok, haat me niet voor deze stap, Engels is mijn 2e taal, als ik deze verkeerd heb, het spijt me, ik weet zeker dat je zult begrijpen waar ik het over heb. wanneer je ziet het in foto's")

Stap 2: Elektronica

Elektronica
Elektronica
Elektronica
Elektronica

Alles moet aan elkaar worden gesoldeerd … In zekere zin … OPMERKING: de 3-assige sensor is een duur klein ding. Controleer de bedrading voordat u alles inschakelt … Zie de bijgevoegde schema's voor alle bedrading die in dit project wordt gebruikt. De bijgevoegde broncode kan alleen werken als je dezelfde pincodes gebruikt als ik, maar voel je vrij om deze te wijzigen wanneer je verbinding maakt, zolang je de juiste nummers in de code verandert. De 3-assige sensor aansluiten op de logische niveauconverter: 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 (minstens één van hen) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3Optische sensor naar Arduino: Zie bijgevoegde afbeelding Digital in = Pin 11 op de ArduinoLED:GND naar sommige GND (ik gebruikte een van de optische sensoren)+ naar Arduino PIN 13 (Dit werd gedaan omdat deze pin al een ingebouwde weerstand heeft, als je een andere gebruikt, zorg er dan voor dat je een weerstand gebruikt, zodat je de LED niet verbrandt)

Stap 3: De muis voorbereiden

De muis voorbereiden
De muis voorbereiden
De muis voorbereiden
De muis voorbereiden
De muis voorbereiden
De muis voorbereiden

Hier vinden de sensoren hun plaats in de behuizing van de muis. Vind de beste plek om de 3-assige sensor te bevestigen. Zorg ervoor dat het waterpas staat en let op de oriëntatie (je weet wanneer je de sensor in de hand hebt) Je kunt het op elke gewenste manier bevestigen, ik gebruikte 2 korte stukjes van het houten anker, geboord om de 2 kleine schroeven te accepteren, en warm gelijmd op het moederbord van de muis. Vorm voor de optische sensor een rechthoekig gat aan de onderkant van de muis, het idee is dat de sensor de tafel de hele tijd "ziet". Wanneer de muis wordt opgetild en de sensorstatus "open" is (geen tabel te zien) schakelt de muis over naar de 3D-modus (voert de Processing-schets uit) Vorm een ander gat om de extra draden (van de sensoren naar de Arduino) uit de kunststof behuizing. De mijne bevond zich aan de rechterkant van de muis. Bevestig de LED waar deze wordt weergegeven. In dit project is de LED de 3D-modus indicator. Ik plaats de mijne naast het siliconen muiswiel. Wanneer de muis wordt opgetild, had het wiel een mooie blauwe gloed.

Stap 4: De broncode

De code voor de Arduino is geschreven door Shachar Geiger, mijn leraar, en is door mij aangepast voor dit project. De 3D-kubuscode is de basiscode op de Processing-website. Ik heb het een beetje aangepast. In de code converteert dit blok de onbewerkte informatie die van de sensor komt (meestal -180 tot 180 x 10) naar 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); De informatie van de sensor en de Arduino gaat naar de Processing-schets voor elke afzonderlijke as, maar met een voorafgaande asletter (voor exp. X12 Y200 Z130), laat de volgende code de letter vallen en laat alleen de waarden achter die naar de COM moeten worden verzonden port while(port.available() == 0){}char reading = 0;while (reading!= 'x') {while(port.available() == 0){}reading = (char)port.read ();}X = port.read();while (lezing != 'y') {while(port.available() == 0){}reading = (char)port.read();}Y = poort.read();while (lezing != 'z') {while(port.available() == 0){}reading = (char)port.read();}Z = port.read(); Dit stuk code laat alle negatieve waarden vallen… 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);} Het bijgevoegde ZIP-bestand bevat zowel Arduino- als Processing-code

Stap 5: Video

Dat is het … Dit is het voltooide project in een video. Er is een kleine storing (je kunt zien dat de kubus soms "springt" in de video), Dit komt door de Z-as, misschien gebeurt dit jou niet…

Aanbevolen: