Lego/Scheme - PowerPoint PPT Presentation

About This Presentation
Title:

Lego/Scheme

Description:

Lego Mindcontrol. Visual Basic output from LegoScheme. Features. 10 concurrent tasks ... Requires Lego Mindcontrol. Tail-recursive ONLY and without parameters ... – PowerPoint PPT presentation

Number of Views:149
Avg rating:3.0/5.0
Slides: 9
Provided by: rustybur
Learn more at: https://www.csh.rit.edu
Category:
Tags: lego | petite | scheme

less

Transcript and Presenter's Notes

Title: Lego/Scheme


1
Lego/Scheme
  • By Rusty Burchfield and Brent Hepburn

2
Background
  • Limited implementation of Scheme for the standard
    firmware
  • Developed at Indiana University by three CS
    undergraduates
  • Developed start to finish in three days

3
Environment
  • Petite Chez Scheme 6.1
  • LegoScheme compiler
  • LegoScheme source
  • Lego Mindcontrol
  • Visual Basic output from LegoScheme

4
Features
  • 10 concurrent tasks
  • Support for most built-in scheme functions
  • Support for lambda definitions
  • Functions defined for direct interaction with RCX

5
Limitations
  • Requires Lego Mindcontrol
  • Tail-recursive ONLY and without parameters
  • Limited support for bindings
  • Only 8 functions
  • Only 30 signed integers available
  • Concurrency issues

6
Example
  • (define task_zero
  • (lambda ()
  • (setup-sensor 1 'reflection 'percent)
  • (set-engine-direction "02" 'forward)
  • (set-engine-speed "02" 4)
  • (set-engine-on/off "02" 'on)
  • (task_one)
  • (task_two)
  • (task_three)))
  • (define task_one
  • (lambda ()
  • (let ((x (read-from-sensor 0)) (y
    (read-from-sensor 2)))
  • (if ( x t)
  • (set-engine-on/off "02" 'off))
  • (if ( y t)
  • (flip-engine-direction "02"))
  • (task_one))))
  • (define task_two
  • (lambda ()
  • (wait 500)
  • (flip-engine-direction "0")
  • (wait 200)
  • (flip-engine-direction "0")
  • (wait 500)
  • (flip-engine-direction "2")
  • (wait 200)
  • (flip-engine-direction "2")
  • (task_two))
  • (define task_three
  • (lambda ()
  • (let ((z (read-from-sensor 1)))
  • (if (gt z 50) (play-system-sound 'fast-slide-up)
    (task_three)))))

7
Conclusion
  • Difficult to use
  • Many restrictions
  • Hard to setup
  • Lacking the power of Scheme

8
Resources
  • References
  • http//www.cs.indiana.edu/mtwagner/legoscheme/
  • http//home.zonnet.nl/ericbrok/legomind/projects/r
    obo/mindcontrol.htm
  • More Information
  • http//www.cs.rit.edu/bah5108/
Write a Comment
User Comments (0)
About PowerShow.com