9.0
top
← prev up next →

#lang rokit-racketπŸ”— i

This language allows you to code the Rokit SmartInventor 2 robotics kit from Robolink (robolink.com).

We use this in robotics classes at ThoughtSTEM.

This doc just contains a bunch of example code.

1Basic MovementπŸ”— i

#lang rokit-racket
 
(define(wait)
(delay5000))
 
(define(setup)
(enable-motors))
 
(define(loop)
(moveforward127)
(wait)
(movestop127)
(wait))

2Remote ControlπŸ”— i

#lang rokit-racket
 
(define(setup)
(enable-motors)
(enable-remote)
 
(buzzNOTE_C48)
(buzzNOTE_E48)
(buzzNOTE_G48))
 
(define(boost)
(moveforward127)
(delay1000))
 
(define(spin180)
(motorM1CW127)
(motorM2CW127)
(delay650)
(movestop0)
(delay200))
 
(define(zig-zag)
(repeat2
(motorM1CCW127)
(motorM2STOP0)
(delay400)
(motorM1STOP0)
(motorM2CW127)
(delay400)))
 
(define(loop)
(cond
[(=(read-remote)KEY_U)
(moveforward50)]
[(=(read-remote)KEY_D)
(movebackward50)]
[(=(read-remote)KEY_L)
(moveleft50)]
[(=(read-remote)KEY_R)
(moveright50)]
[(=(read-remote)KEY_C)
(boost)]
[(=(read-remote)KEY_F1)
(spin180)]
[(=(read-remote)KEY_F2)
(zig-zag)]
[else
(moveloose50)]))
 

3Analog ReadπŸ”— i

#lang rokit-racket
 
(defineleft-sensor0)
(definecenter-sensor0)
(defineright-sensor0)
 
(define(setup)
(enable-motors))
 
(define(loop)
(set!left-sensor(analog-read19))
(set!center-sensor(analog-read20))
(set!right-sensor(analog-read21))
 
(cond
[(<left-sensor500)(moveright50)]
[(<right-sensor500)(moveleft50)]
[(<center-sensor500)(moveleft50)]
[else(moveforward50)]))

4Digital WriteπŸ”— i

#lang rokit-racket
 
(define(setup)
(enable-motors)
 
(pin-mode13OUTPUT)
(pin-mode14OUTPUT)
(pin-mode15OUTPUT)
(pin-mode16OUTPUT)
(enable-remote)
 
(digital-write13HIGH)
(digital-write14HIGH)
(digital-write15HIGH)
(digital-write16HIGH))
 
(define(loop))

5Line followπŸ”— i

#lang rokit-racket
 
(defineleft-line-sensor#f)
(defineright-line-sensor#t)
 
(define(setup)
(enable-motors)
 
(pin-mode13INPUT)
(pin-mode16INPUT))
 
(define(loop)
(set!left-line-sensor(digital-read13))
(set!right-line-sensor(digital-read16))
 
(while(=left-line-sensorHIGH)
(motorM1CCW50)
(motorM2STOP0)
(set!left-line-sensor(digital-read13)))
 
(while(=right-line-sensorHIGH)
(motorM1STOP0)
(motorM2CW50)
(set!right-line-sensor(digital-read16))))

6Digital ReadπŸ”— i

#lang rokit-racket
 
(defineleft-sensor#f)
(defineright-sensor#f)
 
(define(setup)
(enable-motors)
(pin-mode11INPUT)
(pin-mode18INPUT))
 
(define(backup-and-turn-right)
(motorM1CW50)
(motorM2CCW50)
(delay333)
(motorM1CCW50)
(motorM2CCW50)
(delay333))
 
(define(backup-and-turn-left)
(motorM1CW50)
(motorM2CCW50)
(delay333)
(motorM1CW50)
(motorM2CW50)
(delay333))
 
(define(go-forward)
(motorM1CCW50)
(motorM2CW50))
 
(define(loop)
(set!left-sensor(digital-read11))
(set!right-sensor(digital-read18))
 
(cond
[(=left-sensor#f)(backup-and-turn-right)]
[(=right-sensor#f)(backup-and-turn-left)]
[else(go-forward)]))
top
← prev up next →

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /