cricket (handy cricket)

20
Cricket (Handy Cricket) Kyeongseo Hwang (Mike) Nicholas Ver Hoeve

Upload: yeriel

Post on 21-Jan-2016

149 views

Category:

Documents


0 download

DESCRIPTION

Cricket (Handy Cricket). Kyeongseo Hwang (Mike) Nicholas Ver Hoeve. Agenda. About Cricket (HW) History of Logo (Built in interpreter) Intro to Cricket Logo Demo. About Cricket. LIGHT SENSOR. TOUCH SENSOR. MAG. REED SWITCH. IR SENSOR. DC MOTOR. BREAK BEAM SENSOR. History of Logo. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Cricket (Handy Cricket)

Cricket (Handy Cricket)

Kyeongseo Hwang (Mike)Nicholas Ver Hoeve

Page 2: Cricket (Handy Cricket)

Agenda About Cricket (HW) History of Logo (Built in

interpreter) Intro to Cricket Logo Demo

Page 3: Cricket (Handy Cricket)

About Cricket

LIGHT SENSOR

MAG. REED SWITCH

DC MOTOR

TOUCH SENSOR

IR SENSOR

BREAK BEAM SENSOR

Page 4: Cricket (Handy Cricket)

History of Logo Logo: Developed in BBN (a Cambridge

University research firm), in 1966 By Seymour Papert, Wally Feurzeig Modeled after LISP Now in multiple dialects; ExperLogo,

ARLogo, MIT StarLogo, NetLogo, etc. Cricket Logo developed in MIT by Brian

Silverman with Fred Martin beginning in 1995

Page 5: Cricket (Handy Cricket)

Intro to Cricket Logo Procedure definition with inputs and return values Global variables and local procedure inputs Control structures: if, repeat, and loop 16-bit number system: addition, subtraction,

multiplication, division, remainder, comparison, bit-wise operations, random function

Motor and sensor primitives Timing functions and tone-playing functions Data recording and playback primitives IR Communications primitives

Page 6: Cricket (Handy Cricket)

Intro to Cricket Logo

Page 7: Cricket (Handy Cricket)

Motor Command a, Motor A b, Motor B ab, Motor A and B on Selected motor On off Selected motor Off onfor # Selected motor

will turn on for #/10 secs.

thisway/ thatway Sets direction rd Reverses the

direction setpower # set power level

Page 8: Cricket (Handy Cricket)

Sensor Command switcha

return 1 if switched plugged into sensor A is pressed

switchb return 1 if switched plugged into

sensor A is pressed sensora

Report the value of sensor A 0~255 sensorb

Report the value of sensor B 0~255

Page 9: Cricket (Handy Cricket)

Timing and tone-playing Timing

ab, on wait 20 off ab, onfor 20 wait # timer resett

Tone-playing beep note 110 30

www.handyboard.com/cricket/program

Page 10: Cricket (Handy Cricket)

Control Structures repeat times [body] loop [body] if condition [body] ifelse condition [body-1] [body-2] waituntil [condition] stop(!) output returning_value

Page 11: Cricket (Handy Cricket)

Numbers 16 bit number system

-32768 ~ +32767 All arithmetic operators separated by a

space 3 + 4

Normal expression precedence rules are not used, evaluated left to right 3 + 5 * 7 = ?

(3 + (4 * 5)) = ?

Page 12: Cricket (Handy Cricket)

Number Operator (cont) + Infix addition - Infix subtraction * Infix multiplication / Infix division % Infix modulus (remainder after integer

division). < Infix LESS-THAN test.

Results in 1 if left-hand value is less than right-hand value; 0 otherwise.

Page 13: Cricket (Handy Cricket)

Number Operator (cont) > Infix GREATER-THAN test. Results in 1 if left-hand

value is greater-than than right-hand value; 0 otherwise. = Infix equality test.

Results in 1 if left-hand value is equal to right-hand value; 0 otherwise.

and Infix AND operation (bitwise). or Infix OR operation (bitwise). xor Infix exclusive-OR operation (bitwise). not prefix NOT operation (logical inversion, not bitwise). random Reports pseudo-random number from 0 to

32767. Use the modulus operator to reduce the range; e.g., (random %

100) yields a number from 0 to 99.

Page 14: Cricket (Handy Cricket)

Procedure Definition with inputto flash1 repeat 10 [a, onfor 5 wait 5] end

to flash2 :n repeat :n [a, onfor 5 wait 5] end

global [temp] to detect settemp sensora if temp < 30 [output 1] if temp < 50 [output 2] output 3 end

Page 15: Cricket (Handy Cricket)

Variables Global variable

global [variable-list] e.g. global [cat dog] Stored in RAM -> data recording and playback functions Integer only

Global-setting primitive setcar, setdog e.g. setcat 3 setcat cat + 1

Global Array array [clicks 10 clacks 15] Array indices start at 0 aget name index aset name index No buffer-overrun checking Stored consecutively in memory stored in the Cricket's non-volatile memory

Page 16: Cricket (Handy Cricket)

Data Recording and Playback

to take-data resetdp repeat 2500 [record sensora

wait 10] end resetdp setdp position erase # record value Recall

Page 17: Cricket (Handy Cricket)

Recursion

to fact :n if :n = 1 [output 1] output n * fact :n – 1 end -> repeat fact 3 [beep wait 1]

Normal Recursion has uncertain max depth, can be as low as 5

Supports Tail Recursion converting the recursive call into a goto statementto beep-forever beep wait 1 beep-forever end

Page 18: Cricket (Handy Cricket)

Multi-Tasking supports a limited form of multi-tasking One “background task”

repeatedly checks a condition When true it interrupts and processes

when [switcha] [beep] loop [a, onfor 5 rd] only one background task operating at any given

time. If a when statement is executed after the

background task has already been started, the subsequent when task supercedes the earlier one

To stop the background task from operating, use the primitive “whenoff”.

Page 19: Cricket (Handy Cricket)

Samples Files at

www.cs.rit.edu/~kxh7583/PLC/ Demo the multi-taking

IR communication between crickets Background Operation

Page 20: Cricket (Handy Cricket)

Reference www.handyboard.com/cricket http://gleasonresearch.com/ http://

lcs.www.media.mit.edu/people/fredm/projects/cricket/redlogo.html

http://www.papert.org/ http://www.mathsnet.net/logo/turtl

elogo/