Lab 4: Creating Your Own Device Class

Size: px
Start display at page:

Download "Lab 4: Creating Your Own Device Class"

Transcription

1 Department of Mechanical Engineering ME EN Haptics Lab 4: Creating Your Own Device Class Out: Thursday 2/24/2011 Due: Thursday 3/8/2011 by class time Please read this entire document before starting the lab. This project must be completed and submitted individually or in pairs of two. You are welcome to discuss the assignment with other students in the class, but you do need to program your own solutions. Summiting Lab assignments Before you submit your assignment be sure to read this section completely. Points will be deducted if you get this wrong. If you are going to deviate talk to me beforehand. All previous lab environments and README documents are to be included. You will be compressing and turning in only the LabFiles folder highlighted below. Do not include all of chai as it will make your file far too large. Make a copy of this folder somewhere else for modification before handing in. If something goes wrong you won't lose your work or mess up your project files. ME 7960 Haptics Lab 2 Page 1 of 9

2 Within the copied LabFiles folder remove the Debug/Release folders, the.ncb file, and any project user options files to reduce size. All that should be left is the project solution, the project file, the source folder, the executable folder, and the README document(s). I will be recompiling all of the projects even though you are handing in the executable and I do not want to include the.dll files for each one myself. Gmail does not like zip files containing executables. You may delete the executable leaving the.dll files or use a different compression method. Rename the LabFiles folder to Lab#-StudentNames, replacing the # with the actual lab number and filling in your name or names as necessary. Then compress it into zip or some other format. The end result compressed file should be less than 1Mb. It will grow as the semester progresses but it will always remain small. the file to your TA, Andrew Doxon at adoxon@gmail.com. The heading should state it is a lab assignment handin and the body should contain the first and last names of the students responsible for the lab. ME 7960 Haptics Lab 2 Page 2 of 9

3 README files Each lab assignment will contain a readme document titled "README-Lab#". Replace the # with the corresponding lab number. These readme files simply contain information on each environment developed. A basic README file was provided with the template for lab1. The first page of the README file is a title page. This page must contain the name(s) of the students who worked on the lab as well as a list of the environments that are contained within the document. The remainder of the document lists each environment in turn and provides a brief description along with any special features or items you included. It can be as simple as the example or as complex as you like so long as it is readable. A new README file will be added to the LabFiles folder with each lab. All prior README files will remain and be included in the handin. Lab 4 Assignment This lab will build on your work from labs 1, 2 & 3. Your new device and each new environment must have a new class file (appropriately named). All environments previously implemented will be included in the project and handin file but will not be included in the environments list. Refer to other instructions from previous lab handouts as necessary. Correctly written class files should compile and work automatically in the template. The easiest way to create proper class files is to copy the.cpp and.h files from a working environment class and rename as appropriate. You will also need to modify the environment list within the main.cpp file. For each class you create in this lab you will need to add the correct #include statement and push it onto the environment list. Please comment out prior lab environments so that they can be easily accessed but will not render in the current code. ME 7960 Haptics Lab 2 Page 3 of 9

4 Remember, before you run your code. FIRMLY GRASP THE HANDLE/KNOB OF THE HAPTIC PADDLE TO PREVENT IT FROM ACCIDENTALLY DESTROYING ITSELF BY SLAMMING INTO ITS OWN HARD STOPS OR OTHER OBJECTS IF IT HAS AN UNSTABLE OR UNINTENDED PROGRAMMED BEHAVIOR!!! IT IS STRONGER THAN YOU MAY EXPECT. Your task for this lab is to create a new device class for a haptic paddle using a Sensoray 626 card and some testing environments. All the information you will need to write the device class is contained within the two reference manuals provided. Plan out your code before writing it. This will help organize your code, make it easier to write, and contain fewer errors. Continuously compile your code to make sure that each added change still works. Your end goal is to create a device class to control the haptic paddle and a vibrotactor along with a few test environments. The following instructions are a suggested method to follow to complete this lab. Be sure to include a brief description of the device class in the README file along with your environments. The environments you are writing are haptic systems. As such they should feel stable for all users. This commonly means using lower gains. A good way to test if your system is stable is to use a light grip and tap the virtual surface. If you feel a slight buzzing or more you need to reduce your gains. Start with lower gains as the haptic paddles can produce a high maximum force. Extra credit: Extra credit may be given for work above and beyond the basic instructions if it is deemed suitable. If you are unsure about your idea, ask. Writing the device to handle multiple 626 cards or devices per card will grant extra credit. But doing this correctly will require quite a bit of thought. 1. First be sure to download the package provided for you. This package contains the two reference manuals on the 626 card as well as the three files needed to interface with the card. A short description of each file is provided below. Downloading the current lab template will make this lab easier. Andrew has implemented the starting environment separately as well as a few minor changes that will be helpful in this lab. Simply update the main file to include your previous environments. 626 DLL Manual.pdf - contains descriptions of all the function calls and C code examples for each. This is your primary resource in coding the device class. 626 Instruction Manual.PDF - contains reference material on the physical 626 card itself. You will need this to determine what inputs and outputs to use based on pin connections provided in the schematics below. APP626.h - lists #defines used by the function calls Win626.h - defines the function calls that interface with the 626 card. You will need this #included in your device class file. WIN626.c - contains the actual function call links with the.dll file ME 7960 Haptics Lab 2 Page 4 of 9

5 2. Set up your device class file. You should start by creating the shell of the device class. This is just a placeholder and the actual functions will be written later. This way you can insert the shell into the haptic program and test the functions as your write them. A good starting point for this is to take the cfalcondevice class from chai and prune out all the unnecessary parts including the contents of the function calls. Your haptic paddle device class will be a public child of cgenerichapticdevice. This means you will need to #include "devices/cgenerichapticdevice.h" in your class and put :public cgenerichapticdevice after the class name when defining it. The cfalcondevice class is already a child of cgenerichapticdevice and thus far you have been defining all your environments as public children of the Environment class. This way your device can be swapped out with any chai device easily. Your device class will contain the following four specific functions: open, close, getposition, and setforce. You may add additional functions if you wish. Remember this is just a shell and the functions should contain nothing {} as you have no way of testing them. Below is a brief description of each of the four necessary functions. Feel free to change the inputs to the open and close functions but getposition and setforce will take the inputs defined below. The names of these functions match those used in the all chai devices. open(); load the.dll open the 626 card initialize encoder(s) analog and digital outputs do not need setup on the 626 card close(); write 0 values to all outputs close the 626 card close the.dll encoders and other inputs do not need to be changed getposition(double& a_position); This function should get the current encoder count convert the count to a position o beware the returned count is signed 24 bit return the position in the a_position variable setforce(const double& a_force); compute output voltage using the kinematics and a_force variable o current amplifiers have a gain of 1V to 0.25A set the output voltage on the appropriate DAC (limit in code to ±10V) ME 7960 Haptics Lab 2 Page 5 of 9

6 3. Replace Falcon device with your new one. Now you want to place your device shell into the haptic program. This will allow you to know that you have set it up correctly and test its functionality as you go. Create a new instance of your haptic paddle device in the GlobalVariables.h file. In the main file open this device and pass it to the environment. Commenting out the falcon if you wish. You will need to #include your class header file anywhere you use the class. Appropriately add the close() method call to the main file, in the keyselect function under the escape case. The Falcon did not necessarily need to be closed but the 626 card does. You now need to make a starting environment to work with the haptic paddle device class properly. Make a copy of the current starting environment for 1 DOF motion. You always want a starting environment. Really, you just need to have a starting environment that provides no forces to the device. 4. Modify the cgenerichapticdevice.h file. You will also need to modify the cgenerichapticdevice.h file. The makers of chai did not include proper support for 1 and 2 DOF devices. Open the file and find the function description for getposition and setforce and add an additional definition matching the ones you have in your device shell. Make sure these are virtual so that they can be properly accessed. ME 7960 Haptics Lab 2 Page 6 of 9

7 5. Complete your device methods. Now that your device shell is integrated in the program you can begin writing your device methods. You may want to make a dummy environment which will not be included in the final handin to test functionality as you go. The schematic below shows how the haptic paddle is connected to the Sensoray 626 card. You will need to look up the ports that the pins below correspond to in the card reference manual and the correct commands for controlling the 626 card in the DLL reference manual. Almost all the code you will need to write the device class is provided for you in the examples of the DLL reference manual. Maxon RE35 motor External Power Must turn external power on to get forces Haptic Paddle Motor Motor Encoder + - E I-D-D-B 5V A B GND Amplifier Box 1V input => 0.25A output GND 5V J4 pin 21 J4 pin 24 enc. A J4 pin 20 enc. B J4 pin 23 DAC out J1 pin 42 AGND J1 pin 40 The necessary methods and what they should do are listed again below. open(); load the.dll open the 626 card initialize encoder(s) analog and digital outputs do not need setup on the 626 card close(); write 0 values to all outputs close the 626 card close the.dll encoders and other inputs do not need to be changed getposition(double& a_position); This function should get the current encoder count convert the count to a position o beware the returned count is signed 24 bit return the position in the a_position variable setforce(const double& a_force); compute output voltage using the kinematics and a_force variable o current amplifiers have a gain of 1V to 0.25A set the output voltage on the appropriate DAC (limit in code to ±10V) ME 7960 Haptics Lab 2 Page 7 of 9

8 6. Create 1 simple testing environment with the Haptic Paddle. Once you have a working device class, you will need to create a simple environment to demonstrate it works. Examples are detents, a wall, textures, etc. Many of the environments you have already made can quickly be copied and altered to 1D. Make sure your gains are altered as the Haptic Paddles have different characteristics than the Falcon. You can try adding dimensionality to your system through graphics for extra credit (i.e., while motion may be constrained to 1D the rendered position does not need to be). 7. Add vibrotactor functionality. Now add a fifth method to your haptic paddle device to control the digital IO pins connected to the vibrotactor, shown below (we will have the vibrotactors connected as shown below). For uniformity this method should be defined as vibrotactor(bool ONOFF);. It should use the bool to turn on and off the vibrotactor and should not affect the other IO pins. You will need to add this functionality to the cgenerichapticdevice.h file as well, like you did in step 4, in order to access it. External Power Must turn external power on to get forces Vibrotactor Transistor Switch GND 5V input J2 pin 48 J2 pin 49 J2 pin Create a vibrotactor environment. Create a second environment to control the vibrotactor. Using timers, implement three distinct feeling haptic icons (buzz-tones) in this environment (think back to the vibrotactor demo we showed you on the first day). These haptic icons will be activated when the 1, 2, and 3 keys are pressed. Try to describe what you think these haptic icons should represent to a user in your README (e.g. emergency, stop, go, happy,...). Hints: Virtually everything you need is already in the template in some form or another. Google is your friend, use it. Try to think about how to perform the task specified before coding it. Whenever possible think in terms of vector math. It will only cause problems down the line if you break things ME 7960 Haptics Lab 2 Page 8 of 9

9 up into their components. provides some really good opengl resources and tutorials for just about everything you could want. has definitions and examples of basically every standard function in the C++ language. If you are using Google to search for functions this will likely show hits in the top few links. We would like to acknowledge Francois Conti, Federico Barbagli, and Kenneth Salisbury at Stanford University. The lab exercises presented herein largely come directly from their Experimental Haptics Course, CS277, and is based on their CHAI-3D environment. ME 7960 Haptics Lab 2 Page 9 of 9

EE-110 Introduction to Engineering & Laboratory Experience Saeid Rahimi, Ph.D. Labs Introduction to Arduino

EE-110 Introduction to Engineering & Laboratory Experience Saeid Rahimi, Ph.D. Labs Introduction to Arduino EE-110 Introduction to Engineering & Laboratory Experience Saeid Rahimi, Ph.D. Labs 10-11 Introduction to Arduino In this lab we will introduce the idea of using a microcontroller as a tool for controlling

More information

Programming Project 2

Programming Project 2 Programming Project 2 Design Due: 30 April, in class Program Due: 9 May, 4pm (late days cannot be used on either part) Handout 13 CSCI 134: Spring, 2008 23 April Space Invaders Space Invaders has a long

More information

Lab 2: Blinkie Lab. Objectives. Materials. Theory

Lab 2: Blinkie Lab. Objectives. Materials. Theory Lab 2: Blinkie Lab Objectives This lab introduces the Arduino Uno as students will need to use the Arduino to control their final robot. Students will build a basic circuit on their prototyping board and

More information

For more information on how you can download and purchase Clickteam Fusion 2.5, check out the website

For more information on how you can download and purchase Clickteam Fusion 2.5, check out the website INTRODUCTION Clickteam Fusion 2.5 enables you to create multiple objects at any given time and allow Fusion to auto-link them as parent and child objects. This means once created, you can give a parent

More information

CONCEPTS EXPLAINED CONCEPTS (IN ORDER)

CONCEPTS EXPLAINED CONCEPTS (IN ORDER) CONCEPTS EXPLAINED This reference is a companion to the Tutorials for the purpose of providing deeper explanations of concepts related to game designing and building. This reference will be updated with

More information

University of North Carolina-Charlotte Department of Electrical and Computer Engineering ECGR 3157 Electrical Engineering Design II Fall 2013

University of North Carolina-Charlotte Department of Electrical and Computer Engineering ECGR 3157 Electrical Engineering Design II Fall 2013 Exercise 1: PWM Modulator University of North Carolina-Charlotte Department of Electrical and Computer Engineering ECGR 3157 Electrical Engineering Design II Fall 2013 Lab 3: Power-System Components and

More information

Lab Assignment 3. Writing a text-based adventure. February 23, 2010

Lab Assignment 3. Writing a text-based adventure. February 23, 2010 Lab Assignment 3 Writing a text-based adventure February 23, 2010 In this lab assignment, we are going to write an old-fashioned adventure game. Unfortunately, the first adventure games did not have fancy

More information

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University Prof. Sunil P Khatri (Lab exercise created and tested by Ramu Endluri, He Zhou, Andrew Douglass

More information

Game Maker Tutorial Creating Maze Games Written by Mark Overmars

Game Maker Tutorial Creating Maze Games Written by Mark Overmars Game Maker Tutorial Creating Maze Games Written by Mark Overmars Copyright 2007 YoYo Games Ltd Last changed: February 21, 2007 Uses: Game Maker7.0, Lite or Pro Edition, Advanced Mode Level: Beginner Maze

More information

ECE2049: Foundations of Embedded Systems Lab Exercise #1 C Term 2018 Implementing a Black Jack game

ECE2049: Foundations of Embedded Systems Lab Exercise #1 C Term 2018 Implementing a Black Jack game ECE2049: Foundations of Embedded Systems Lab Exercise #1 C Term 2018 Implementing a Black Jack game Card games were some of the very first applications implemented for personal computers. Even today, most

More information

Introduction to Pspice

Introduction to Pspice 1. Objectives Introduction to Pspice The learning objectives for this laboratory are to give the students a brief introduction to using Pspice as a tool to analyze circuits and also to demonstrate the

More information

ME 461 Laboratory #5 Characterization and Control of PMDC Motors

ME 461 Laboratory #5 Characterization and Control of PMDC Motors ME 461 Laboratory #5 Characterization and Control of PMDC Motors Goals: 1. Build an op-amp circuit and use it to scale and shift an analog voltage. 2. Calibrate a tachometer and use it to determine motor

More information

Experiment 9 : Pulse Width Modulation

Experiment 9 : Pulse Width Modulation Name/NetID: Experiment 9 : Pulse Width Modulation Laboratory Outline In experiment 5 we learned how to control the speed of a DC motor using a variable resistor. This week, we will learn an alternative

More information

Introduction to programming with Fable

Introduction to programming with Fable How to get started. You need a dongle and a joint module (the actual robot) as shown on the right. Put the dongle in the computer, open the Fable programme and switch on the joint module on the page. The

More information

ME 461 Laboratory #3 Analog-to-Digital Conversion

ME 461 Laboratory #3 Analog-to-Digital Conversion ME 461 Laboratory #3 Analog-to-Digital Conversion Goals: 1. Learn how to configure and use the MSP430 s 10-bit SAR ADC. 2. Measure the output voltage of your home-made DAC and compare it to the expected

More information

CS277 - Experimental Haptics Lecture 2. Haptic Rendering

CS277 - Experimental Haptics Lecture 2. Haptic Rendering CS277 - Experimental Haptics Lecture 2 Haptic Rendering Outline Announcements Human haptic perception Anatomy of a visual-haptic simulation Virtual wall and potential field rendering A note on timing...

More information

The CHAI Libraries. F. Conti, F. Barbagli, R. Balaniuk, M. Halg, C. Lu, D. Morris L. Sentis, E. Vileshin, J. Warren, O. Khatib, K.

The CHAI Libraries. F. Conti, F. Barbagli, R. Balaniuk, M. Halg, C. Lu, D. Morris L. Sentis, E. Vileshin, J. Warren, O. Khatib, K. The CHAI Libraries F. Conti, F. Barbagli, R. Balaniuk, M. Halg, C. Lu, D. Morris L. Sentis, E. Vileshin, J. Warren, O. Khatib, K. Salisbury Computer Science Department, Stanford University, Stanford CA

More information

SPREADSHEET SET-UP. To switch simply click on the gear icon in the upper-left side of the page. Then click Experience the new Drive

SPREADSHEET SET-UP. To switch simply click on the gear icon in the upper-left side of the page. Then click Experience the new Drive NET PAY USING EXCEL Log in to your GoogleDrive account. If you have not switched to the New Google Drive switch over now so that what you see matches the screenshots used in these instructions. To switch

More information

Assignment 3: Particle System and Cloth Simulation

Assignment 3: Particle System and Cloth Simulation Assignment 3: Particle System and Cloth Simulation Release Date: Thursday, October 1, 2009 Due Date: Tuesday, October 20, 2009, 11:59pm Grading Value: 15% Overview: Cloth simulation has been an important

More information

CS/NEUR125 Brains, Minds, and Machines. Due: Wednesday, February 8

CS/NEUR125 Brains, Minds, and Machines. Due: Wednesday, February 8 CS/NEUR125 Brains, Minds, and Machines Lab 2: Human Face Recognition and Holistic Processing Due: Wednesday, February 8 This lab explores our ability to recognize familiar and unfamiliar faces, and the

More information

Overview. The Game Idea

Overview. The Game Idea Page 1 of 19 Overview Even though GameMaker:Studio is easy to use, getting the hang of it can be a bit difficult at first, especially if you have had no prior experience of programming. This tutorial is

More information

Math Spring 2014 Proof Portfolio Instructions And Assessment

Math Spring 2014 Proof Portfolio Instructions And Assessment Math 310 - Spring 2014 Proof Portfolio Instructions And Assessment Portfolio Description: Very few people are innately good writers, and that s even more true if we consider writing mathematical proofs.

More information

Begin at the beginning," the King said, very gravely, "and go on till you come to the end

Begin at the beginning, the King said, very gravely, and go on till you come to the end An Introduction to Alice Begin at the beginning," the King said, very gravely, "and go on till you come to the end By Teddy Ward Under the direction of Professor Susan Rodger Duke University, May 2013

More information

The Audio Synthesizer

The Audio Synthesizer The Audio Synthesizer Lab Summary In this laboratory, you will construct an audio synthesizer. The synthesizer generates signals for various tones that you will use for your Simon push buttons and win/lose

More information

Tutorial: Creating maze games

Tutorial: Creating maze games Tutorial: Creating maze games Copyright 2003, Mark Overmars Last changed: March 22, 2003 (finished) Uses: version 5.0, advanced mode Level: Beginner Even though Game Maker is really simple to use and creating

More information

CS 540-2: Introduction to Artificial Intelligence Homework Assignment #2. Assigned: Monday, February 6 Due: Saturday, February 18

CS 540-2: Introduction to Artificial Intelligence Homework Assignment #2. Assigned: Monday, February 6 Due: Saturday, February 18 CS 540-2: Introduction to Artificial Intelligence Homework Assignment #2 Assigned: Monday, February 6 Due: Saturday, February 18 Hand-In Instructions This assignment includes written problems and programming

More information

Designing in the context of an assembly

Designing in the context of an assembly SIEMENS Designing in the context of an assembly spse01670 Proprietary and restricted rights notice This software and related documentation are proprietary to Siemens Product Lifecycle Management Software

More information

Tac Due: Sep. 26, 2012

Tac Due: Sep. 26, 2012 CS 195N 2D Game Engines Andy van Dam Tac Due: Sep. 26, 2012 Introduction This assignment involves a much more complex game than Tic-Tac-Toe, and in order to create it you ll need to add several features

More information

Practical Assignment 1: Arduino interface with Simulink

Practical Assignment 1: Arduino interface with Simulink !! Department of Electrical Engineering Indian Institute of Technology Dharwad EE 303: Control Systems Practical Assignment - 1 Adapted from Take Home Labs, Oklahoma State University Practical Assignment

More information

Department of Computer Science and Engineering The Chinese University of Hong Kong. Year Final Year Project

Department of Computer Science and Engineering The Chinese University of Hong Kong. Year Final Year Project Digital Interactive Game Interface Table Apps for ipad Supervised by: Professor Michael R. Lyu Student: Ng Ka Hung (1009615714) Chan Hing Faat (1009618344) Year 2011 2012 Final Year Project Department

More information

Assignment 6 Play A Game: Minesweeper or Battleship!!! Due: Sunday, December 3rd, :59pm

Assignment 6 Play A Game: Minesweeper or Battleship!!! Due: Sunday, December 3rd, :59pm Assignment 6 Play A Game: Minesweeper or Battleship!!! Due: Sunday, December 3rd, 2017 11:59pm This will be our last assignment in the class, boohoo Grading: For this assignment, you will be graded traditionally,

More information

iphoto Getting Started Get to know iphoto and learn how to import and organize your photos, and create a photo slideshow and book.

iphoto Getting Started Get to know iphoto and learn how to import and organize your photos, and create a photo slideshow and book. iphoto Getting Started Get to know iphoto and learn how to import and organize your photos, and create a photo slideshow and book. 1 Contents Chapter 1 3 Welcome to iphoto 3 What You ll Learn 4 Before

More information

Robotic Manipulation Lab 1: Getting Acquainted with the Denso Robot Arms Fall 2010

Robotic Manipulation Lab 1: Getting Acquainted with the Denso Robot Arms Fall 2010 15-384 Robotic Manipulation Lab 1: Getting Acquainted with the Denso Robot Arms Fall 2010 due September 23 2010 1 Introduction This lab will introduce you to the Denso robot. You must write up answers

More information

ESE 350 Microcontroller Laboratory Lab 5: Sensor-Actuator Lab

ESE 350 Microcontroller Laboratory Lab 5: Sensor-Actuator Lab ESE 350 Microcontroller Laboratory Lab 5: Sensor-Actuator Lab The purpose of this lab is to learn about sensors and use the ADC module to digitize the sensor signals. You will use the digitized signals

More information

Warmup Due: Feb. 6, 2018

Warmup Due: Feb. 6, 2018 CS1950U Topics in 3D Game Engine Development Barbara Meier Warmup Due: Feb. 6, 2018 Introduction Welcome to CS1950U! In this assignment you ll be creating the basic framework of the game engine you will

More information

TEACHING HAPTIC RENDERING SONNY CHAN, STANFORD UNIVERSITY

TEACHING HAPTIC RENDERING SONNY CHAN, STANFORD UNIVERSITY TEACHING HAPTIC RENDERING SONNY CHAN, STANFORD UNIVERSITY MARCH 4, 2012 HAPTICS SYMPOSIUM Overview A brief introduction to CS 277 @ Stanford Core topics in haptic rendering Use of the CHAI3D framework

More information

ECE 5670/6670 Project. Brushless DC Motor Control with 6-Step Commutation. Objectives

ECE 5670/6670 Project. Brushless DC Motor Control with 6-Step Commutation. Objectives ECE 5670/6670 Project Brushless DC Motor Control with 6-Step Commutation Objectives The objective of the project is to build a circuit for 6-step commutation of a brushless DC motor and to implement control

More information

CS 251 Intermediate Programming Space Invaders Project: Part 3 Complete Game

CS 251 Intermediate Programming Space Invaders Project: Part 3 Complete Game CS 251 Intermediate Programming Space Invaders Project: Part 3 Complete Game Brooke Chenoweth Spring 2018 Goals To carry on forward with the Space Invaders program we have been working on, we are going

More information

Experiment # 4. Frequency Modulation

Experiment # 4. Frequency Modulation ECE 416 Fall 2002 Experiment # 4 Frequency Modulation 1 Purpose In Experiment # 3, a modulator and demodulator for AM were designed and built. In this experiment, another widely used modulation technique

More information

Cropping And Sizing Information

Cropping And Sizing Information and General The procedures and techniques described herein are intended to provide a means of modifying digital images for use in projection situations. This includes images being displayed on a screen

More information

ENGI E1006. Image Header You can think of the image as having two parts,

ENGI E1006. Image Header You can think of the image as having two parts, ENGI E1006 PPM Image Format (Thanks to Joshua Guerin, Debby Keen, and SIGCSE's Nifty Assignment session) The PPM (or Portable Pix Map) image format is encoded in human-readable ASCII text. For those of

More information

CBCL Limited Sheet Set Manager Tutorial 2013 REV. 02. CBCL Design Management & Best CAD Practices. Our Vision

CBCL Limited Sheet Set Manager Tutorial 2013 REV. 02. CBCL Design Management & Best CAD Practices. Our Vision CBCL Limited Sheet Set Manager Tutorial CBCL Design Management & Best CAD Practices 2013 REV. 02 Our Vision To be the most respected and successful Atlantic Canada based employeeowned firm, delivering

More information

EE320L Electronics I. Laboratory. Laboratory Exercise #3. Operational Amplifier Application Circuits. Angsuman Roy

EE320L Electronics I. Laboratory. Laboratory Exercise #3. Operational Amplifier Application Circuits. Angsuman Roy EE320L Electronics I Laboratory Laboratory Exercise #3 Operational Amplifier Application Circuits By Angsuman Roy Department of Electrical and Computer Engineering University of Nevada, Las Vegas Objective:

More information

Introduction to Analog Electronics Fall 2016 ECE 3400 Professor Jennifer Hasler Course Project Guide

Introduction to Analog Electronics Fall 2016 ECE 3400 Professor Jennifer Hasler Course Project Guide Introduction to Analog Electronics Fall 2016 ECE 3400 Professor Jennifer Hasler Course Project Guide 11/21/2016 Yusuf Ziya Kuriş Introduction I was challenged by the transition from the Electrical and

More information

SRV02-Series Rotary Experiment # 3. Ball & Beam. Student Handout

SRV02-Series Rotary Experiment # 3. Ball & Beam. Student Handout SRV02-Series Rotary Experiment # 3 Ball & Beam Student Handout SRV02-Series Rotary Experiment # 3 Ball & Beam Student Handout 1. Objectives The objective in this experiment is to design a controller for

More information

Lab 2: Introduction to Real Time Workshop

Lab 2: Introduction to Real Time Workshop Lab 2: Introduction to Real Time Workshop 1 Introduction In this lab, you will be introduced to the experimental equipment. What you learn in this lab will be essential in each subsequent lab. Document

More information

Begin this assignment by first creating a new Java Project called Assignment 5.There is only one part to this assignment.

Begin this assignment by first creating a new Java Project called Assignment 5.There is only one part to this assignment. CSCI 2311, Spring 2013 Programming Assignment 5 The program is due Sunday, March 3 by midnight. Overview of Assignment Begin this assignment by first creating a new Java Project called Assignment 5.There

More information

JoneSoft Generic Mod Enabler v2.6

JoneSoft Generic Mod Enabler v2.6 JoneSoft Generic Mod Enabler v2.6 User Guide 8 August 2010 Contents Introduction... 2 Installation... 3 1. Central installation... 3 2. Separate installation... 4 Installing over an existing installation...

More information

Lab Exercise 9: Stepper and Servo Motors

Lab Exercise 9: Stepper and Servo Motors ME 3200 Mechatronics Laboratory Lab Exercise 9: Stepper and Servo Motors Introduction In this laboratory exercise, you will explore some of the properties of stepper and servomotors. These actuators are

More information

2. Introduction to Computer Haptics

2. Introduction to Computer Haptics 2. Introduction to Computer Haptics Seungmoon Choi, Ph.D. Assistant Professor Dept. of Computer Science and Engineering POSTECH Outline Basics of Force-Feedback Haptic Interfaces Introduction to Computer

More information

GAME:IT Junior Bouncing Ball

GAME:IT Junior Bouncing Ball GAME:IT Junior Bouncing Ball Objectives: Create Sprites Create Sounds Create Objects Create Room Program simple game All games need sprites (which are just pictures) that, in of themselves, do nothing.

More information

Laboratory experiments and reports

Laboratory experiments and reports LABORATORY INSTRUCTION MANUAL Page 1 of 8 Laboratory experiments and reports Summary This document describes how to carry out experimental exercises, and how to prepare the lab reports for the Electronic

More information

Massachusetts Institute of Technology Dept. of Electrical Engineering and Computer Science Spring Semester, Introduction to EECS 2

Massachusetts Institute of Technology Dept. of Electrical Engineering and Computer Science Spring Semester, Introduction to EECS 2 Massachusetts Institute of Technology Dept. of Electrical Engineering and Computer Science Spring Semester, 2007 6.082 Introduction to EECS 2 Lab #1: Matlab and Control of PC Hardware Goal:... 2 Instructions:...

More information

Problem Points Check off 1 / 15 /2 2 / 20 /2 3a / 10 /2 3b / 25 /2 3c / 20 /2 /90 /10 Total /100

Problem Points Check off 1 / 15 /2 2 / 20 /2 3a / 10 /2 3b / 25 /2 3c / 20 /2 /90 /10 Total /100 ME430 Mechatronics Page 1 ME 430 Exam 2, Winter 2014-2015, All Sections Name Section You may use only: Any paper notes (including course handouts) you brought to the exam, or electronic notes residing

More information

ET 304A Laboratory Tutorial-Circuitmaker For Transient and Frequency Analysis

ET 304A Laboratory Tutorial-Circuitmaker For Transient and Frequency Analysis ET 304A Laboratory Tutorial-Circuitmaker For Transient and Frequency Analysis All circuit simulation packages that use the Pspice engine allow users to do complex analysis that were once impossible to

More information

Setting up Pro Tools I/O & connecting a microphone for Recording

Setting up Pro Tools I/O & connecting a microphone for Recording Setting up Pro Tools I/O & connecting a microphone for Recording The purpose of this lab is to demonstrate the ability to correctly connect a microphone to the Fast Track Pro interface in such a way that

More information

Lab 5: Inverted Pendulum PID Control

Lab 5: Inverted Pendulum PID Control Lab 5: Inverted Pendulum PID Control In this lab we will be learning about PID (Proportional Integral Derivative) control and using it to keep an inverted pendulum system upright. We chose an inverted

More information

Programming 2 Servos. Learn to connect and write code to control two servos.

Programming 2 Servos. Learn to connect and write code to control two servos. Programming 2 Servos Learn to connect and write code to control two servos. Many students who visit the lab and learn how to use a Servo want to use 2 Servos in their project rather than just 1. This lesson

More information

2D Platform. Table of Contents

2D Platform. Table of Contents 2D Platform Table of Contents 1. Making the Main Character 2. Making the Main Character Move 3. Making a Platform 4. Making a Room 5. Making the Main Character Jump 6. Making a Chaser 7. Setting Lives

More information

Unit 6.5 Text Adventures

Unit 6.5 Text Adventures Unit 6.5 Text Adventures Year Group: 6 Number of Lessons: 4 1 Year 6 Medium Term Plan Lesson Aims Success Criteria 1 To find out what a text adventure is. To plan a story adventure. Children can describe

More information

Microcomputers for Ham Radio

Microcomputers for Ham Radio Microcomputers for Ham Radio Glen Worstell SCCARC Short Skip May 4, 2015 Acknowledgements : Kerry, K3RRY, for information about the Arduino, and Matthias Koch for assistance with Mecrisp Forth. Introduction

More information

AN797 WDS USER S GUIDE FOR EZRADIO DEVICES. 1. Introduction. 2. EZRadio Device Applications Radio Configuration Application

AN797 WDS USER S GUIDE FOR EZRADIO DEVICES. 1. Introduction. 2. EZRadio Device Applications Radio Configuration Application WDS USER S GUIDE FOR EZRADIO DEVICES 1. Introduction Wireless Development Suite (WDS) is a software utility used to configure and test the Silicon Labs line of ISM band RFICs. This document only describes

More information

Understanding the Arduino to LabVIEW Interface

Understanding the Arduino to LabVIEW Interface E-122 Design II Understanding the Arduino to LabVIEW Interface Overview The Arduino microcontroller introduced in Design I will be used as a LabVIEW data acquisition (DAQ) device/controller for Experiments

More information

Lab 1: Steady State Error and Step Response MAE 433, Spring 2012

Lab 1: Steady State Error and Step Response MAE 433, Spring 2012 Lab 1: Steady State Error and Step Response MAE 433, Spring 2012 Instructors: Prof. Rowley, Prof. Littman AIs: Brandt Belson, Jonathan Tu Technical staff: Jonathan Prévost Princeton University Feb. 14-17,

More information

Laboratory Assignment Number 3 for Mech 143. Pre-Lab: Part 1 Interfacing to a DC Motor and Potentiometer

Laboratory Assignment Number 3 for Mech 143. Pre-Lab: Part 1 Interfacing to a DC Motor and Potentiometer Purpose: Minimum Parts Required: Laboratory Assignment Number 3 for Mech 143 Due by 5:00 pm on Thursday, February 11, 1999 Pre-Lab Due by 5:00pm on Tuesday, February 9, 1999 This lab is intended to acquaint

More information

Final Project: Reversi

Final Project: Reversi Final Project: Reversi Reversi is a classic 2-player game played on an 8 by 8 grid of squares. Players take turns placing pieces of their color on the board so that they sandwich and change the color of

More information

Introduction to Simulation of Verilog Designs. 1 Introduction

Introduction to Simulation of Verilog Designs. 1 Introduction Introduction to Simulation of Verilog Designs 1 Introduction An effective way of determining the correctness of a logic circuit is to simulate its behavior. This tutorial provides an introduction to such

More information

Experiment #12 BJT Differential Pairs

Experiment #12 BJT Differential Pairs Introduction: Experiment #1 BJT Differential Pairs Jonathan Roderick differential pair is a four port network that is shown in figure 1.1. These ports are labeled through D. However, a differential pair

More information

CS151 - Assignment 2 Mancala Due: Tuesday March 5 at the beginning of class

CS151 - Assignment 2 Mancala Due: Tuesday March 5 at the beginning of class CS151 - Assignment 2 Mancala Due: Tuesday March 5 at the beginning of class http://www.clubpenguinsaraapril.com/2009/07/mancala-game-in-club-penguin.html The purpose of this assignment is to program some

More information

Setup Download the Arduino library (link) for Processing and the Lab 12 sketches (link).

Setup Download the Arduino library (link) for Processing and the Lab 12 sketches (link). Lab 12 Connecting Processing and Arduino Overview In the previous lab we have examined how to connect various sensors to the Arduino using Scratch. While Scratch enables us to make simple Arduino programs,

More information

EE320L Electronics I. Laboratory. Laboratory Exercise #2. Basic Op-Amp Circuits. Angsuman Roy. Department of Electrical and Computer Engineering

EE320L Electronics I. Laboratory. Laboratory Exercise #2. Basic Op-Amp Circuits. Angsuman Roy. Department of Electrical and Computer Engineering EE320L Electronics I Laboratory Laboratory Exercise #2 Basic Op-Amp Circuits By Angsuman Roy Department of Electrical and Computer Engineering University of Nevada, Las Vegas Objective: The purpose of

More information

Distributed Intelligence in Autonomous Robotics. Assignment #1 Out: Thursday, January 16, 2003 Due: Tuesday, January 28, 2003

Distributed Intelligence in Autonomous Robotics. Assignment #1 Out: Thursday, January 16, 2003 Due: Tuesday, January 28, 2003 Distributed Intelligence in Autonomous Robotics Assignment #1 Out: Thursday, January 16, 2003 Due: Tuesday, January 28, 2003 The purpose of this assignment is to build familiarity with the Nomad200 robotic

More information

CURIE Academy, Summer 2014 Lab 2: Computer Engineering Software Perspective Sign-Off Sheet

CURIE Academy, Summer 2014 Lab 2: Computer Engineering Software Perspective Sign-Off Sheet Lab : Computer Engineering Software Perspective Sign-Off Sheet NAME: NAME: DATE: Sign-Off Milestone TA Initials Part 1.A Part 1.B Part.A Part.B Part.C Part 3.A Part 3.B Part 3.C Test Simple Addition Program

More information

PHOTOSHOP PUZZLE EFFECT

PHOTOSHOP PUZZLE EFFECT PHOTOSHOP PUZZLE EFFECT In this Photoshop tutorial, we re going to look at how to easily create a puzzle effect, allowing us to turn any photo into a jigsaw puzzle! Or at least, we ll be creating the illusion

More information

CSE 231 Spring 2013 Programming Project 03

CSE 231 Spring 2013 Programming Project 03 CSE 231 Spring 2013 Programming Project 03 This assignment is worth 30 points (3.0% of the course grade) and must be completed and turned in before 11:59 on Monday, January 28, 2013. Assignment Overview

More information

Microwave Circuit Design and Measurements Lab. MATCHING NETWORK DESIGN AND CIRCUIT LAYOUT Lab #8

Microwave Circuit Design and Measurements Lab. MATCHING NETWORK DESIGN AND CIRCUIT LAYOUT Lab #8 MATCHING NETWORK DESIGN AND CIRCUIT LAYOUT Lab #8 In this laboratory session and the associated out-of-lab computer-aided design work, the design of input and output matching networks in order to maximize

More information

Portland State University MICROCONTROLLERS

Portland State University MICROCONTROLLERS PH-315 MICROCONTROLLERS INTERRUPTS and ACCURATE TIMING I Portland State University OBJECTIVE We aim at becoming familiar with the concept of interrupt, and, through a specific example, learn how to implement

More information

EE 210 Lab Exercise #4 D/A & A/D Converters

EE 210 Lab Exercise #4 D/A & A/D Converters EE 210 Lab Exercise #4 D/A & A/D Converters Introduction This lab deals with simple resistive circuits to perform Digital-to-Analog (D/A) conversion. We also introduce the use of a basic Analog-to-Digital

More information

NMC Second Life Educator s Skills Series: How to Make a T-Shirt

NMC Second Life Educator s Skills Series: How to Make a T-Shirt NMC Second Life Educator s Skills Series: How to Make a T-Shirt Creating a t-shirt is a great way to welcome guests or students to Second Life and create school/event spirit. This article of clothing could

More information

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology http://www.cs.utexas.edu/~theshark/courses/cs354r/ Fall 2017 Instructor and TAs Instructor: Sarah Abraham theshark@cs.utexas.edu GDC 5.420 Office Hours: MW4:00-6:00pm

More information

CSE 260 Digital Computers: Organization and Logical Design. Lab 4. Jon Turner Due 3/27/2012

CSE 260 Digital Computers: Organization and Logical Design. Lab 4. Jon Turner Due 3/27/2012 CSE 260 Digital Computers: Organization and Logical Design Lab 4 Jon Turner Due 3/27/2012 Recall and follow the General notes from lab1. In this lab, you will be designing a circuit that implements the

More information

Exercise 5: PWM and Control Theory

Exercise 5: PWM and Control Theory Exercise 5: PWM and Control Theory Overview In the previous sessions, we have seen how to use the input capture functionality of a microcontroller to capture external events. This functionality can also

More information

BIEB 143 Spring 2018 Weeks 8-10 Game Theory Lab

BIEB 143 Spring 2018 Weeks 8-10 Game Theory Lab BIEB 143 Spring 2018 Weeks 8-10 Game Theory Lab Please read and follow this handout. Read a section or paragraph completely before proceeding to writing code. It is important that you understand exactly

More information

Lesson 3: Arduino. Goals

Lesson 3: Arduino. Goals Introduction: This project introduces you to the wonderful world of Arduino and how to program physical devices. In this lesson you will learn how to write code and make an LED flash. Goals 1 - Get to

More information

CMSC 201 Fall 2018 Project 3 Sudoku

CMSC 201 Fall 2018 Project 3 Sudoku CMSC 201 Fall 2018 Project 3 Sudoku Assignment: Project 3 Sudoku Due Date: Design Document: Tuesday, December 4th, 2018 by 8:59:59 PM Project: Tuesday, December 11th, 2018 by 8:59:59 PM Value: 80 points

More information

For this exercise, you will need a partner, an Arduino kit (in the plastic tub), and a laptop with the Arduino programming environment.

For this exercise, you will need a partner, an Arduino kit (in the plastic tub), and a laptop with the Arduino programming environment. Physics 222 Name: Exercise 6: Mr. Blinky This exercise is designed to help you wire a simple circuit based on the Arduino microprocessor, which is a particular brand of microprocessor that also includes

More information

Haptic Rendering CPSC / Sonny Chan University of Calgary

Haptic Rendering CPSC / Sonny Chan University of Calgary Haptic Rendering CPSC 599.86 / 601.86 Sonny Chan University of Calgary Today s Outline Announcements Human haptic perception Anatomy of a visual-haptic simulation Virtual wall and potential field rendering

More information

EE368/CS232 Digital Image Processing Winter Homework #3 Released: Monday, January 22 Due: Wednesday, January 31, 1:30pm

EE368/CS232 Digital Image Processing Winter Homework #3 Released: Monday, January 22 Due: Wednesday, January 31, 1:30pm EE368/CS232 Digital Image Processing Winter 2017-2018 Lecture Review and Quizzes (Due: Wednesday, January 31, 1:30pm) Please review what you have learned in class and then complete the online quiz questions

More information

Discovering A Lucrative Niche!

Discovering A Lucrative Niche! Lesson #2 Discovering A Lucrative Niche! By Jay Jennings http://www.productcreationstation.com NOTICE: You Do NOT Have the Right to Reprint or Resell this Report! You Also MAY NOT Give Away, Sell or Share

More information

Harvard Guide to Using Sources: How to Avoid Plagiarism

Harvard Guide to Using Sources: How to Avoid Plagiarism Copied from: http://isites.harvard.edu/icb/icb.do?keyword=k70847&pageid=icb.page342057 Harvard Guide to Using Sources: How to Avoid Plagiarism It's not enough to know why plagiarism is taken so seriously

More information

Building a Personal Portfolio in Blackboard UK SLIS

Building a Personal Portfolio in Blackboard UK SLIS Building a Personal Portfolio in Blackboard Creating a New Personal Portfolio UK SLIS 1. Enter the Blackboard Course, and select Portfolios Homepage in the Course Menu. 2. In the Portfolios page, you will

More information

CS 371M. Homework 2: Risk. All submissions should be done via git. Refer to the git setup, and submission documents for the correct procedure.

CS 371M. Homework 2: Risk. All submissions should be done via git. Refer to the git setup, and submission documents for the correct procedure. Homework 2: Risk Submission: All submissions should be done via git. Refer to the git setup, and submission documents for the correct procedure. The root directory of your repository should contain your

More information

Introduction. Modding Kit Feature List

Introduction. Modding Kit Feature List Introduction Welcome to the Modding Guide of Might and Magic X - Legacy. This document provides you with an overview of several content creation tools and data formats. With this information and the resources

More information

SC16A SERVO CONTROLLER

SC16A SERVO CONTROLLER SC16A SERVO CONTROLLER User s Manual V2.0 September 2008 Information contained in this publication regarding device applications and the like is intended through suggestion only and may be superseded by

More information

Name EET 1131 Lab #2 Oscilloscope and Multisim

Name EET 1131 Lab #2 Oscilloscope and Multisim Name EET 1131 Lab #2 Oscilloscope and Multisim Section 1. Oscilloscope Introduction Equipment and Components Safety glasses Logic probe ETS-7000 Digital-Analog Training System Fluke 45 Digital Multimeter

More information

CIDM 2315 Final Project: Hunt the Wumpus

CIDM 2315 Final Project: Hunt the Wumpus CIDM 2315 Final Project: Hunt the Wumpus Description You will implement the popular text adventure game Hunt the Wumpus. Hunt the Wumpus was originally written in BASIC in 1972 by Gregory Yob. You can

More information

COSC 3215 Embedded Systems Laboratory

COSC 3215 Embedded Systems Laboratory Introduction COSC 3215 Embedded Systems Laboratory Lab 5 Temperature Controller Your task will be to design a temperature controller using the Dragon12 board that will maintain the temperature of an object

More information

Laboratory set-up for Real-Time study of Electric Drives with Integrated Interfaces for Test and Measurement

Laboratory set-up for Real-Time study of Electric Drives with Integrated Interfaces for Test and Measurement Laboratory set-up for Real-Time study of Electric Drives with Integrated Interfaces for Test and Measurement Fong Mak, Ram Sundaram, Varun Santhaseelan, and Sunil Tandle Gannon University, mak001@gannon.edu,

More information

// Parts of a Multimeter

// Parts of a Multimeter Using a Multimeter // Parts of a Multimeter Often you will have to use a multimeter for troubleshooting a circuit, testing components, materials or the occasional worksheet. This section will cover how

More information

Assignment 5: Virtual Reality Design

Assignment 5: Virtual Reality Design Assignment 5: Virtual Reality Design Version 1.0 Visual Imaging in the Electronic Age Assigned: Thursday, Nov. 9, 2017 Due: Friday, December 1 November 9, 2017 Abstract Virtual reality has rapidly emerged

More information