CS12020 for CGVG. Practical 1. Jim Finnis

Size: px
Start display at page:

Download "CS12020 for CGVG. Practical 1. Jim Finnis"

Transcription

1 CS12020 for CGVG Practical 1 Jim Finnis (jcf1@aber.ac.uk)

2 About me 20 years in the games industry (more or less) Windows, PS2, Xbox, Gamecube, Wii development experience DirectX (more than I like to think about) OpenGL As well as a few engines... These days I'm studying for a PhD, giving hormones to robots

3 What we'll be covering Using the Arduino and custom-built shield as a very simple gaming platform Building a simple game Learning a little about displays Learning a little about inputs Because even with the best games engines, you always need to know what's really going on underneath.

4 What we'll be covering Learning about the architecture of a typical game The main loop State machines Most importantly, building on and using your knowledge of C.

5 This session Learning about the shield Connecting it Installing the library Running a test program Learning how the display works A simple exercise

6 The Shield Your Arduino, plugged in underneath Digital pin 13 LED y x Buttons 1-5 LED display headers passed though from the Arduino

7 The Shield 8x8 Bi-color LED matrix (red and green) Allows for four colours But can only show one row at a time! There are ways around this. Single red LED Connected to pin 13, like the one on the Arduino 5 buttons

8 Book out your shield! Go to the front and get a shield Sign the form to tell us you have a shield! Collect a worksheet while you're there

9 Connecting your shield Make sure you connect it with the Arduino disconnected from the PC. Make sure you connect it correctly. Double check every time Don't force it.

10 Connecting your shield Two chips and red LED this end Arduino connectors this end 6 pin row 6 pin analog header (labelled A0-A5 on your Arduino)

11 Care for your shield This is my shield. There are many others like it but this one is mine. Keep your shield dry avoid corrosion Keep it in a Tupperware box Don't knock it about or pile things on it Wrap it in cloth, tissue paper in its box Probably a good idea to keep it connected to the Arduino We have spares, but not many And you'll lose your deposit

12 Connecting your shield Now do worksheet 1, section 1 Don't move on yet.

13 How the display works The LED matrix can only show one row at a time (or rather, all rows switched on will show the same pattern) So how can we show a picture with different patterns for each row?

14 Persistence of Vision We very quickly turn show each row in turn by itself About 1000 times a second! This looks like a single picture because of persistence of vision (although it's really a bit more complicated than that) This is how old CRTs used to work Flickering lights at faster than about 16Hz appear steady And this is why low frame rates look bad in games.

15 Interrupts Functions which run automatically in response to hardware events What your program is doing is saved, the interrupt runs, the code goes back to your program. Your code doesn't notice Timers, button presses, etc. (except for a little time lost in the interrupt) This is how multitasking operating systems work

16 Interrupts We output the frame buffer to the LED matrix using an interrupt. Interrupts can be triggered by internal timers as well as external signals Our interrupt redisplays each line of the screen at very short intervals (but it's OK, the library sets it up for you) All you need to do is set pixel values in the frame buffer.the interrupt will do the rest.

17 The frame buffer The frame buffer is an array of values which the system uses to generate the display. The end product of all drawing operations is always a frame buffer. Our frame buffer is an array of 8 short (16 bit) integers Each entry in the array is a row, each adjacent pair of bits is a column one bit for red, one bit for green.

18 The frame buffer data[0] = R G R G R G R G R G R G R G R G data[1] = R G R G R G R G R G R G R G R G data[2] = R G R G R G R G R G R G R G R G data[3] = R G R G R G R G R G R G R G R G data[4] = R G R G R G R G R G R G R G R G data[5] = R G R G R G R G R G R G R G R G data[6] = R G R G R G R G R G R G R G R G data[7] = R G R G R G R G R G R G R G R G

19 Example

20 Example data[0]: = 0 data[1]: = 512 data[2]:? data[3]: should be obvious data[4] and so on should be really obvious

21 Writing to the AberLED frame buffer Luckily for you, you don't need to know how to access the bits directly but it still might be useful to you. For example, setting a whole row to red. To set an individual pixel to a colour, use AberLED.set(x,y,colour) where the colour is GREEN, RED, YELLOW or BLACK.

22 Coordinates The coordinate system for set() x (0,0) is top left This is a fairly common setup y

23 swap()? Your test code starts the system up, sets some pixels and then calls swap(). That's because the AberLED system is double buffered.

24 Tearing and Flickering These used to be common effects in games Tearing is due to the display being refreshed (redrawn onto the physical display) before we've finished working on it. Flickering is due to the need to build up the display in layers, some of which are going to get overdrawn think of a Head Up Display Both problems arise because the frame buffer is being displayed while we're drawing on it!

25 Tearing Also at

26 Flickering Consider the layers in this scene being built up

27 The solution We need to draw everything all at once somehow Obviously we can't really do that But we can build up our image on another frame buffer and then instantly copy it to the display buffer.

28 Double buffering Even better, we can keep two buffers. The back buffer is being drawn on while the front buffer is being displayed, When we've finished drawing, we swap the two buffers over (some people calling this flipping) The buffer we just drew as the back buffer is now the front buffer, and is being displayed The old front buffer now the back buffer, we can write our new picture to it.

29 Double buffering Graphics hardware (or interrupt) rendering the front buffer to the display Front displaying displaying displaying displaying Back drawing drawing drawing drawing Drawing code writing data to the back buffer

30 Double buffering So when you render a frame (a single picture) to the display you must: Clear the display to erase what was in the buffer before Draw your image by writing to the back buffer Swap the back and front buffers What you just drew will now be displayed, What was just displayed will now the back buffer and can be drawn over

31 Double buffering Why are we swapping? Why not just copy the back buffer to the front buffer? Hint: we can do the swap without copying any memory. How?

32 Double buffering We never actually move the buffer data We just swap pointers to it!

33 Pointer swapping buffera bufferb unsigned short buffera[8]; unsigned short bufferb[8]; unsigned short *frontbuffer = buffera; unsigned short *backbuffer = bufferb; back front

34 Pointer swapping buffera bufferb void swap(){ unsigned short *tmp = frontbuffer; frontbuffer = backbuffer; backbuffer = tmp; } back front

35 Pointer swapping buffera bufferb void swap(){ unsigned short *tmp = frontbuffer; frontbuffer = backbuffer; backbuffer = tmp; } back front

36 Pointer swapping buffera bufferb void swap(){ unsigned short *tmp = frontbuffer; frontbuffer = backbuffer; backbuffer = tmp; } back front

37 Pointer swapping buffera bufferb void swap(){ unsigned short *tmp = frontbuffer; frontbuffer = backbuffer; backbuffer = tmp; } back front

38 Pointer swapping buffera bufferb void swap(){ unsigned short *tmp = frontbuffer; frontbuffer = backbuffer; backbuffer = tmp; } back front

39 The Test Code #include <AberLED.h> void setup( ){ AberLED.begin(); AberLED.clear(); for(int i=0;i<8;i++){ AberLED.set(i,i,YELLOW); } AberLED.swap(); } void loop(){ } Include the library definition Start the LED library Clear the back buffer Set pixels (0,0), (1,1), (2,2) and so on to yellow in the back buffer Swap the front and back buffers The front buffer, the one which the interrupt is continuously displaying, will now show what we have drawn.

40 Extra information For those of you interested in the electronics The LED matrix requires 24 control signals one for each row, two for each column (red and green) We're controlling these using just 6 pins on the Arduino using shift registers chips which take a serial signal (i.e. a stream of bits over time) and convert them to a parallel signal (i.e. lots of outputs) More information on the worksheet

41 Making it move Our current program only draws one thing a diagonal line. What about animating something? We can use the Arduino loop() function, which is run repeatedly once setup() has finished.

42 Inside the loop function Clear the display with AberLED.clear() Draw everything Swap the buffers with AberLED.swap() Update variables Delay Why?

43 Exercise 1 Can you make a red dot move left to right across the screen? What variable(s) do you need? How should they change each time round the loop? How do you detect when the dot reaches the edge? What should the variable(s) do when that happens?

44 Exercise 2 Can you make it bounce off the ends instead of wrapping round? Do you need any more variables?

45 Input Your Arduino has 5 buttons You can get the state of each button with the getbutton(int number) if(aberled.getbutton(1)) Serial.println( eek );

46 Exercise 3 Can you change your program to make it move the dot in response to user buttons? Use buttons 1-4 to make the dot change direction, and button 5 to make it stop. What variables do you need? What should you do when the dot goes off the edge? Are there any problems?

CS12020 (Computer Graphics, Vision and Games) Worksheet 1

CS12020 (Computer Graphics, Vision and Games) Worksheet 1 CS12020 (Computer Graphics, Vision and Games) Worksheet 1 Jim Finnis (jcf1@aber.ac.uk) 1 Getting to know your shield First, book out your shield. This might take a little time, so be patient. Make sure

More information

CS12020 for CGVG. Practical 2. Jim Finnis

CS12020 for CGVG. Practical 2. Jim Finnis CS12020 for CGVG Practical 2 Jim Finnis (jcf1@aber.ac.uk) This week Solution to last week and discussion Global variables and the model The Main Loop pattern States and the State Machine pattern Random

More information

Linked Lists. What is a Linked List?

Linked Lists. What is a Linked List? Linked Lists Along with arrays, linked lists form the basis for pretty much every other data stucture out there. This makes learning and understand linked lists very important. They are also usually the

More information

University of Hull Department of Computer Science C4DI Interfacing with Arduinos

University of Hull Department of Computer Science C4DI Interfacing with Arduinos Introduction Welcome to our Arduino hardware sessions. University of Hull Department of Computer Science C4DI Interfacing with Arduinos Vsn. 1.0 Rob Miles 2014 Please follow the instructions carefully.

More information

Robotics and Electronics Unit 5

Robotics and Electronics Unit 5 Robotics and Electronics Unit 5 Objectives. Students will work with mechanical push buttons understand the shortcomings of the delay function and how to use the millis function. In this unit we will use

More information

D - Tic Tac Toe. Let's use our 9 sparkles to build a tic tac toe game! 2017 courses.techcamp.org.uk/ Page 1 of 9

D - Tic Tac Toe. Let's use our 9 sparkles to build a tic tac toe game! 2017 courses.techcamp.org.uk/ Page 1 of 9 D - Tic Tac Toe Let's use our 9 sparkles to build a tic tac toe game! 2017 courses.techcamp.org.uk/ Page 1 of 9 INTRODUCTION Let's use our 9 sparkles to build a tic tac toe game! Step 1 Assemble the Robot

More information

MITOCW watch?v=hverxup4cfg

MITOCW watch?v=hverxup4cfg MITOCW watch?v=hverxup4cfg PROFESSOR: We've briefly looked at graph isomorphism in the context of digraphs. And it comes up in even more fundamental way really for simple graphs where the definition is

More information

Connecting Arduino to Processing

Connecting Arduino to Processing Connecting Arduino to Processing Introduction to Processing So, you ve blinked some LEDs with Arduino, and maybe you ve even drawn some pretty pictures with Processing - what s next? At this point you

More information

Starting Windows Live Mail

Starting Windows Live Mail 1 Starting Windows Live Mail Click on the Start button Mail. and then, on the Start Menu, click on Windows Live A window like this will open: This picture shows you the whole screen. I've 'maximised' the

More information

Slide 1 CS 170 Java Programming 1

Slide 1 CS 170 Java Programming 1 CS 170 Java Programming 1 Objects and Methods Performing Actions and Using Object Methods Slide 1 CS 170 Java Programming 1 Objects and Methods Duration: 00:01:14 Hi Folks. This is the CS 170, Java Programming

More information

Load your files from the end of Lab A, since these will be your starting point.

Load your files from the end of Lab A, since these will be your starting point. Coursework Lab B It is extremely important that you finish lab A first, otherwise this lab session will probably not make sense to you. Lab B gives you a lot of the background and basics. The aim of the

More information

The Stack, Free Store, and Global Namespace

The Stack, Free Store, and Global Namespace Pointers This tutorial is my attempt at clarifying pointers for anyone still confused about them. Pointers are notoriously hard to grasp, so I thought I'd take a shot at explaining them. The more information

More information

Laboratory Exercise 8

Laboratory Exercise 8 Laboratory Exercise 8 Introduction to Graphics and Animation The purpose of this exercise is to learn how to display images and perform animation. We will use the Nios II processor, in the pre-build DE-series

More information

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between MITOCW Lecture 10A [MUSIC PLAYING] PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between all these high-level languages like Lisp and the query

More information

Introduction to Game Programming Lesson 4 Lecture Notes

Introduction to Game Programming Lesson 4 Lecture Notes Introduction to Game Programming Lesson 4 Lecture Notes Learning Objectives: Following this lecture, the student should be able to: Define frame rate List the factors that affect the amount of time a game

More information

Direct Variations DIRECT AND INVERSE VARIATIONS 19. Name

Direct Variations DIRECT AND INVERSE VARIATIONS 19. Name DIRECT AND INVERSE VARIATIONS 19 Direct Variations Name Of the many relationships that two variables can have, one category is called a direct variation. Use the description and example of direct variation

More information

Arduino IDE Friday, 26 October 2018

Arduino IDE Friday, 26 October 2018 Arduino IDE Friday, 26 October 2018 12:38 PM Looking Under The Hood Of The Arduino IDE FIND THE ARDUINO IDE DOWNLOAD First, jump on the internet with your favorite browser, and navigate to www.arduino.cc.

More information

CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions. The Midterm Exam was given in class on Thursday, October 23, 2008.

CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions. The Midterm Exam was given in class on Thursday, October 23, 2008. CS 381 Computer Graphics, Fall 2008 Midterm Exam Solutions The Midterm Exam was given in class on Thursday, October 23, 2008. 1. [4 pts] Drawing Where? Your instructor says that objects should always be

More information

36mm LED Pixels. Created by Phillip Burgess. Last updated on :45:20 PM EDT

36mm LED Pixels. Created by Phillip Burgess. Last updated on :45:20 PM EDT 36mm LED Pixels Created by Phillip Burgess Last updated on 2013-07-26 03:45:20 PM EDT Guide Contents Guide Contents Overview Project Ideas Wiring Powering Code Installation Using the Library Troubleshooting

More information

Slide 1 CS 170 Java Programming 1 Multidimensional Arrays Duration: 00:00:39 Advance mode: Auto

Slide 1 CS 170 Java Programming 1 Multidimensional Arrays Duration: 00:00:39 Advance mode: Auto CS 170 Java Programming 1 Working with Rows and Columns Slide 1 CS 170 Java Programming 1 Duration: 00:00:39 Create a multidimensional array with multiple brackets int[ ] d1 = new int[5]; int[ ][ ] d2;

More information

MITOCW MIT6_172_F10_lec18_300k-mp4

MITOCW MIT6_172_F10_lec18_300k-mp4 MITOCW MIT6_172_F10_lec18_300k-mp4 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for

More information

Pong in Unity a basic Intro

Pong in Unity a basic Intro This tutorial recreates the classic game Pong, for those unfamiliar with the game, shame on you what have you been doing, living under a rock?! Go google it. Go on. For those that now know the game, this

More information

Smoother Graphics Taking Control of Painting the Screen

Smoother Graphics Taking Control of Painting the Screen It is very likely that by now you ve tried something that made your game run rather slow. Perhaps you tried to use an image with a transparent background, or had a gazillion objects moving on the window

More information

MITOCW watch?v=penh4mv5gag

MITOCW watch?v=penh4mv5gag MITOCW watch?v=penh4mv5gag PROFESSOR: Graph coloring is the abstract version of a problem that arises from a bunch of conflict scheduling situations. So let's look at an example first and then define the

More information

CS 381 Computer Graphics, Fall 2012 Midterm Exam Solutions. The Midterm Exam was given in class on Tuesday, October 16, 2012.

CS 381 Computer Graphics, Fall 2012 Midterm Exam Solutions. The Midterm Exam was given in class on Tuesday, October 16, 2012. CS 381 Computer Graphics, Fall 2012 Midterm Exam Solutions The Midterm Exam was given in class on Tuesday, October 16, 2012. 1. [7 pts] Synthetic-Camera Model. Describe the Synthetic-Camera Model : how

More information

Contents. What's New. Version released. Newsletter #31 (May 24, 2008) What's New New version released, version 4.3.3

Contents. What's New. Version released. Newsletter #31 (May 24, 2008) What's New New version released, version 4.3.3 Campground Master Newsletter #31 (May 24, 2008) 1 Newsletter #31 (May 24, 2008) Contents What's New New version released, version 4.3.3 Q & A Retrieving credit card information Guarantee Info missing the

More information

CPSC 320 Notes, Playing with Graphs!

CPSC 320 Notes, Playing with Graphs! CPSC 320 Notes, Playing with Graphs! January 14, 2017 Today we practice reasoning about graphs by playing with two new terms. These terms/concepts are useful in themselves but not tremendously so; they're

More information

MITOCW watch?v=4dj1oguwtem

MITOCW watch?v=4dj1oguwtem MITOCW watch?v=4dj1oguwtem PROFESSOR: So it's time to examine uncountable sets. And that's what we're going to do in this segment. So Cantor's question was, are all sets the same size? And he gives a definitive

More information

COMP : Practical 6 Buttons and First Script Instructions

COMP : Practical 6 Buttons and First Script Instructions COMP126-2006: Practical 6 Buttons and First Script Instructions In Flash, we are able to create movies. However, the Flash idea of movie is not quite the usual one. A normal movie is (technically) a series

More information

Lesson 18: Animation. Computer Programming is Fun!

Lesson 18: Animation. Computer Programming is Fun! Lesson 18: Animation So how do you make your drawings move and change? That's what this section is about. I'd like to introduce you to your new friend, Mr. Timer. A timer gives you the ability to tell

More information

Computer Graphics. Chapter 1 (Related to Introduction to Computer Graphics Using Java 2D and 3D)

Computer Graphics. Chapter 1 (Related to Introduction to Computer Graphics Using Java 2D and 3D) Computer Graphics Chapter 1 (Related to Introduction to Computer Graphics Using Java 2D and 3D) Introduction Applications of Computer Graphics: 1) Display of Information 2) Design 3) Simulation 4) User

More information

Adobe Photoshop How to Use the Marquee Selection Tools

Adobe Photoshop How to Use the Marquee Selection Tools Adobe Photoshop How to Use the Marquee Selection Tools In Photoshop there are various ways to make a selection and also various reasons why you'd want to make a selection. You may want to remove something

More information

Instruction Case Vba Excel Between Two Dates

Instruction Case Vba Excel Between Two Dates Instruction Case Vba Excel Between Two Dates Countdown Timer Between Two Times (Not Dates) I've had serious issues with how VBA handles times and dates before in this manner, is there something. In some

More information

(Refer Slide Time: 1:43)

(Refer Slide Time: 1:43) (Refer Slide Time: 1:43) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture - 27 Pattern Detector So, we talked about Moore

More information

So on the survey, someone mentioned they wanted to work on heaps, and someone else mentioned they wanted to work on balanced binary search trees.

So on the survey, someone mentioned they wanted to work on heaps, and someone else mentioned they wanted to work on balanced binary search trees. So on the survey, someone mentioned they wanted to work on heaps, and someone else mentioned they wanted to work on balanced binary search trees. According to the 161 schedule, heaps were last week, hashing

More information

521493S Computer Graphics Exercise 1 (Chapters 1-3)

521493S Computer Graphics Exercise 1 (Chapters 1-3) 521493S Computer Graphics Exercise 1 (Chapters 1-3) 1. Consider the clipping of a line segment defined by the latter s two endpoints (x 1, y 1 ) and (x 2, y 2 ) in two dimensions against a rectangular

More information

M i c r o s o f t E x c e l A d v a n c e d P a r t 3-4. Microsoft Excel Advanced 3-4

M i c r o s o f t E x c e l A d v a n c e d P a r t 3-4. Microsoft Excel Advanced 3-4 Microsoft Excel 2010 Advanced 3-4 0 Absolute references There may be times when you do not want a cell reference to change when copying or filling cells. You can use an absolute reference to keep a row

More information

4. Write sets of directions for how to check for direct variation. How to check for direct variation by analyzing the graph :

4. Write sets of directions for how to check for direct variation. How to check for direct variation by analyzing the graph : Name Direct Variations There are many relationships that two variables can have. One of these relationships is called a direct variation. Use the description and example of direct variation to help you

More information

Lesson 4: Animation. Goals

Lesson 4: Animation. Goals Introduction: In this session you are going to use custom built tools in Arduino to help you turn images or animation into code that automatically uploads to your DIY Gamer. It is a fun and easy way to

More information

PC Transporter Components PC Transporter Pinouts

PC Transporter Components PC Transporter Pinouts PC Transporter Components PC Transporter Pinouts 1) From Apple II Speaker connection on motherboard 2) IIe keyboard adapter 3) Composite video (To IIe monitor or VCR/TV *VIDEO* input) 4) PC Transporter

More information

Open GL Framework For A Computer Graphics Course

Open GL Framework For A Computer Graphics Course Open GL Framework For A Computer Graphics Course Programmer: Daniel Odle Sponsor / Advisor: Dr. Morse University of Evansville 4-26-03 Table of Contents Introduction 3 Statement of Problem 3 Design Approach

More information

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #44. Multidimensional Array and pointers

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #44. Multidimensional Array and pointers Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #44 Multidimensional Array and pointers In this video, we will look at the relation between Multi-dimensional

More information

Blitz2D Newbies: Definitive Guide to Types by MutteringGoblin

Blitz2D Newbies: Definitive Guide to Types by MutteringGoblin Blitz2D Newbies: Definitive Guide to Types by MutteringGoblin Types are probably the hardest thing to understand about Blitz Basic. If you're using types for the first time, you've probably got an uneasy

More information

Digital Circuits. Page 1 of 5. I. Before coming to lab. II. Learning Objectives. III. Materials

Digital Circuits. Page 1 of 5. I. Before coming to lab. II. Learning Objectives. III. Materials I. Before coming to lab Read this handout and the supplemental. Also read the handout on Digital Electronics found on the course website. II. Learning Objectives Using transistors and resistors, you'll

More information

Instruction Case Vba Excel Between Two Date

Instruction Case Vba Excel Between Two Date Instruction Case Vba Excel Between Two Date Countdown Timer Between Two Times (Not Dates). No problem. We won't Random date-time between two date-times in Excel VBA 0 two processes in VBA. Excel VBA Date

More information

Adobe Flash CS3 Reference Flash CS3 Application Window

Adobe Flash CS3 Reference Flash CS3 Application Window Adobe Flash CS3 Reference Flash CS3 Application Window When you load up Flash CS3 and choose to create a new Flash document, the application window should look something like the screenshot below. Layers

More information

Coursework Lab A. Open the coursework project

Coursework Lab A. Open the coursework project Coursework Lab A The aim of this lab session is for you to learn the basics of how the coursework framework works. In this first of two lab sessions you will learn about drawing backgrounds and handling

More information

OPERATING SYSTEMS CS136

OPERATING SYSTEMS CS136 OPERATING SYSTEMS CS136 Jialiang LU Jialiang.lu@sjtu.edu.cn Based on Lecture Notes of Tanenbaum, Modern Operating Systems 3 e, 1 Chapter 5 INPUT/OUTPUT 2 Overview o OS controls I/O devices => o Issue commands,

More information

MITOCW watch?v=sdw8_0rdzuw

MITOCW watch?v=sdw8_0rdzuw MITOCW watch?v=sdw8_0rdzuw PROFESSOR: Directed acyclic graphs are a special class of graphs that really have and warrant a theory of their own. Of course, "directed acyclic graphs" is lot of syllables,

More information

Computer Graphics and Visualization. Graphics Systems and Models

Computer Graphics and Visualization. Graphics Systems and Models UNIT -1 Graphics Systems and Models 1.1 Applications of computer graphics: Display Of Information Design Simulation & Animation User Interfaces 1.2 Graphics systems A Graphics system has 5 main elements:

More information

Note. The above image and many others are courtesy of - this is a wonderful resource for designing circuits.

Note. The above image and many others are courtesy of   - this is a wonderful resource for designing circuits. Robotics and Electronics Unit 2. Arduino Objectives. Students will understand the basic characteristics of an Arduino Uno microcontroller. understand the basic structure of an Arduino program. know how

More information

Slide 1 CS 170 Java Programming 1 Expressions Duration: 00:00:41 Advance mode: Auto

Slide 1 CS 170 Java Programming 1 Expressions Duration: 00:00:41 Advance mode: Auto CS 170 Java Programming 1 Expressions Slide 1 CS 170 Java Programming 1 Expressions Duration: 00:00:41 What is an expression? Expression Vocabulary Any combination of operators and operands which, when

More information

Module 13C: Using The 3D Graphics APIs OpenGL ES

Module 13C: Using The 3D Graphics APIs OpenGL ES Module 13C: Using The 3D Graphics APIs OpenGL ES BREW TM Developer Training Module Objectives See the steps involved in 3D rendering View the 3D graphics capabilities 2 1 3D Overview The 3D graphics library

More information

MITOCW watch?v=rvrkt-jxvko

MITOCW watch?v=rvrkt-jxvko MITOCW watch?v=rvrkt-jxvko The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

3D LEADS 2D: ANIMATING A 3D CHARACTER WITH A 3D STAND-IN USING MAYA

3D LEADS 2D: ANIMATING A 3D CHARACTER WITH A 3D STAND-IN USING MAYA Chapter 3 3D CHARACTER LEADS 2D CHARACTER 53 printing and pegging of the 3D assets and possible registration issues. In scenes where one character is definitively leading the other one, it is an easy pipeline.

More information

Instructor: Craig Duckett. Lecture 04: Thursday, April 5, Relationships

Instructor: Craig Duckett. Lecture 04: Thursday, April 5, Relationships Instructor: Craig Duckett Lecture 04: Thursday, April 5, 2018 Relationships 1 Assignment 1 is due NEXT LECTURE 5, Tuesday, April 10 th in StudentTracker by MIDNIGHT MID-TERM EXAM is LECTURE 10, Tuesday,

More information

What's the Slope of a Line?

What's the Slope of a Line? What's the Slope of a Line? These lines look pretty different, don't they? Lines are used to keep track of lots of info -- like how much money a company makes. Just off the top of your head, which of the

More information

ENGR 40M Project 3c: Switch debouncing

ENGR 40M Project 3c: Switch debouncing ENGR 40M Project 3c: Switch debouncing For due dates, see the overview handout 1 Introduction This week, you will build on the previous two labs and program the Arduino to respond to an input from the

More information

How to Improve Your Campaign Conversion Rates

How to Improve Your  Campaign Conversion Rates How to Improve Your Email Campaign Conversion Rates Chris Williams Author of 7 Figure Business Models How to Exponentially Increase Conversion Rates I'm going to teach you my system for optimizing an email

More information

Real Time Data Plotting

Real Time Data Plotting Real Time Data Plotting Introduction This lesson will show how to write a program plot data on a X-Y graph. On the Arduino, write a program to sample a sensor and print the voltage to the Serial interface.

More information

Introduction to Computer Graphics (CS602) Lecture No 03 Graphics Systems

Introduction to Computer Graphics (CS602) Lecture No 03 Graphics Systems Introduction to Computer Graphics (CS602) Lecture No 03 Graphics Systems 3.1 Raster-Scan Systems Interactive raster graphics systems typically employ several processing units. In addition to the CPU, a

More information

CHIPS Newsletter Vol 5 - Yahoo! Mail. Official Newsletter of

CHIPS Newsletter Vol 5 - Yahoo! Mail. Official Newsletter of CHIPS Newsletter Vol 5 From: "chips@elproducts.net" To: "Chuck Hellebuyck" Thursday, April 29, 2010 12:07 AM CHIPs Vol 5 / April 28, 2010 Official Newsletter

More information

MITOCW ocw f99-lec12_300k

MITOCW ocw f99-lec12_300k MITOCW ocw-18.06-f99-lec12_300k This is lecture twelve. OK. We've reached twelve lectures. And this one is more than the others about applications of linear algebra. And I'll confess. When I'm giving you

More information

Module 003: Introduction to the Arduino/RedBoard

Module 003: Introduction to the Arduino/RedBoard Name/NetID: Points: /5 Module 003: Introduction to the Arduino/RedBoard Module Outline In this module you will be introduced to the microcontroller board included in your kit. You bought either An Arduino

More information

MITOCW watch?v=0jljzrnhwoi

MITOCW watch?v=0jljzrnhwoi MITOCW watch?v=0jljzrnhwoi The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

2.2" TFT Display. Created by lady ada. Last updated on :19:15 PM UTC

2.2 TFT Display. Created by lady ada. Last updated on :19:15 PM UTC 2.2" TFT Display Created by lady ada Last updated on 2017-12-22 11:19:15 PM UTC Guide Contents Guide Contents Overview Pinouts Assembly Arduino Wiring Arduino UNO or Compatible Wiring Wiring for Other

More information

Add in a new balloon sprite, and a suitable stage backdrop.

Add in a new balloon sprite, and a suitable stage backdrop. Balloons Introduction You are going to make a balloon-popping game! Step 1: Animating a balloon Activity Checklist Start a new Scratch project, and delete the cat sprite so that your project is empty.

More information

CSE143 Notes for Monday, 4/25/11

CSE143 Notes for Monday, 4/25/11 CSE143 Notes for Monday, 4/25/11 I began a new topic: recursion. We have seen how to write code using loops, which a technique called iteration. Recursion an alternative to iteration that equally powerful.

More information

All textures produced with Texture Maker. Not Applicable. Beginner.

All textures produced with Texture Maker. Not Applicable. Beginner. Tutorial for Texture Maker 2.8 or above. Note:- Texture Maker is a texture creation tool by Tobias Reichert. For further product information please visit the official site at http://www.texturemaker.com

More information

Graphical LCD Display Datasheet EB

Graphical LCD Display Datasheet EB Graphical LCD Display Datasheet EB043-00-1 Contents 1. About this document... 2 2. General information... 3 3. Board layout... 6 4. Testing this product... 7 5. Circuit description... 8 Appendix 1 Circuit

More information

CS 4300 Computer Graphics. Prof. Harriet Fell Fall 2012 Lecture 5 September 13, 2012

CS 4300 Computer Graphics. Prof. Harriet Fell Fall 2012 Lecture 5 September 13, 2012 CS 4300 Computer Graphics Prof. Harriet Fell Fall 2012 Lecture 5 September 13, 2012 1 Today s Topics Vectors review Shirley et al. 2.4 Rasters Shirley et al. 3.0-3.2.1 Rasterizing Lines Shirley et al.

More information

Overview: The Map Window

Overview: The Map Window Overview: The Map Window The Map Menu Map Window Tools and Controls Map Drawing Tools Clipboard Commands Undoing Edits Overview: The Map Window The MFworks Map window is a powerful facility for the visualization

More information

Java Programming. Computer Science 112

Java Programming. Computer Science 112 Java Programming Computer Science 112 Review: Problem solving Class 4 is the Whole Point of Programming. You can keep the papers; we gonna go through them on the board. If you are desperately confused

More information

Arduino 05: Digital I/O. Jeffrey A. Meunier University of Connecticut

Arduino 05: Digital I/O. Jeffrey A. Meunier University of Connecticut Arduino 05: Digital I/O Jeffrey A. Meunier jeffm@engr.uconn.edu University of Connecticut About: How to use this document I designed this tutorial to be tall and narrow so that you can read it on one side

More information

Introduction to Flash - Creating a Motion Tween

Introduction to Flash - Creating a Motion Tween Introduction to Flash - Creating a Motion Tween This tutorial will show you how to create basic motion with Flash, referred to as a motion tween. Download the files to see working examples or start by

More information

Flying Start AS Computer Science. September 2015

Flying Start AS Computer Science. September 2015 Flying Start AS Computer Science September 2015 Name: To your first AS Computing lesson, you will need to bring: 1. A folder with dividers An A4 ring binder with labelled A4 dividers would be ideal. The

More information

Computer graphic -- Programming with OpenGL I

Computer graphic -- Programming with OpenGL I Computer graphic -- Programming with OpenGL I A simple example using OpenGL Download the example code "basic shapes", and compile and run it Take a look at it, and hit ESC when you're done. It shows the

More information

Shadows in the graphics pipeline

Shadows in the graphics pipeline Shadows in the graphics pipeline Steve Marschner Cornell University CS 569 Spring 2008, 19 February There are a number of visual cues that help let the viewer know about the 3D relationships between objects

More information

Building an Arduino-powered underwater ROV

Building an Arduino-powered underwater ROV Building an Arduino-powered underwater ROV An ROV offers an entirely different way to use Arduino to explore a new world. This project is a bit different in two ways. First, there is quite a bit of mechanical

More information

P1_L3 Operating Systems Security Page 1

P1_L3 Operating Systems Security Page 1 P1_L3 Operating Systems Security Page 1 that is done by the operating system. systems. The operating system plays a really critical role in protecting resources in a computer system. Resources such as

More information

ECE 2036 Lab 4 Setup and Test mbed I/O Hardware Check-Off Deadline: Thursday, March 17, Name:

ECE 2036 Lab 4 Setup and Test mbed I/O Hardware Check-Off Deadline: Thursday, March 17, Name: ECE 2036 Lab 4 Setup and Test mbed I/O Hardware Check-Off Deadline: Thursday, March 17, 2016 Name: Item Part 1. (40%) Color LCD Hello World Part 2. (10%) Timer display on Color LCD Part 3. (25%) Temperature

More information

Water meter + Arduino = Aquameterduino!

Water meter + Arduino = Aquameterduino! Water meter + Arduino = Aquameterduino! The idea of this project is to use an arduino to count every drop of water that goes through the water company meter. Said arduino needs to be connected to my LAN

More information

MITOCW ocw f99-lec07_300k

MITOCW ocw f99-lec07_300k MITOCW ocw-18.06-f99-lec07_300k OK, here's linear algebra lecture seven. I've been talking about vector spaces and specially the null space of a matrix and the column space of a matrix. What's in those

More information

MultiJAMMA Switchboard Installation and User s Manual

MultiJAMMA Switchboard Installation and User s Manual MultiJAMMA Switchboard Installation and User s Manual 2000, Clay Cowgill Revision 1.0 Notice Regarding this Kit Warning! Although this kit has been tested and the techniques used will not directly cause

More information

Create a memory DC for double buffering

Create a memory DC for double buffering Animation Animation is implemented as follows: Create a memory DC for double buffering Every so many milliseconds, update the image in the memory DC to reflect the motion since the last update, and then

More information

Constraint Satisfaction Problems: A Deeper Look

Constraint Satisfaction Problems: A Deeper Look Constraint Satisfaction Problems: A Deeper Look The last problem set covered the topic of constraint satisfaction problems. CSP search and solution algorithms are directly applicable to a number of AI

More information

Note: Please use the actual date you accessed this material in your citation.

Note: Please use the actual date you accessed this material in your citation. MIT OpenCourseWare http://ocw.mit.edu 18.06 Linear Algebra, Spring 2005 Please use the following citation format: Gilbert Strang, 18.06 Linear Algebra, Spring 2005. (Massachusetts Institute of Technology:

More information

B - Broken Track Page 1 of 8

B - Broken Track Page 1 of 8 B - Broken Track There's a gap in the track! We need to make our robot even more intelligent so it won't get stuck, and can find the track again on its own. 2017 https://www.hamiltonbuhl.com/teacher-resources

More information

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 [talking head] This lecture we study theory design and implementation. Programmers have two roles to play here. In one role, they

More information

CPSC 320 Sample Solution, Playing with Graphs!

CPSC 320 Sample Solution, Playing with Graphs! CPSC 320 Sample Solution, Playing with Graphs! September 23, 2017 Today we practice reasoning about graphs by playing with two new terms. These terms/concepts are useful in themselves but not tremendously

More information

Slide 1 CS 170 Java Programming 1 Testing Karel

Slide 1 CS 170 Java Programming 1 Testing Karel CS 170 Java Programming 1 Testing Karel Introducing Unit Tests to Karel's World Slide 1 CS 170 Java Programming 1 Testing Karel Hi Everybody. This is the CS 170, Java Programming 1 lecture, Testing Karel.

More information

Lecture 4 Advanced Computer Graphics (CS & SE )

Lecture 4 Advanced Computer Graphics (CS & SE ) Lecture 4 Advanced Computer Graphics (CS & SE 233.420) Topics Covered Animation Matrices Viewing Lighting Animating Interactive Programs Consider planet.c Want to animate rotating the Earth around the

More information

EVENT-DRIVEN PROGRAMMING

EVENT-DRIVEN PROGRAMMING LESSON 13 EVENT-DRIVEN PROGRAMMING This lesson shows how to package JavaScript code into self-defined functions. The code in a function is not executed until the function is called upon by name. This is

More information

Azon Master Class. By Ryan Stevenson Guidebook #5 WordPress Usage

Azon Master Class. By Ryan Stevenson   Guidebook #5 WordPress Usage Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #5 WordPress Usage Table of Contents 1. Widget Setup & Usage 2. WordPress Menu System 3. Categories, Posts & Tags 4. WordPress

More information

CS Homework 10 p. 1. CS Homework 10

CS Homework 10 p. 1. CS Homework 10 CS 111 - Homework 10 p. 1 Deadline 11:59 pm on Friday, December 2, 2016 How to submit Each time you would like to submit your work: CS 111 - Homework 10 If your files are not already on nrs-labs, be sure

More information

The personal computer system uses the following hardware device types -

The personal computer system uses the following hardware device types - EIT, Author Gay Robertson, 2016 The personal computer system uses the following hardware device types - Input devices Input devices Processing devices Storage devices Processin g Cycle Processi ng devices

More information

Volume Shadows Tutorial Nuclear / the Lab

Volume Shadows Tutorial Nuclear / the Lab Volume Shadows Tutorial Nuclear / the Lab Introduction As you probably know the most popular rendering technique, when speed is more important than quality (i.e. realtime rendering), is polygon rasterization.

More information

4.3, Math 1410 Name: And now for something completely different... Well, not really.

4.3, Math 1410 Name: And now for something completely different... Well, not really. 4.3, Math 1410 Name: And now for something completely different... Well, not really. How derivatives affect the shape of a graph. Please allow me to offer some explanation as to why the first couple parts

More information

A CHILD S GUIDE TO DIRECT DATALOGGING WITH EXCEL. (All brickbats and bouquets gladly received - on the Arduino forum)

A CHILD S GUIDE TO DIRECT DATALOGGING WITH EXCEL. (All brickbats and bouquets gladly received - on the Arduino forum) A CHILD S GUIDE TO DIRECT DATALOGGING WITH EXCEL version 5 (All brickbats and bouquets gladly received - on the Arduino forum) This is an aide memoire for the PLX-DAQ macro for Excel. Parallax do not address

More information

Tutorial 3: Constructive Editing (2D-CAD)

Tutorial 3: Constructive Editing (2D-CAD) (2D-CAD) The editing done up to now is not much different from the normal drawing board techniques. This section deals with commands to copy items we have already drawn, to move them and to make multiple

More information