Robotics with Elixir

Size: px
Start display at page:

Download "Robotics with Elixir"

Transcription

1 Meetup organized by Jean-François Cloutier Held at Big Room Studios, Portland, ME, USA Robotics with Elixir Part 1 Ghost in the Machine September 15, 2015

2 Lego Mindstorms The Greatest Toy Ever! And it got a whole lot better EV3 brick 1998 RCX 2006 NXT EV3 Faster CPU, more memory Linux! Bootable microsd card USB port Daisy chain up to 4 bricks Plug WiFi dongle

3 The programmable brick 4 sensor input ports 4 motor output ports Sensors and actuators 2 large motors 1 medium motor 1 color sensor 1 IR proximity sensor (with remote control) 1 touch sensor The goodies

4 And a whole bunch of Connectors Wheels, cogs, threads Etc. The goodies

5 Programming the EV3 The EV3 set comes with a customized version of LabView Visual programming? Snazzy! If you don't mind coding everything as one big sense and respond loop

6 OK it's not that bad but... We can do better. Blerch!

7 ev3dev.org to the rescue An updated LEGO Linux kernel (Debian) Bootable from a microsd card Can run most Debian packages apt-get install EV3 software rebuilt from the ground up Motor and sensor drivers use sysfs Exposed as character files Sensing = reading files Controlling = writing to files EV3 is now exposed to any and all programming languages running under Linux We can code the EV3 with Elixir!

8 Elixir and EV3 sitting in a tree Elixir/OTP = Functional Programming (FP) + Actor Model FP inputs function output No mutating state and no side-effects => simplicity and predictability OTP's Actor Model Linked processes communicating via self-contained messages Quarantined failures recovered through supervisor trees FP and (supervised) Actors are ideal for programming robots Or at least that's our working hypothesis

9 It's been done! Torben Hoffmann, CTO of Erlang Solutions, did it first So we'll do things a bit differently

10 But first, ev3dev and sysfs We'll be working with the tacho-motor and lego-sensor classes

11 sysfs: tacho-motor

12 tacho-motor commands Run commands Stop modes run-forever coast run-to-abs-pos brake run-to-rel-pos hold run-direct stop reset See doc at

13 tacho-motor specs, controls and state Specs (ro) driver_name count_per_rot commands stop_commands port_name Controls (rw) State (ro) duty_cycle_sp duty_cycle polarity position position_sp speed_sp speed speed_regulation state time_sp running ramping, stop_command holding, ramp_up_sp stalled ramp_down_sp command See doc at

14 Interacting with tacho-motors Large motor ssh cd /sys/class/tacho motor cd motor0 cat driver_name echo 50 > duty_cycle_sp echo run-forever > command echo stop > command Medium motor

15 sysfs: lego-sensor

16 Specs (ro) driver_name port_name modes num_values units lego-sensor specs, controls and values Controls (rw) mode See doc at State (ro) value<n>

17 Touch sensor Interacting with sensors Infrared sensor and remote control cd /sys/class/lego sensor cd sensor1 cat driver_name cat value0 cat modes echo IR SEEK > mode cat value0 cat value1 Color sensor

18 And Elixir in all this? Part 1 (this meetup) - Wrap ev3dev with immutable data and functions Hide the state mutations performed by sysfs (files act as global variables) Expose motors and sensors as static data Use functions to consume and produce (immutable) motors and sensors Part 2 (next meetup) - Use OTP to implement concurrent sense and control for autonomous robots Allocate a process to each sensor and motor to avoid race conditions, prevent damaging command sequences, detect state changes and emits events A central controller listens to events and drives a state machine that sends commands to motors Part 3 (and beyond) - Go nuts Complex event processing ( I am lost, I am stuck etc.)? Use a society of mind model (à la Pixar's Inside Out) instead of a central controller?

19 Modeling motors and sensors We can model the changing state of motors and sensors As mutable global variables is one way to model it (the non-fp way) Or as functions consuming and producing immutable data Device Get connected devices Alter controls Device Execute command (the FP way) Device Device Get state Device Device

20 Source code

21 Device data structure Devices - motors and sensors are represented as Elixir structs (think of them as records)

22 Device generation Functions that get the connected devices

23 Device initialization Function that gets device props from sysfs files (here, for motors)

24 Device control specs Function that gets the current motors specs

25 Controlling a device Functions that change control specs always return a new device

26 Getting device state Functions that access the device or sysfs read-only files containing device state

27 Getting device state

28 Synchronizing devices and sysfs Updating sysfs files to reflect current device specs

29 Interfacing with sysfs Reading from and writing to sysfs device files

30 Let's play with motors! iex> alias EV3.Tachomotor, as: TM... iex> [motor _] = TM.motors # Detect motors and hold on to the first one [%EV3.Device{class: :tacho_motor, path: "/sys/class/tacho motor/motor0", port: "outa", props: %{commands: ["run forever", "run to abs pos", "run to rel pos", "run timed", "run direct", "stop", "reset"], controls: %{duty_cycle: 0, polarity: :normal, position: 0, ramp_down: 0, ramp_up: 0, speed: 0, speed_mode: nil, speed_regulation: :off, time: 0}, count_per_rot: 360, stop_commands: ["coast", "brake", "hold"]}, type: :large}, %EV3.Device{class: :tacho_motor, path: "/sys/class/tacho motor/motor1", port: "outb", props: %{commands: ["run forever", "run to abs pos", "run to rel pos", "run timed", "run direct", "stop", "reset"], controls: %{duty_cycle: 0, polarity: :normal, position: 0, ramp_down: 0, ramp_up: 0, speed: 0, speed_mode: nil, speed_regulation: :off, time: 0}, count_per_rot: 360, stop_commands: ["coast", "brake", "hold"]}, type: :medium}]

31 Let's play with motors! iex> motor = TM.set_speed(motor, :rps, 1) # Set motor speed to 1 rotation per second... iex> TM.run motor # Stop the motor quickly... iex> motor = TM.reset # Reset the motor to its initial state... iex> motor = motor > TM.set_duty_cycle(50) > TM.reverse_polarity # 50% power and in reverse... iex> motor = TM.run_for(motor, 10000) # run for 10 secs... iex> IO.puts TM.current_speed(motor, :dps) # Print the current speed in degrees per sec 360 iex> TM.stalled? motor # Is the motor stalled? false

32 Let's play with sensors! iex> alias EV3.LegoSensor, as: LS... iex> sensors = LS.sensors # Detect all connected sensors [%EV3.Device{class: :sensor, path: "/sys/class/lego sensor/sensor0", port: "in3", props: %{mode: "TOUCH"}, type: :touch}, %EV3.Device{class: :sensor, path: "/sys/class/lego sensor/sensor1", port: "in1", props: %{mode: "IR REMOTE"}, type: :infrared}, %EV3.Device{class: :sensor, path: "/sys/class/lego sensor/sensor2", port: "in2", props: %{mode: "COL COLOR"}, type: :color}] iex> ir = sensors > Enum.find((LS.infrared? 1)) # Get an infrared sensor %EV3.Device{class: :sensor, path: "/sys/class/lego sensor/sensor1", port: "in1", props: %{mode: "IR REMOTE"}, type: :infrared} iex> color_sensor = sensors > Enum.find((LS.color? 1)) # Get a color sensor... iex> touch = sensors > Enum.find((LS.touch? 1)) # Get a touch sensor...

33 The infrared sensor iex> alias EV3.InfraredSensor, as: IR... iex> IR.proximity(ir) # Get proximity of obstacle as percent of range 62 iex> IR.seek_distance(ir, 1) # Get distance (as % of range) of beacon on channel 1 15 iex> IR.seek_heading(ir, 1) # Get heading of beacon on channel 1 (far left is 25) 12 iex> IR.remote_buttons(ir, 1) # What buttons were pushed on remote set to channel 1? %{blue: :down, red: :up}

34 The color sensor iex> alias EV3.ColorSensor, as: CS iex> color_sensor = CS.set_reflect_mode(color_sensor) reflected light detection mode # Set to %EV3.Device{class: :sensor, path: "/sys/class/lego sensor/sensor2", port: "in2", props: %{mode: "COL REFLECT"}, type: :color} iex> CS.reflected_light(color_sensor) # How much light is reflected from the sensor (in % of maximum)? 16 iex> CS.ambient_light(color_sensor) # How much ambient light is detected (in % of maximum)? 3 iex> :blue CS.color(color_sensor) # What color is detected?

35 The touch sensor iex> alias EV3.TouchSensor, as: TS... iex> TS.pressed? touch false iex> TS.released? touch true

36 I have a blog

37 Thank you! Next meetup Robotics with Elixir, part 2 Soul of a New Machine Programming autonomous robots with Elixir/OTP Processes, events, finite state machines, oh my!

ev3dev-lang Documentation

ev3dev-lang Documentation ev3dev-lang Documentation Release 1.0.0 The ev3dev team January 17, 2016 Contents 1 ev3dev Language Wrapper Specification 3 1.1 Classes.................................................. 4 1.2 Special

More information

ev3dev-lang Documentation

ev3dev-lang Documentation ev3dev-lang Documentation Release 1.2.0 The ev3dev team Sep 20, 2017 Contents 1 ev3dev Language Wrapper Specification 3 1.1 Classes.................................................. 4 1.1.1 Device (abstract)........................................

More information

school robotics On the path to success with Brault & Bouthillier Education

school robotics On the path to success with Brault & Bouthillier Education On the path to success with school robotics Robotics has been used in schools as a teaching tool for several years now. And right from the start, has always believed this innovative project could motivate,

More information

Introduction to Robotics using Lego Mindstorms EV3

Introduction to Robotics using Lego Mindstorms EV3 Introduction to Robotics using Lego Mindstorms EV3 Facebook.com/roboticsgateway @roboticsgateway Robotics using EV3 Are we ready to go Roboticists? Does each group have at least one laptop? Do you have

More information

Controlling LEGO R EV3 robots with Prolog

Controlling LEGO R EV3 robots with Prolog Controlling LEGO R EV3 robots with Prolog Sibylle Schwarz, Mario Wenzel Hochschule für Technik, Wirtschaft und Kultur Leipzig Fakultät für Informatik, Mathematik und Naturwissenschaften {sibylle.schwarz,mario.wenzel}@htwk-leipzig.de

More information

Project from Real-Time Systems Lego Mindstorms EV3

Project from Real-Time Systems Lego Mindstorms EV3 Project from Real-Time Systems March 13, 2017 Lego Mindstorms manufactured by LEGO, http://mindstorms.lego.com extension of LEGO Technic line history: RCX, 1998 NXT, 2006; NXT 2.0, 2009 EV3, 2013 why LEGO?

More information

LEGO Mindstorm EV3 Robots

LEGO Mindstorm EV3 Robots LEGO Mindstorm EV3 Robots Jian-Jia Chen Informatik 12 TU Dortmund Germany LEGO Mindstorm EV3 Robot - 2 - LEGO Mindstorm EV3 Components - 3 - LEGO Mindstorm EV3 Components motor 4 input ports (1, 2, 3,

More information

python-ev3dev Documentation

python-ev3dev Documentation python-ev3dev Documentation Release 1.0.0.post32 Ralph Hempel et al Oct 08, 2017 Contents 1 Getting Started 3 2 Usage Examples 5 2.1 Required: Import the library.......................................

More information

Tutorial: Making Legobot Move Steering Command Brighton H.S Engineering By: Matthew Jourden

Tutorial: Making Legobot Move Steering Command Brighton H.S Engineering By: Matthew Jourden Tutorial: Making Legobot Move Steering Command Brighton H.S Engineering By: Matthew Jourden 1. Build Bas Robot. See Build Manual in the Lego Core Set Kit for details or Build Instructions Base Robot File

More information

contents in detail introduction...xxi 1 LEGO and robots: a great combination the EV3 programming environment... 5

contents in detail introduction...xxi 1 LEGO and robots: a great combination the EV3 programming environment... 5 contents in detail introduction...xxi who this book is for...xxi prerequisites...xxi what to expect from this book...xxi how best to use this book...xxiii 1 LEGO and robots: a great combination... 1 LEGO

More information

RCX Tutorial. Commands Sensor Watchers Stack Controllers My Commands

RCX Tutorial. Commands Sensor Watchers Stack Controllers My Commands RCX Tutorial Commands Sensor Watchers Stack Controllers My Commands The following is a list of commands available to you for programming the robot (See advanced below) On Turns motors (connected to ports

More information

COPYRIGHTED MATERIAL. Introducing LEGO CHAPTER. Did you get a box that looks like the one shown in Figure 1-1?

COPYRIGHTED MATERIAL. Introducing LEGO CHAPTER. Did you get a box that looks like the one shown in Figure 1-1? CHAPTER 1 Introducing LEGO MINDSTORMS EV3 Did you get a box that looks like the one shown in Figure 1-1? COPYRIGHTED MATERIAL Figure 1-1: The LEGO MINDSTORMS EV3 set, item number 31313 1 2 Exploring LEGO

More information

python-ev3dev Documentation

python-ev3dev Documentation python-ev3dev Documentation Release 1.0.0.post51 Ralph Hempel et al Jan 12, 2018 Contents 1 Getting Started 3 2 Usage Examples 5 2.1 Required: Import the library.......................................

More information

Branching Error (a.k.a. the VM Program Instruction Break Error) By Sanjay and Arvind Seshan DEBUGGING LESSON

Branching Error (a.k.a. the VM Program Instruction Break Error) By Sanjay and Arvind Seshan DEBUGGING LESSON Branching Error (a.k.a. the VM Program Instruction Break Error) By Sanjay and Arvind Seshan DEBUGGING LESSON HISTORY We first encountered the VM Program Instruction Break error on our brick during the

More information

Part A: Monitoring the Rotational Sensors of the Motor

Part A: Monitoring the Rotational Sensors of the Motor LEGO MINDSTORMS NXT Lab 1 This lab session is an introduction to the use of motors and rotational sensors for the Lego Mindstorm NXT. The first few parts of this exercise will introduce the use of the

More information

EV3Dev Lessons. Introduction to EV3Dev: Setup with Python

EV3Dev Lessons. Introduction to EV3Dev: Setup with Python EV3Dev Lessons Introduction to EV3Dev: Setup with Python Objectives Learn how to install ev3dev on an EV3 Setup Visual Studio Code IDE Prerequisites: none Copyright EV3Lessons 2018 (Last Update: Aug. 9,

More information

Introduction to Lab 2

Introduction to Lab 2 Introduction to Lab 2 Programming LEGO Mindstorms NXT using Ada Jakaria Abdullah 12 September 2016 Jakaria Abdullah Lab 2: LEGO 12 September 2016 1 / 25 Lab 2: Programming LEGO Mindstorms using Ada Lab

More information

Introduction to Lab 2

Introduction to Lab 2 Introduction to Lab 2 Programming LEGO Mindstorms NXT using Ada Jakaria Abdullah 19 September 2017 Jakaria Abdullah Lab 2: LEGO 19 September 2017 1 / 24 Lab 2: Programming LEGO NXTs using Ada Lab goals:

More information

2Control NXT FAQ For the latest version of this document please go to > support

2Control NXT FAQ For the latest version of this document please go to  > support 2Control NXT FAQ For the latest version of this document please go to www.2simple.com > support Common Questions Q: Can I connect 2Control to the NXT brick without using a USB cable? A: No, 2Control requires

More information

16-311: Getting Started with ROBOTC and the. LEGO Mindstorms NXT. Aurora Qian, Billy Zhu

16-311: Getting Started with ROBOTC and the. LEGO Mindstorms NXT. Aurora Qian, Billy Zhu 16-311: Getting Started with ROBOTC and the LEGO Mindstorms NXT Aurora Qian, Billy Zhu May, 2016 Table of Contents 1. Download and Install 2. License Activation 3. Wireless Connection 4. Running Programs

More information

What is EV3DEV? Send commands to the EV3 Upload programs and run them on the EV3

What is EV3DEV? Send commands to the EV3 Upload programs and run them on the EV3 PYTHON ON EV3DEV What is EV3DEV? A Linux-based operating system that runs on the Lego EV3 Runs from a microsd card Can run programs written in Python, Javascript, Java, Go, C++, C, and many others After

More information

Part A: Monitoring the Touch Sensor and Ultrasonic Sensor

Part A: Monitoring the Touch Sensor and Ultrasonic Sensor LEGO MINDSTORMS NXT Lab 2 This lab introduces the touch sensor and ultrasonic sensor which are part of the Lego Mindstorms NXT kit. The ultrasonic sensor will be inspected to gain an understanding of its

More information

EV3 Programming Workshop for FLL Coaches

EV3 Programming Workshop for FLL Coaches EV3 Programming Workshop for FLL Coaches Tony Ayad 2017 Outline This workshop is intended for FLL coaches who are interested in learning about Mindstorms EV3 programming language. Programming EV3 Controller

More information

Robolab. Table of Contents. St. Mary s School, Panama. Robotics. Ch. 5: Robolab, by: Ernesto E. Angulo J.

Robolab. Table of Contents. St. Mary s School, Panama. Robotics. Ch. 5: Robolab, by: Ernesto E. Angulo J. Robolab 5 Table of Contents Objectives...2 Starting the program...2 Programming...3 Downloading...8 Tools...9 Icons...9 Loops and jumps...11 Multiple tasks...12 Timers...12 Variables...14 Sensors...15

More information

EVShield Interface Specifications

EVShield Interface Specifications EVShield Advanced Development Guide v1.0 EVShield Interface Specifications Power Specs: EVShield can be powered from external power supply. Max Power Rating: 10.5 Volts DC Minimum 6.6 Volts DC needed to

More information

Organized by Jean-François Cloutier Held at Big Room Studios, Portland, ME. Holy Elixir, Batman! Meetup June 16, 2015

Organized by Jean-François Cloutier Held at Big Room Studios, Portland, ME. Holy Elixir, Batman! Meetup June 16, 2015 Organized by Jean-François Cloutier Held at Big Room Studios, Portland, ME Holy Elixir, Batman! Meetup June 16, 2015 A Sampling of Elixir's Superhero Powers Second Order Functions Pipes Pattern Matching

More information

How to Use EV3Lessons

How to Use EV3Lessons How to Use EV3Lessons By Sanjay and Arvind Seshan BEGINNER PROGRAMMING LESSON SITE OVERVIEW EV3Lessons.com provides the building blocks for successfully learning to program the LEGO MINDSTORMS EV3 We also

More information

EEL 5666C FALL Robot Name: DogBot. Author: Valerie Serluco. Date: December 08, Instructor(s): Dr. Arroyo. Dr. Schwartz. TA(s): Andrew Gray

EEL 5666C FALL Robot Name: DogBot. Author: Valerie Serluco. Date: December 08, Instructor(s): Dr. Arroyo. Dr. Schwartz. TA(s): Andrew Gray EEL 5666C FALL 2015 Robot Name: DogBot Author: Valerie Serluco Date: December 08, 2015 Instructor(s): Dr. Arroyo Dr. Schwartz TA(s): Andrew Gray Jacob Easterling INTRODUCTION ABSTRACT One of the fun things

More information

Autonomous Parking. LEGOeducation.com/MINDSTORMS. Duration Minutes. Learning Objectives Students will: Di culty Beginner

Autonomous Parking. LEGOeducation.com/MINDSTORMS. Duration Minutes. Learning Objectives Students will: Di culty Beginner Autonomous Parking Design cars that can park themselves safely without driver intervention. Learning Objectives Students will: Understand that algorithms are capable of carrying out a series of instructions

More information

LEGO mindstorm robots

LEGO mindstorm robots LEGO mindstorm robots Peter Marwedel Informatik 12 TU Dortmund Germany Lego Mindstorm components motor 3 output ports (A, B, C) 1 USB port for software upload 4 input ports (1, 2, 3, 4) for connecting

More information

Addendum to Mr. Robot

Addendum to Mr. Robot Addendum to Mr. Robot Addendum to Mr. Robot build instructions on how to attach the new LEGO EV3 programmable brick to Mr. Robot. The LEGO NXT Brick has been replaced by the EV3 Brick. Mr. Robot now ships

More information

Author: Paul Zenden. Hot-or-Not Elixir with José Valim

Author: Paul Zenden. Hot-or-Not Elixir with José Valim Author: Paul Zenden Hot-or-Not Elixir with José Valim > > elixir with {:ok, : José Valim }

More information

Robotics Study Material School Level 1 Semester 2

Robotics Study Material School Level 1 Semester 2 Robotics Study Material School Level 1 Semester 2 Contents UNIT-3... 4 NXT-PROGRAMMING... 4 CHAPTER-1... 5 NXT- PROGRAMMING... 5 CHAPTER-2... 6 NXT-BRICK PROGRAMMING... 6 A. Multiple choice questions:...

More information

This page outlines some of the alternate pieces that can be used for building.

This page outlines some of the alternate pieces that can be used for building. Artbotics Exploring Mechanisms with Lego Mindstorms EV3 This packet contains information on each mechanism you will be using, including a to-scale image of all of the pieces needed to build each one and

More information

Robotics II. Module 5: Creating Custom Made Blocks (My Blocks)

Robotics II. Module 5: Creating Custom Made Blocks (My Blocks) Robotics II Module 5: Creating Custom Made Blocks (My Blocks) PREPARED BY Academic Services Unit December 2011 Applied Technology High Schools, 2011 Module 5: Creating Custom Made Blocks (My Blocks) Module

More information

Prototype Prolog API for Mindstorms NXT

Prototype Prolog API for Mindstorms NXT Prototype Prolog API for Mindstorms NXT Grzegorz J. Nalepa 1 Institute of Automatics, AGH University of Science and Technology, Al. Mickiewicza 30, 30-059 Kraków, Poland gjn@agh.edu.pl Abstract. The paper

More information

WIZ-PRO2 CURRICULUM HIGHLIGHTS

WIZ-PRO2 CURRICULUM HIGHLIGHTS WIZ-PRO2 CURRICULUM HIGHLIGHTS STEM Learning and Advanced Robotics (ages 9-11) Develop more advanced programming skills, create programs using lines of code in Scratch, use more powerful robotics components

More information

Computer science Science Technology Engineering Math. LEGOeducation.com/MINDSTORMS

Computer science Science Technology Engineering Math. LEGOeducation.com/MINDSTORMS User Guide πr Computer science Science Technology Engineering Math LEGOeducation.com/MINDSTORMS Table of Contents Introduction + Welcome... 3 EV3 Technology + overview.... 4 + EV3 Brick.... 5 Overview...

More information

Some call it a robot. EV3 Programming APP Available March Locally operated globally connected. Freecall:

Some call it a robot. EV3 Programming APP Available March Locally operated globally connected. Freecall: Some call it a robot We call it a MOTIVATOR EV3 Programming APP Available March 2015 Computer science Science Technology Engineering Maths Locally operated globally connected Freecall: 1800 684 068 www.mooreed.com.au

More information

TETRIX DC Motor Expansion Controller Technical Guide

TETRIX DC Motor Expansion Controller Technical Guide TETRIX DC Motor Expansion Controller Technical Guide 44559 Content advising by Paul Uttley. SolidWorks Composer and KeyShot renderings by Tim Lankford, Brian Eckelberry, and Jason Redd. Desktop publishing

More information

TETRIX PRIZM Robotics Controller Quick-Start Guide and Specifications

TETRIX PRIZM Robotics Controller Quick-Start Guide and Specifications TETRIX PRIZM Robotics Controller Quick-Start Guide and Specifications 43167 Content advising by Paul Uttley. SolidWorks Composer renderings by Tim Lankford and Brian Eckelberry. Desktop publishing by Todd

More information

TABLE OF CONTENTS. LEGO.com/mindstorms. Introduction + Welcome... 3

TABLE OF CONTENTS. LEGO.com/mindstorms. Introduction + Welcome... 3 User Guide TABLE OF CONTENTS Introduction + Welcome... 3 Technology + Overview... 4 + Brick... 5 Overview... 5 Installing Batteries... 8 Turning On the Brick... 9 + Motors... 10 Large Motor... 10 Medium

More information

python-ev3dev Documentation

python-ev3dev Documentation python-ev3dev Documentation Release 1.1.1 Ralph Hempel et al Jan 08, 2018 Contents 1 Getting Started 3 2 Usage Examples 5 2.1 Required: Import the library....................................... 5 2.2

More information

LME Software Block Quick Reference 1. Common Palette

LME Software Block Quick Reference 1. Common Palette LME Software Block Quick Reference Common Palette Move Block Use this block to set your robot to go forwards or backwards in a straight line or to turn by following a curve. Define how far your robot will

More information

lab A.3: introduction to RoboLab vocabulary materials cc30.03 Brooklyn College, CUNY c 2006 Name: RoboLab communication tower canvas icon

lab A.3: introduction to RoboLab vocabulary materials cc30.03 Brooklyn College, CUNY c 2006 Name: RoboLab communication tower canvas icon cc30.03 Brooklyn College, CUNY c 2006 lab A.3: introduction to RoboLab Name: vocabulary RoboLab communication tower canvas icon drag-and-drop function palette tools palette program algorithm syntax error

More information

ROBOLAB Tutorial MAE 1170, Fall 2009

ROBOLAB Tutorial MAE 1170, Fall 2009 ROBOLAB Tutorial MAE 1170, Fall 2009 (I) Starting Out We will be using ROBOLAB 2.5, a GUI-based programming system, to program robots built using the Lego Mindstorms Kit. The brain of the robot is a microprocessor

More information

General Description. The TETRIX MAX DC Motor Expansion Controller features the following:

General Description. The TETRIX MAX DC Motor Expansion Controller features the following: General Description The TETRIX MAX DC Motor Expansion Controller is a DC motor expansion peripheral designed to allow the addition of multiple DC motors to the PRIZM Robotics Controller. The device provides

More information

Robotics II. Module 2: Application of Data Programming Blocks

Robotics II. Module 2: Application of Data Programming Blocks Robotics II Module 2: Application of Data Programming Blocks PREPARED BY Academic Services Unit December 2011 Applied Technology High Schools, 2011 Module 2: Application of Data Programming Blocks Module

More information

Robotics II. Module 4: Bluetooth Communication

Robotics II. Module 4: Bluetooth Communication Robotics II PREPARED BY Academic Services Unit December 2011 Applied Technology High Schools, 2011 Module Objectives Upon successful completion of this module, students should be able to: Set up a Bluetooth

More information

In groups take a Mindstorms kit and decide on what sort of chassis will work best.

In groups take a Mindstorms kit and decide on what sort of chassis will work best. Robotics 2b Lego Mindstorm EV3 Body Building What we re going to do in the session. Build our robot s chassis Test it with some basic programming blocks Modify the chassis if necessary Designing a Chassis

More information

BEGINNER PROGRAMMING LESSON

BEGINNER PROGRAMMING LESSON Introduction to the NXT Brick and Software By Sanjay and Arvind Seshan BEGINNER PROGRAMMING LESSON LESSON OBJECTIVES 1. Learn how the NXT brick operates 2. Learn about the main components of the EV3 software

More information

RobotC Basics. FTC Team 2843 SSI Robotics October 6, 2012 Capitol College FTC Workshop

RobotC Basics. FTC Team 2843 SSI Robotics October 6, 2012 Capitol College FTC Workshop RobotC Basics FTC Team 2843 SSI Robotics October 6, 2012 Capitol College FTC Workshop Agenda The Brick Sample Setup Template Multi Click Program Cancel Configuration (Pragmas) Joystick Data (get data)

More information

What is NXTCam5. What you will need before using NXTCam5. NXTCam5 User Guide

What is NXTCam5. What you will need before using NXTCam5. NXTCam5 User Guide NXTCam5 User Guide What is NXTCam5 NXTCam5 is a real-time image processing engine. Think of it as a vision sub-system with on-board processor and a protocol interface that is accessible through a standard

More information

TETRIX PRIZM Robotics Controller Quick-Start Guide and Specifications

TETRIX PRIZM Robotics Controller Quick-Start Guide and Specifications TETRIX PRIZM Robotics Controller Quick-Start Guide and Specifications 43167 Content advising by Paul Uttley. SolidWorks Composer renderings by Tim Lankford and Brian Eckelberry. Desktop publishing by Todd

More information

Unit 03 Tutorial 3: Sensors: Touch Sensor Brighton H.S Engineering By: Matthew Jourden

Unit 03 Tutorial 3: Sensors: Touch Sensor Brighton H.S Engineering By: Matthew Jourden Unit 03 Tutorial 3: Sensors: Touch Sensor Brighton H.S Engineering By: Matthew Jourden Robots have a variety of sensors that help the machine sense the world around it. We will be looking at four different

More information

what is an algorithm? analysis of algorithms classic algorithm example: search

what is an algorithm? analysis of algorithms classic algorithm example: search event-driven programming algorithms event-driven programming conditional execution robots and agents resources: cc3.12/cis1.0 computing: nature, power and limits robotics applications fall 2007 lecture

More information

Robotics II. Module 1: Introduction to Data & Advanced Programming Blocks

Robotics II. Module 1: Introduction to Data & Advanced Programming Blocks Robotics II Module 1: Introduction to Data & Advanced Programming Blocks PREPARED BY Academic Services Unit December 2011 Applied Technology High Schools, 2011 Module 1: Introduction to Data & Advanced

More information

Lego MINDSTORMS NXT Problem Solving with Robots [PRSOCO601]

Lego MINDSTORMS NXT Problem Solving with Robots [PRSOCO601] Lego MINDSTORMS NXT Problem Solving with Robots [PRSOCO601] Thomas Devine http://noucamp thomas.devine@lyit.ie January 29, 2008 1 Contents 1 A Brief History of MINDSTORMS 4 2 Discovering the MINDSTORMS

More information

index Symbols < (Compare block in Less Than mode), 98 (Compare block in Less Than or Equal To mode), degree coupled gears, 115,

index Symbols < (Compare block in Less Than mode), 98 (Compare block in Less Than or Equal To mode), degree coupled gears, 115, index Symbols + (addition, using the Math block in Add mode), 92 / (division, using the Math block in Divide mode), 92 93 * (multiplication, using the Math block in Multiply mode), 92 (subtraction, using

More information

Digital Devices in the Digital Technologies curriculum (F-10) Steve Allen VCAA Digital Coding Specialist Teacher

Digital Devices in the Digital Technologies curriculum (F-10) Steve Allen VCAA Digital Coding Specialist Teacher Digital Devices in the Digital Technologies curriculum (F-10) Steve Allen VCAA Digital Coding Specialist Teacher A digital system that students can program: create an algorithm accept user input store

More information

Hands-on Lab: LabVIEW Angle Sensor

Hands-on Lab: LabVIEW Angle Sensor Hands-on Lab: LabVIEW Angle Sensor Third party vendors like Hi Technic, offer a range of sensors. One example is the angle sensor, and LabVIEW LEGO Mindstorms has a control block for it. This lab will

More information

Tech Tips. BeeBots. WeDo

Tech Tips. BeeBots. WeDo Tech Tips Teachers, especially classroom teachers who are implementing a robotics unit in their classroom, may not have much troubleshooting experience and may not have ready access to tech support. As

More information

Project Proposal. Mark John Swaine. Supervisor: Dr. Karen Bradshaw. Department of Computer Science, Rhodes University

Project Proposal. Mark John Swaine. Supervisor: Dr. Karen Bradshaw. Department of Computer Science, Rhodes University Project Proposal Mark John Swaine Supervisor: Dr. Karen Bradshaw Department of Computer Science, Rhodes University 2 March 2009 1. Principle Investigator Mark John Swaine 4 Huntley House, 28 Hill Street

More information

Powered by LEGO MINDSTORMS Education

Powered by LEGO MINDSTORMS Education With the greatest challenge you ll have is getting your students to leave the classroom! So ignite student s engagement and energize learning through real-life problem solving with LEGO MINDSTORMS Education

More information

Robotics with Lego EV3 + MS Makecode. Andrea Sterbini

Robotics with Lego EV3 + MS Makecode. Andrea Sterbini Robotics with Lego Andrea Sterbini sterbini@di.uniroma1.it Microsoft Makecode.com Many development systems supported (embedded/robotics/game) micro:bit Adafruit Minecraft Lego EV3 Cue Arcade Chibi chip

More information

CS283: Robotics Fall 2016: Software

CS283: Robotics Fall 2016: Software CS283: Robotics Fall 2016: Software Sören Schwertfeger / 师泽仁 ShanghaiTech University Mobile Robotics ShanghaiTech University - SIST - 18.09.2016 2 Review Definition Robot: A machine capable of performing

More information

Styx-on-a-Brick. Chris Locke Vita Nuova June 2000

Styx-on-a-Brick. Chris Locke Vita Nuova June 2000 Background Styx-on-a-Brick Chris Locke chris@vitanuova.com Vita Nuova June 2000 The aim of the Vita-Nuova styx-on-a-brick project was to demonstrate the simplicity of the Styx protocol and the ease with

More information

What Is a Program? Pre-Quiz

What Is a Program? Pre-Quiz What Is a Program? What Is a Program? Pre-Quiz 1. What is a program? 2. What is an algorithm? Give an example. 2 What Is a Program? Pre-Quiz Answers 1. What is a program? A program is a sequence of instructions

More information

Embedded Elixir. Elixir Taiwan Meetup July 25, 2016 Jake Morrison

Embedded Elixir. Elixir Taiwan Meetup July 25, 2016 Jake Morrison Embedded Elixir Elixir Taiwan Meetup July 25, 2016 Jake Morrison What is Embedded Programming? Systems that interact with the physical world Resource constrained systems Machines controlled

More information

US Version USER GUIDE COMPUTER SCIENCE SCIENCE TECHNOLOGY ENGINEERING MATH. LEGOeducation.com/MINDSTORMS

US Version USER GUIDE COMPUTER SCIENCE SCIENCE TECHNOLOGY ENGINEERING MATH. LEGOeducation.com/MINDSTORMS US Version 1.3.2 USER GUIDE πr COMPUTER SCIENCE SCIENCE TECHNOLOGY ENGINEERING MATH LEGOeducation.com/MINDSTORMS TABLE OF CONTENTS INTRODUCTION + Welcome... 3 + How to Use This Guide... 4 + Help... 5 EV3

More information

PROGRAMMING ROBOTS AN ABSTRACT VIEW

PROGRAMMING ROBOTS AN ABSTRACT VIEW ROBOTICS AND AUTONOMOUS SYSTEMS Simon Parsons Department of Computer Science University of Liverpool LECTURE 3 comp329-2013-parsons-lect03 2/50 Today Before the labs start on Monday, we will look a bit

More information

The Lego Mindstorms Ev3 Discovery Book Full Color A Beginners Guide To Building And Programming Robots

The Lego Mindstorms Ev3 Discovery Book Full Color A Beginners Guide To Building And Programming Robots The Lego Mindstorms Ev3 Discovery Book Full Color A Beginners Guide To Building And Programming Robots We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our

More information

Instruction Manual for BE-SP3 Circuit. 10/21/07

Instruction Manual for BE-SP3 Circuit. 10/21/07 Page 1 of 54 Instruction Manual for BE-SP3 Circuit. 10/21/07 Page 1 Index: Page 2 BE-SP3 Circuit Specifications. Page 3-4 Intro to the BE-SP3. Page 5 Basics of serial to parallel. Page 6-7 ASCII Code.

More information

Don t Bump into Me! Pre-Quiz

Don t Bump into Me! Pre-Quiz Don t Bump into Me! Don t Bump into Me! Pre-Quiz 1. How do bats sense distance? 2. Describe how bats sense distance in a stimulus-sensor-coordinator-effectorresponse framework. 2. Provide an example stimulus-sensorcoordinator-effector-response

More information

Final Report. [Establish User Requirements] User must be able to press the run button on the robot, as well as use the NQC software.

Final Report. [Establish User Requirements] User must be able to press the run button on the robot, as well as use the NQC software. Team 3 David Letteer Greg Broadwell Kathryn della Porta BE 1200 Basic Engineering Final Report Final Report [Clarify Objectives] Design, build, and program a robot that will acknowledge the presence of

More information

Introduction: What is NXT-G?

Introduction: What is NXT-G? NXTG Page 1 Introduction: What is NXTG? Saturday, August 22, 2009 11:59 PM Welcome to the wonderful world of graphical programming for Lego Robotic Systems! Before you are introduced to any actual code,

More information

The Lego Mindstorms Ev3 Discovery Book Full Color A Beginners Guide To Building And Programming Robots

The Lego Mindstorms Ev3 Discovery Book Full Color A Beginners Guide To Building And Programming Robots The Lego Mindstorms Ev3 Discovery Book Full Color A Beginners Guide To Building And Programming Robots THE LEGO MINDSTORMS EV3 DISCOVERY BOOK FULL COLOR A BEGINNERS GUIDE TO BUILDING AND PROGRAMMING ROBOTS

More information

Debugging Applications in Pervasive Computing

Debugging Applications in Pervasive Computing Debugging Applications in Pervasive Computing Larry May 1, 2006 SMA 5508; MIT 6.883 1 Outline Video of Speech Controlled Animation Survey of approaches to debugging Turning bugs into features Speech recognition

More information

Loops and Switches Pre-Quiz

Loops and Switches Pre-Quiz Loops and Switches Loops and Switches Pre-Quiz 1. What kind of blocks are these? 2. Name two kinds of controls that can be specified to determine how long a loop repeats. 3. Give an example of a program

More information

Chapter 19 Assembly Modeling with the TETRIX by Pitsco Building System Autodesk Inventor

Chapter 19 Assembly Modeling with the TETRIX by Pitsco Building System Autodesk Inventor Tools for Design Using AutoCAD and Autodesk Inventor 19-1 Chapter 19 Assembly Modeling with the TETRIX by Pitsco Building System Autodesk Inventor Create and Use Subassemblies in Assemblies Creating an

More information

Today. Robotics and Autonomous Systems. The scenario (again) Basic control loop

Today. Robotics and Autonomous Systems. The scenario (again) Basic control loop Today Robotics and Autonomous Systems Lecture 3 Programming robots Richard Williams Department of Computer Science University of Liverpool Before the labs start on Monday, we will look a bit at programming

More information

Programming Low-Cost Hardware Using Simulink Brian McKay MathWorks Technical Marketing

Programming Low-Cost Hardware Using Simulink Brian McKay MathWorks Technical Marketing Programming Low-Cost Hardware Using Simulink Brian McKay MathWorks Technical Marketing 2014 The MathWorks, Inc. Simulink Support for Low-Cost Hardware What does that mean? Simulink supports a selection

More information

Section 3 Board Experiments

Section 3 Board Experiments Section 3 Board Experiments Section Overview These experiments are intended to show some of the application possibilities of the Mechatronics board. The application examples are broken into groups based

More information

Thread Synchronization: Too Much Milk

Thread Synchronization: Too Much Milk Thread Synchronization: Too Much Milk 1 Implementing Critical Sections in Software Hard The following example will demonstrate the difficulty of providing mutual exclusion with memory reads and writes

More information

Hands-on Lab. Lego Programming BricxCC Basics

Hands-on Lab. Lego Programming BricxCC Basics Hands-on Lab Lego Programming BricxCC Basics This lab reviews the installation of BricxCC and introduces a C-like programming environment (called NXC) for the Lego NXT system. Specific concepts include:

More information

Hookingupacomputertothe3-wireSimplicity bus.

Hookingupacomputertothe3-wireSimplicity bus. Simplicity Hookingupacomputertothe3-wireSimplicity bus. Purpose OneofthemajoradvantagesoftheSimplicity control is its ability to be connected to a computer. The computer can be used to modify the control

More information

Lab 2 Programming LEGO Mindstorms NXT. Jakaria Abdullah 19 September 2018

Lab 2 Programming LEGO Mindstorms NXT. Jakaria Abdullah 19 September 2018 Lab 2 Programming LEGO Mindstorms NXT Jakaria Abdullah 19 September 2018 Lab Overview Lab goals Real-time programming on an embedded device Problem solving using real-time tasks Schedule Slot 1: 20.9.18

More information

What is NXTCam. NXTCam Feature List. What you will need before using NXTCam. NXTCam v2 User Guide

What is NXTCam. NXTCam Feature List. What you will need before using NXTCam. NXTCam v2 User Guide NXTCam v2 User Guide What is NXTCam NXTCam is a real-time image processing engine. Think of it as a vision sub-system with on-board processor and a protocol interface that is accessible through a standard

More information

The Actor Model, Part Two. CSCI 5828: Foundations of Software Engineering Lecture 18 10/23/2014

The Actor Model, Part Two. CSCI 5828: Foundations of Software Engineering Lecture 18 10/23/2014 The Actor Model, Part Two CSCI 5828: Foundations of Software Engineering Lecture 18 10/23/2014 1 Goals Cover the material presented in Chapter 5, of our concurrency textbook In particular, the material

More information

python-ev3dev Documentation

python-ev3dev Documentation python-ev3dev Documentation Release 0.7.0.post23 Ralph Hempel et al October 25, 2016 Contents 1 Getting Started 3 2 Usage Examples 5 2.1 Required: Import the library.......................................

More information

Robot Design Hardware

Robot Design Hardware NanoGiants Academy e.v. Robot Design Hardware 2017 NanoGiants Academy e.v. 1 This Presentation is one of four about FLL Robot Design Hardware Navigation Software Strategy http://nano-giants.net/robot-design

More information

Robotics 2c. The Programming Interface

Robotics 2c. The Programming Interface Robotics 2c What we re going to do in this session. Introduce you to the Lego Mindstorm Programming Interface. The Programming Interface The Lego Mindstorm EV3 kit uses a proprietary interface with its

More information

Robot Practical Course

Robot Practical Course 64-272 Robot Practical Course http://tams-www.informatik.uni-hamburg.de/ lectures/2013ss/praktikum/robot_practical_course/ Manfred Grove, Ben Adler University of Hamburg Faculty of Mathematics, Informatics

More information

Introduction to Lab 2

Introduction to Lab 2 Introduction to Lab 2 Programming in RTOS on LEGO Mindstorms Jakaria Abdullah 9 September 2015 Jakaria Abdullah Lab 2: LEGO 9 September 2015 1 / 21 Lab 2: Programming in RTOS using LEGO Mindstorms Lab

More information

This is an inspection failure, not meeting the requirement of >10k Ohm between either PD battery post and chassis.

This is an inspection failure, not meeting the requirement of >10k Ohm between either PD battery post and chassis. Troubleshooting This is a document put together by CSA Laura Rhodes that contains a lot of information about troubleshooting steps for a lot of common control system problems encountered at events. No

More information

INTRODUCTION TO ARTIFICIAL INTELLIGENCE

INTRODUCTION TO ARTIFICIAL INTELLIGENCE DATA15001 INTRODUCTION TO ARTIFICIAL INTELLIGENCE THE FINAL EPISODE (11): ROBOTICS TODAY S MENU 1. "GRAND CHALLENGE" 2. LEGO MIND- STORMS 3. ROBO WORKSHOPS ROBOTICS AS A "GRAND CHALLENGE" OF AI actuators:

More information

introduction to RoboCupJunior Rescue vocabulary materials

introduction to RoboCupJunior Rescue vocabulary materials robotics.edu agents lab, Brooklyn College, CUNY c 2007 http://agents.sci.brooklyn.cuny.edu/robotics.edu introduction to RoboCupJunior Rescue Name: vocabulary task multi-tasking hardware conflicts obstacle

More information

Team Project: A Surveillant Robot System

Team Project: A Surveillant Robot System Team Project: A Surveillant Robot System Status Report : 04/05/2005 Little Red Team Chankyu Park (Michael) Seonah Lee (Sarah) Qingyuan Shi (Lisa) Chengzhou Li JunMei Li Kai Lin Agenda Problems Team meeting

More information

Comparison Between Different Abstraction Level Programming: Experiment Definition and Initial Results

Comparison Between Different Abstraction Level Programming: Experiment Definition and Initial Results Comparison Between Different Abstraction Level Programming: Experiment Definition and Initial Results Janne Merilinna and Juha Pärssinen VTT Technical Research Centre of Finland, P.O. Box 1000, 02044 Espoo,

More information

Introduction to Lab 2

Introduction to Lab 2 Introduction to Lab 2 Programming in RTOS using LEGO Mindstorms Martin Stigge 9. November 2009 Martin Stigge Lab 2: LEGO 9. November 2009 1 / 20 Lab 2:

More information