RecursiveDrawBot

Therese Kuczynski
Son Nguyen
December 8, 2014

Overview

The robot has a marker attached to its back then moves in a recursive pattern and generate a recursive image.

Screenshot

Concepts Demonstrated

  • Recursion: is used to create procedure of the robot movement and generating recursive pictures.
  • Cond: Statement'' is used for responses of user input.
  • Set: to declare the command from file contents.
  • Filter: choosing between program messages.

External Technology and Libraries

Firmata Library: Racket library which control pins on the Arduino board from a racket program to

                 turn on and off each motor of the wheels.

Arduino: A microcontroller with analog and digital pins.

Espeak: Linux voice synthesis library

Pocketsphinx: Speech recognition library.

Motor Shield: Provides an interface between the micro controller and two Digital Currant( DC ) motors.

Favorite Lines of Code

  • Therese Kuczynski: This line of code chooses a message from a small database.

(define(say message syn-list)

  (robot-talk(cdr(filter(lambda(x)
                          (eq? (cons x) message))))))
  • Son Nguyen: This line of code generates a Koch snowflake fractal image.

(define (Koch k depth)

  (cond( ( < depth 1) (drive-forward k) (turn-off))
       ( else 
         ( Koch (/ k 3 ) ( - depth 1))
         (turn-left 2)  ;;60 degree  ;;turning is still not accurate still have to work on it beter
         ( Koch (/ k 4 ) ( - depth 1))
         (turn-right 3) ;;turning 120 degree       
         ( Koch (/ k 4 ) ( - depth 1))
         (turn-left 2) ;;turning 60 degree
         ( Koch (/ k 3 ) ( - depth 1))
         )
       )
  )

Technology Used Block Diagram

Additional Remarks

Please use this area to include any additional information you would like to include that did not fit into any of the previous categories.

The total write-up, including screen shot and block diagram, should be two to three pages in length (when printed).