Virtual 3D Device Port – SU08-31-Servo aansturen (SG90)
Het vorige hoofdstuk (30 – communicatie naar Arduino) liet zien hoe je van SketchUp kan communiceren via de seriële poort naar de Arduino, we gaan daar nu een servo (sg90) mee aansturen.
De hendel uit het vorige hoofdstuk stuurt getallen tussen de 0.00 en 1.00 naar de arduino, met de servo arduino code kunnen we de servo aansturen met een getal tussen de 0 en 180.
SG90 servo aansluiten
Sluit de SG90 servo aan volgens onderstaand schema:
Upload de volgende code naar de Arduino om de servo te bedienen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include <Servo.h> String readString; // Creeer een servo object om de servo aan te sturen. Servo mijnservo; void setup() { // Start de seriel poort op 9600 baud. Serial.begin(9600); // Configureer de arduino pin voor de datakabel van de servo. mijnservo.attach(9); } void loop() { while (Serial.available()) { // Even wachten zodat de buffer zich kan vullen. delay(3); // Kijk of er seriele gegevens binnenkomen. if (Serial.available() >0) { // Lees 1 byte van de seriele buffer. char c = Serial.read(); // Plaats de ingelezen byte achter de rest (om een string te maken). readString += c; } } if (readString.length() >0) { // Lees de positie in van de seriele poort, maak er een FLOAT getal van (toFloat). // Inkomend x 100, de functie hieronder MAP kan geen float nummers aan. int inkomend = readString.toFloat() * 100; // maakt de arduino een verhoudig tussen 0 en 180. int positie = map(inkomend, 0, 100, 0, 180); // Zet de servo in de opgegeven positie. mijnservo.write(positie); // Maak de buffer weer leeg. readString = ""; } } |
De servo testen
Open de Arduino monitor en voer een getal in tussen de 0.00 en 1.00 en druk op enter, doormiddel het gebruik van de MAP functie in de Arduino code kun je waarnemen dat:
0 = 180 graden
0.75 = 135 graden
0.5 = 90 graden
0.25 = 45 graden
1 = 0 graden
Sketchup starten om de servo aan te sturen.
Het enige wat je nu nog moet doen is SketchUp starten met het “hendel” script, zoals je aan de hendel trekt gaat de servo ook bewegen
Ps. vergeet niet de seriële poort aan te passen naar je eigen situatie (in het python script)
Hoe werkt het?
Dit werkt nu via een seriële verbinding tussen de computer en de Arduino , de computer stuurt getallen (FLOAT) tussen 0.00 en 1.00.
In Sketchup SketchyPhysics is:
– 0.00 de status van het object opgegeven bij de MIN waarde (bijvoorbeeld -90 graden)
– 1.00 de status van het object opgegeven bij de MAX waarde (bijvoorbeeld 90 graden)
Daaruit volgt dat tussen 0.00 en 1.00, 180 graden zit, omdat sketchup met stapjes van 0.01 werkt zijn er 100 stapjes dus 1,8 graden per stapje.
- SketchyPhysics - SU08-32-RGB LED aansturen (sketchup).7z 46,90 kb
- SketchyPhysics - SU08-32-RGB LED aansturen (ruby-python scripts).ino.7z 1,16 kb
- SketchyPhysics - SU08-32-RGB LED aansturen (arduino script).ino.7z 0,80 kb
- SketchyPhysics - SU08-31-Servo aansturen (SG90) (arduino script).ino.7z 0,82 kb
- SketchyPhysics - SU08-30-Hendel status voorbeeld compleet naar Arduino (sketchup 8).skp.7z 19,00 kb
- SketchyPhysics - SU08-30-Hendel status voorbeeld compleet naar Arduino (ruby-python script).rb.7z 0,93 kb
- SketchyPhysics - SU08-30-Hendel status voorbeeld compleet (sketchup 8).skp.7z 18,47 kb
- SketchyPhysics - SU08-30-Hendel status voorbeeld compleet (ruby-python script).rb.7z 0,75 kb
- SketchyPhysics - SU08-30-Hendel status voorbeeld (sketchup 2014).skp.7z 18,46 kb
- SketchyPhysics - SU08-30-Hendel orgineel voorbeeld omgezet (sketchup 8).skp.7z 17,68 kb
- SketchyPhysics - SU08-30-Hendel orgineel voorbeeld (sketchup 2013).skp.7z 24,89 kb
- SketchyPhysics - SU08-22-Accelerometer (ADXL345) (sketchup).skp.7z 53,98 kb
- SketchyPhysics - SU08-22-Accelerometer (ADXL345) (ruby-python script).rb.7z 0,67 kb
- SketchyPhysics - SU08-22-Accelerometer (ADXL345) (arduino script).ino.7z 1,52 kb
- SketchyPhysics - SU08-21-Virtuele Potmeter (sketchup).skp.7z 34,45 kb
- SketchyPhysics - SU08-21-Virtuele Potmeter (ruby-python script).rb.7z 0,56 kb
- SketchyPhysics - SU08-21-Virtuele Potmeter (arduino script).ino.7z 0,60 kb
- SketchyPhysics - SU08-21-Potmeter orgineel model (sketchup).skp.7z 91,66 kb
- SketchyPhysics - SU08-20-Communicatie naar SU (sketchup).skp.7z 14,91 kb
- SketchyPhysics - SU08-20-Communicatie naar SU (ruby-python script).rb.7z 0,59 kb
- SketchyPhysics - SU08-20-Communicatie naar SU (arduino script).ino.7z 0,33 kb
- SketchyPhysics - SU08-12-Waarde uitlezen van object voorbeeld van forum (sketchup).7z 61,51 kb
- SketchyPhysics - SU08-10-Basis oefening (sketchup).skp.7z 14,31 kb