Virtual 3D Device Port – SU15-30-Communicatie naar Arduino

Virtual-3D-Device-port-SU15-logo

Voor dit voorbeeld had ik hulp in moeten roepen op het forum van sketchucation, het blijkt namelijk helemaal NIET eenvoudig te zijn om de status 0.00 t/m 1.00 van een scharnier of servo uit te lezen in SketchUp 2015, er moeten diverse wiskundige berekeningen gemaakt worden om het aantal graden te onttrekken.

Op deze pagina kun je eenvoudig “copy & paste” voorbeelden vinden, welke je in het script gedeelte kan zetten van een object.
Het voorbeeld uit het forum is gemaakt in SU2013, ik heb deze omgezet in SU 2015

Getallen weergeven

Om het allemaal wat mooier te maken kun je “logLine” gebruiken, dit zijn “log” regels die verschijnen aan de linkerkant van het beeld, dat kan met dit stukje code:

Daarnaast moet je wel de TEXT attributen weghalen, anders wordt het een wirwar op je scherm, de totale code in de “script” sectie ziet er dan zo uit:

Virtual 3D Device Port - SU08-30-Communicatie naar Arduino screen 02

Gegevens naar seriële poort schrijven

Om nu de gegevens 0.00 t/m 1.00 naar de arduino te schrijven via de seriële poort, heb je de volgende Ruby code nodig in de volgende blokken onder “scripted”:

De complete code

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.