Robots and the Mind
The world of robots and delve into programming basics with a focus on Java language. Understand creating and executing programs, learning Java grammar, and writing complete robot programs. Discover the components of EV3 brick and how to program them effectively."
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Introduction to Robots and the Mind - Programming Basics - Bert Wachsmuth & Michael Vigorito Seton Hall University
Programming Creating a sequence of instructions to enable the computer/robot to do something http://wordnetweb.princeton.edu/perl/webwn?s=computer programming 1. Create the program , i.e. the sequence of instructions. Most spoken languages are full of ambiguities, so we use a special language instead, such as Java (or C++, Perl, Scheme, Python, or ) 2. Need to learn the grammar and vocabulary of our special language of choice (Java) 3. Translate the program into instructions that the computer processor can understand (handled by IDE) 4. Execute instructions (handled by IDE) and test program!
Basic Grammar of Java A (Java) program is a sequence of statements, one per line Java is case-sensitive, i.e. the word LCD and Lcd are considered different. A valid Java statement must end with a semi-colon ; unless it starts a group. Java uses three sets of parenthesis/brackets: curly brackets { } to group statements together regular parenthesis ( ) to denote inputs to functions and for math expressions square brackets [ ] to denote what s called arrays
Basic Grammar of Java Every (almost) Java program has a unique program name and includes as a minimum the following lines, known as the standard framework: public class ProgramName { // Comments start with // and comment on the code // in plain English public static void main(String[] args) { here goes your Java code } }
A Complete Robot Program public class MakeSound { public static void main(String[] args) { // TODO Auto-generated method stub } }
A Complete Robot Program public class MakeSound { public static void main(String[] args) { // TODO Auto-generated method stub } }
A Complete Robot Program public class MakeSound { public static void main(String[] args) { // play standard A for 1.5 seconds Sound.playTone(440, 1500); } }
Fixed EV3 Components The EV3 brick includes many named components such as LCD, Button, Sound, etc. Programming those is easy: use them by name and call on their built-in functions using the syntax Component.function(optional input) Note: in proper Java lingo such functions are called static methods
The Sound Component The Sound component supports the following static methods to generate music: Sound.beep() Sound.beepSequence() Sound.beepSequenceUp() Sound.buzz(); Sound.pause(millisecs) Sound.playTone(freq, duration) Sound.playSample(File filename)
Your first Challenge Create and execute a program that plays a short melody or song. Any melody with three notes or more will do, but you will get special credit for playing some well-known melody such as Beethoven s Fifth
Robot Teams 1. Francisco Arocho, Malik Dye, and Brian Wreckler 2. Joelle Arrante and Onyinyechukwu Okeke 3. Tiffany Callanan, Kenneth E. Cherasia, and Isabell Klingert 4. Luis Cerqueira and Darren Lesinski 5. Zachary Darby and David T Rivella 6. Dominick Defrenza, and Jonathan Roan 7. Vincent Latorraca and John Stratoberdha 8. Jessica Melnyczuk and Jenyffer Santiago 9. Jamie Porteus and Gerard Rangel 10.James Prumos and Sean Sullivan
Working with Motors Working with motors is in principle similar to generating a tone but the setup is a little more complicated because a motor could be connected to A, B, C, or D Connect one of the large motors to one of the output ports A, B, C, and D
Fields and Methods Every Java class (aka program) can contain: fields: references for everything a robot has methods: functions that specify what a robot does public class SampleProg { // fieldsto reference what robot has private static Sensor lightSensor; // methodsto specify what robot does public static void driveForward() { // method to make robot drive forward } public static void main(String[] args) { // default main method } }
Sample program import lejos.hardware.motor.EV3LargeRegulatedMotor; import lejos.hardware.port.MotorPort; public class RunMotor { // fields public static EV3LargeRegulatedMotor motor = new EV3LargeRegulatedMotor(MotorPort.A); // methods public static void motorForward() { motor.rotate(360); } public static void motorBackwards() { motor.rotate(-360); } public static void main(String[] args) { motorForward(); motorBackwards(); } }
Building a Simple Driving Robot Build one of these robots (click for blueprints or visit our web page)
Programming our Robot (1) To design any program, we ask: What does the robot have? What is it supposed to do? It has: left and right motor we need two fields of type motor with different names It needs to do: drive and turn we need two methods (in addition to the standard main method)
Programming our Robot (2) public class MyFirstRobot { // fields public static EV3LargeRegulatedMotor motorLeft = new EV3LargeRegulatedMotor(MotorPort.A); public static EV3LargeRegulatedMotor motorRight = new EV3LargeRegulatedMotor(MotorPort.D); // methods public static void turn() {} public static void drive() {} public static void main(String[] args) { } }
Programming our Robot (3) public static void turn() { motorLeft.rotate(360, true); motorRight.rotate(-360); } public static void drive() { motorLeft.rotate(360, true); motorRight.rotate(360); } public static void main(String[] args) { drive(); turn(); }
Programming our Robot (4) Issues left to fix and/or improve turnmethod should turn 90 degrees drivemethod should drive 50 cm Need more flexibility in turn and drive methods to solve second challenge turn method should have an input to specify how many degrees to turn drive method should have an input to specify how many cm to drive forward
Homework Create program with a driveand turn method and test them. Next Challenge (for next Wed): Adjust the main method so that your robot drives in the shape of some geometric pattern (square, rectangle, triangle, pentagon, Star of David, etc) and returns to the spot where it started