MzTEK Programming - Part 1
Upcoming SlideShare
Loading in...5
×
 

MzTEK Programming - Part 1

on

  • 1,261 views

First lecture on introductory programming for MzTEK. It covers basic workflow and primitive data types. It is assumed you are at least a little familiar with Processing and/or Arduino.

First lecture on introductory programming for MzTEK. It covers basic workflow and primitive data types. It is assumed you are at least a little familiar with Processing and/or Arduino.

Statistics

Views

Total Views
1,261
Views on SlideShare
857
Embed Views
404

Actions

Likes
3
Downloads
11
Comments
2

9 Embeds 404

http://blog.theleadingzero.com 183
http://www.codasign.com 78
http://www.laconcha.net 67
http://codasign.com 63
http://safe.tumblr.com 6
http://paper.li 4
http://activoro.us 1
http://www.netvibes.com 1
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

MzTEK Programming - Part 1 MzTEK Programming - Part 1 Presentation Transcript

  • WHAT WILL WE COVER?• Howcomputers work and the tools we can use to make them do what we want• The core components of a program • Data types • Control structures • Functions• Understanding code someone else has written• Look at programming for the Arduino and Processing environments
  • INTRODUCTIONS• Describe your experience with programming• What is something you want to be able to do? a dream project?
  • PAIRED PROGRAMMING• Find a partner with similar experience as you• You will share a computer and take turns typing• All exercises will be done in pairs
  • WHAT ARE PROGRAMS ANDWHY DO WE NEED THEM?
  • COMPUTERS ARE STUPID
  • Code You’ve Instructions for Written ? Computer Executable Program (e.g. .exe or .app)
  • Code You’ve Instructions for Written ? Computer Compiler Executable Program + (e.g. .exe or .app) Linker + Loader
  • Interactive Development Environment (IDE)Code You’ve Instructions for Written ? Computer Compiler Executable Program + (e.g. .exe or .app) Linker + Loader
  • Think of idea Write code Run program
  • Think of idea Break down problem into tiny steps Write code for one step Run program
  • EXERCISEWrite out the steps to either:• Knit a scarf• Make mashed potatoesIdentify the variables and break down steps to simplestinstructions. What gets repeated?What would you need to do to increase the length or increasethe number of servings?
  • WHY DO WE NEED TOCOMPILE PROGRAMS?
  • Interactive Development Environment (IDE)Code You’ve Instructions for Written ? Computer Compiler Executable Program + (e.g. .exe or .app) Linker + Loader
  • An IDE like Processingor Arduino includes• text editor• compiler and linker• other tools to help you
  • Compiler • Translate your text into a language (symbols) that a computer understands Linker • Combine the compiled output of what you’ve written with what? other people have written such as libraries Loader • On the Arduino chip, the program needs to be moved from your computer to the chip. With Processing, your computer is running the program, so it doesn’t need to be moved.
  • BRIEF HISTORY OF ARDUINO• Arduino means a piece of hardware, a programming language, and an IDE• The hardware is a microcontroller plus surrounding circuitry and is completely open - you can build your own board if you want to!• Language is based on Wiring which is based on Processing and C++ (a very common language)• IDEis written in Java and derived from Processing IDE and Wiring Project
  • BRIEF HISTORY OF PROCESSING• Processing is a set of libraries and a development environment• Initially developed to teach programming through visuals• The Processing Development Environment uses Java (another very common programming language)• Can use the Processing libraries outside of the Processing Development Environment
  • EXERCISEHook up Arduino board to /*computer and open the Blink Turns on an LED on for one second, then offArduino IDE. for one second, repeatedly. This example code is in the public domain.How do you choose the */compiler settings? How do void setup() { // initialize the digital pin as an output.you set up the loader? // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); }Open the blink example and void loop() {save as a new sketch digitalWrite(13, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(13, LOW); // set the LED offChange blink time so the LED } delay(1000); // wait for a secondstays on for 5 seconds.
  • HOW DO WE STORE DATA? -OR- WHAT ARE VARIABLES?
  • 2 tbsp olive oil or sun-dried tomato oil from the jar 1 tsp dried oregano or a small handful of fresh leaves, chopped 6 rashers of smoked streaky bacon, chopped 1 tsp dried thyme or a small handful of fresh leaves, chopped 2 large onions, chopped Drizzle balsamic vinegar 3 garlic cloves, crushed 12-14 sun-dried tomato halves, in oil 1kg/2¼lb lean minced beef Salt and freshly ground black pepper 2 large glasses of red wine A good handful of fresh basil leaves, torn 2x400g cans chopped tomatoes into small pieces 1x290g jar antipasti marinated 800g-1kg/1¾-2¼lb dried spaghetti mushrooms, drained Lots of freshly grated parmesan, to serve 2 fresh or dried bay leaves Heat the oil in a large, heavy-based saucepan and fry the bacon until golden over a medium heat. Add the onions and garlic, frying until softened. Increase the heat and add the minced beef. Fry it until it has browned, breaking down any chunks of meat with a wooden spoon. Pour in the wine and boil until it has reduced in volume by about a third. Reduce the temperature and stir in the tomatoes, drained mushrooms, bay leaves, oregano, thyme and balsamic vinegar.1. Either blitz the sun-dried tomatoes in a small blender with a little of the oil to loosen, or just finely chop before adding to the pan. Season well with salt and pepper. Cover with a lid and simmer the Bolognese sauce over a gentle heat for 1-1½ hours until its rich and thickened, stirring occasionally. At the end of the cooking time, stir in the basil and add any extra seasoning if necessary.2. Remove from the heat to settle while you cook the spaghetti in plenty of boiling salted water (for the time stated on the packet). Drain and divide between warmed plates. Scatter a little parmesan over the spaghetti before adding a good ladleful of the Bolognese sauce, finishing with a scattering of more cheese and a twist of black http://www.bbc.co.uk/food/recipes/spaghettibolognese_67868
  • 2 tbsp olive oil or sun-dried tomato oil from the jar 1 tsp dried oregano or a small handful of fresh leaves, chopped 6 rashers of smoked streaky bacon, chopped 1 tsp dried thyme or a small handful of fresh leaves, chopped 2 large onions, chopped Drizzle balsamic vinegar 3 garlic cloves, crushed 12-14 sun-dried tomato halves, in oil 1kg/2¼lb lean minced beef Salt and freshly ground black pepper 2 large glasses of red wine A good handful of fresh basil leaves, torn 2x400g cans chopped tomatoes into small pieces 1x290g jar antipasti marinated 800g-1kg/1¾-2¼lb dried spaghetti mushrooms, drained Lots of freshly grated parmesan, to serve 2 fresh or dried bay leaves Heat the oil in a large, heavy-based saucepan and fry the bacon until golden over a medium heat. Add the onions and garlic, frying until softened. Increase the heat and add the minced beef. Fry it until it has browned, breaking down any chunks of meat with a wooden spoon. Pour in the wine and boil until it has reduced in volume by about a third. Reduce the temperature and stir in the tomatoes, drained mushrooms, bay leaves, oregano, thyme and balsamic vinegar.1. Either blitz the sun-dried tomatoes in a small blender with a little of the oil to loosen, or just finely chop before adding to the pan. Season well with salt and pepper. Cover with a lid and simmer the Bolognese sauce over a gentle heat for 1-1½ hours until its rich and thickened, stirring occasionally. At the end of the cooking time, stir in the basil and add any extra seasoning if necessary.2. Remove from the heat to settle while you cook the spaghetti in plenty of boiling salted water (for the time stated on the packet). Drain and divide between warmed plates. Scatter a little parmesan over the spaghetti before adding a good ladleful of the Bolognese sauce, finishing with a scattering of more cheese and a twist of black http://www.bbc.co.uk/food/recipes/spaghettibolognese_67868
  • 2 tbsp olive oil or sun-dried tomato oil from the jar 1 tsp dried oregano or a small handful of fresh leaves, chopped 6 rashers of smoked streaky bacon, chopped 1 tsp dried thyme or a small handful of fresh leaves, chopped 2 large onions, chopped Drizzle balsamic vinegar 3 garlic cloves, crushed 12-14 sun-dried tomato halves, in oil 1kg/2¼lb lean minced beef Salt and freshly ground black pepper 2 large glasses of red wine A good handful of fresh basil leaves, torn 2x400g cans chopped tomatoes into small pieces 1x290g jar antipasti marinated 800g-1kg/1¾-2¼lb dried spaghetti mushrooms, drained Lots of freshly grated parmesan, to serve 2 fresh or dried bay leaves Heat the oil in a large, heavy-based saucepan and fry the bacon until golden over a medium heat. Add the onions and garlic, frying until softened. Increase the heat and add the minced beef. Fry it until it has browned, breaking down any chunks of meat with a wooden spoon. Pour in the wine and boil until it has reduced in volume by about a third. Reduce the temperature and stir in the tomatoes, drained mushrooms, bay leaves, oregano, thyme and balsamic vinegar.1. Either blitz the sun-dried tomatoes in a small blender with a little of the oil to loosen, or just finely chop before adding to the pan. Season well with salt and pepper. Cover with a lid and simmer the Bolognese sauce over a gentle heat for 1-1½ hours until its rich and thickened, stirring occasionally. At the end of the cooking time, stir in the basil and add any extra seasoning if necessary.2. Remove from the heat to settle while you cook the spaghetti in plenty of boiling salted water (for the time stated on the packet). Drain and divide between warmed plates. Scatter a little parmesan over the spaghetti before adding a good ladleful of the Bolognese sauce, finishing with a scattering of more cheese and a twist of black http://www.bbc.co.uk/food/recipes/spaghettibolognese_67868
  • 2 tbsp olive oil or sun-dried tomato oil from the jar 1 tsp dried oregano or a small handful of 6 rashers of smoked streaky bacon, We would be very irritated if fresh leaves, chopped chopped there was an ingredient needed, 1 tsp dried thyme or a small handful of fresh leaves, chopped 2 large onions, chopped 3 garlic cloves, crushed that wasn’t included here. Drizzle balsamic vinegar 12-14 sun-dried tomato halves, in oil 1kg/2¼lb lean minced beef Salt and freshly ground black pepper 2 large glasses of red wine A good handful of fresh basil leaves, torn 2x400g cans chopped tomatoes into small pieces 1x290g jar antipasti marinated 800g-1kg/1¾-2¼lb dried spaghetti mushrooms, drained Lots of freshly grated parmesan, to serve 2 fresh or dried bay leaves Heat the oil in a large, heavy-based saucepan and fry the bacon until golden over a medium heat. Add the onions and garlic, frying until softened. Increase the heat and add the minced beef. Fry it until it has browned, breaking down any chunks of meat with a wooden spoon. Pour in the wine and boil until it has reduced in volume by about a third. Reduce the temperature and stir in the tomatoes, drained mushrooms, bay leaves, oregano, thyme and balsamic vinegar.1. Either blitz the sun-dried tomatoes in a small blender with a little of the oil to loosen, or just finely chop before adding to the pan. Season well with salt and pepper. Cover with a lid and simmer the Bolognese sauce over a gentle heat for 1-1½ hours until its rich and thickened, stirring occasionally. At the end of the cooking time, stir in the basil and add any extra seasoning if necessary.2. Remove from the heat to settle while you cook the spaghetti in plenty of boiling salted water (for the time stated on the packet). Drain and divide between warmed plates. Scatter a little parmesan over the spaghetti before adding a good ladleful of the Bolognese sauce, finishing with a scattering of more cheese and a twist of black http://www.bbc.co.uk/food/recipes/spaghettibolognese_67868
  • 2 tbsp olive oil or sun-dried tomato oil from the jar 1 tsp dried oregano or a small handful of 6 rashers of smoked streaky bacon, We would be very irritated if fresh leaves, chopped chopped there was an ingredient needed, 1 tsp dried thyme or a small handful of fresh leaves, chopped 2 large onions, chopped 3 garlic cloves, crushed that wasn’t included here. Drizzle balsamic vinegar 12-14 sun-dried tomato halves, in oil 1kg/2¼lb lean minced beef Salt and freshly ground black pepper The units used to describe the amount 2 large glasses of red wine A good handful of fresh basil leaves, torn 2x400g cans chopped tomatoes of the ingredients varies according to 1x290g jar antipasti marinated into small pieces 800g-1kg/1¾-2¼lb dried spaghetti the culture of the person cooking. mushrooms, drained Lots of freshly grated parmesan, to serve 2 fresh or dried bay leaves Heat the oil in a large, heavy-based saucepan and fry the bacon until golden over a medium heat. Add the onions and garlic, frying until softened. Increase the heat and add the minced beef. Fry it until it has browned, breaking down any chunks of meat with a wooden spoon. Pour in the wine and boil until it has reduced in volume by about a third. Reduce the temperature and stir in the tomatoes, drained mushrooms, bay leaves, oregano, thyme and balsamic vinegar.1. Either blitz the sun-dried tomatoes in a small blender with a little of the oil to loosen, or just finely chop before adding to the pan. Season well with salt and pepper. Cover with a lid and simmer the Bolognese sauce over a gentle heat for 1-1½ hours until its rich and thickened, stirring occasionally. At the end of the cooking time, stir in the basil and add any extra seasoning if necessary.2. Remove from the heat to settle while you cook the spaghetti in plenty of boiling salted water (for the time stated on the packet). Drain and divide between warmed plates. Scatter a little parmesan over the spaghetti before adding a good ladleful of the Bolognese sauce, finishing with a scattering of more cheese and a twist of black http://www.bbc.co.uk/food/recipes/spaghettibolognese_67868
  • 2 tbsp olive oil or sun-dried tomato oil from the jar 1 tsp dried oregano or a small handful of 6 rashers of smoked streaky bacon, We would be very irritated if fresh leaves, chopped chopped there was an ingredient needed, 1 tsp dried thyme or a small handful of fresh leaves, chopped 2 large onions, chopped 3 garlic cloves, crushed that wasn’t included here. Drizzle balsamic vinegar 12-14 sun-dried tomato halves, in oil 1kg/2¼lb lean minced beef Salt and freshly ground black pepper The units used to describe the amount 2 large glasses of red wine A good handful of fresh basil leaves, torn 2x400g cans chopped tomatoes of the ingredients varies according to 1x290g jar antipasti marinated into small pieces 800g-1kg/1¾-2¼lb dried spaghetti the culture of the person cooking. mushrooms, drained Lots of freshly grated parmesan, to serve 2 fresh or dried bay leaves Heat the oil in a large, heavy-based saucepan and fry the bacon until golden over a medium heat. Add the onions and garlic, frying until softened. Increase the heat and add the minced beef. Fry it until it has browned, breaking down any chunks of meat with a wooden spoon. Pour in the wine and boil until it has reduced in volume by about a third. Reduce the temperature and stir in the tomatoes, It’s easier to follow the directions when drained mushrooms, bay leaves, oregano, thyme and balsamic vinegar.1. Either blitz the sun-dried tomatoes in a small blender with a little of the oil to loosen, or just finely chop before adding to the pan. Season well with salt and pepper. Cover with a lidof simmer the you don’t have to list the amounts and ingredients within the directions. Bolognese sauce over a gentle heat for 1-1½ hours until its rich and thickened, stirring occasionally. At the end of the cooking time, stir in the basil and add any extra seasoning if necessary.2. Remove from the heat to settle while you cook the spaghetti in plenty of boiling salted water (for the time stated on the packet). Drain and divide between warmed plates. Scatter a little parmesan over the spaghetti before adding a good ladleful of the Bolognese sauce, finishing with a scattering of more cheese and a twist of black http://www.bbc.co.uk/food/recipes/spaghettibolognese_67868
  • int x;int y;int width;int height;size(200, 200);x = 150;y = 100;width = 90;height = 80;ellipse(x, y, width, height);
  • int x;int y;int width; ingredients or variablesint height;size(200, 200);x = 150;y = 100;width = 90;height = 80;ellipse(x, y, width, height);
  • int x;int y;int width; ingredients or variablesint height;size(200, 200);x = 150;y = 100; directions or algorithmwidth = 90;height = 80;ellipse(x, y, width, height);
  • data type int x; int y; int width; ingredients or variables int height; size(200, 200); x = 150; y = 100; directions or algorithm width = 90; height = 80; ellipse(x, y, width, height);
  • data type variable name int x; int y; int width; ingredients or variables int height; size(200, 200); x = 150; y = 100; directions or algorithm width = 90; height = 80; ellipse(x, y, width, height);
  • Cooking uses units of weight or volume, computers use bytes.
  • Cooking uses units of weight or volume, computers use bytes. A bit is a 0 or a 1. 0 1
  • Cooking uses units of weight or volume, computers use bytes. A bit is a 0 or a 1. 0 1 A byte is eight 0s or 1s.
  • Cooking uses units of weight or volume, computers use bytes. A bit is a 0 or a 1. 0 1 A byte is eight 0s or 1s. 0s and 1s are used to represent things like numbers. It’s up to the programming language (and hardware) to determine what kinds of things 0s and 1s can represent.
  • PRIMITIVE DATA TYPES (FOR BOTH PROCESSING AND ARDUINO UNLESS NOTED OTHERWISE) boolean is true or false boolean running = false; In Arduino, byte is an unsigned number (no negative numbers) can be 0 to 255, 8-bits (2^8)Arduino Only B is put in front to indicate numbers are binary byte b = B10010; In Processing, byte is a number can be 127 to -128, 8-bits (2^8)Processing Only byte b = -125;
  • PRIMITIVE DATA TYPES(FOR BOTH PROCESSING AND ARDUINO UNLESS NOTED OTHERWISE) int is an integer ranging from -32,768 to 32,767 int i = 23456; long is a large integer ranging from -2,147,483,648 to 2,147,483,647 long g = 1239382345L;
  • PRIMITIVE DATA TYPES(FOR BOTH PROCESSING AND ARDUINO UNLESS NOTED OTHERWISE) float is a number with a decimal point ranging from -3.40282347E+38 to 3.40282347E+38 float f = -234.56; char is a single letter (or symbol like “.”) char myChar = A; unsigned char is a number 0 to 255, it is better to use the byte data type instead unsigned char myChar = 240;
  • PRIMITIVE DATA TYPES (FOR BOTH PROCESSING AND ARDUINO UNLESS NOTED OTHERWISE) word is the same as unsigned int is a number without a decimal point ranging from 0 to 65,535 (2^16) - 1)Arduino Only word w = 55424; unsigned int is a number without a decimal point ranging from 0 to 65,535 (2^16) - 1) unsigned int ui = 55424; unsigned long is a large integer ranging from 0 to 4,294,967,295 (2^32 - 1), so no negative numbers long g = 4239382345ul;
  • RULES FOR NAMING VARIABLES
  • RULES FOR NAMING VARIABLES $3%^ Don’t start with a character besides a letter
  • RULES FOR NAMING VARIABLES $3%^ Don’t start with a character besides a letterabc123 Only use numbers and letters and “_”
  • RULES FOR NAMING VARIABLES $3%^ Don’t start with a character besides a letterabc123 Only use numbers and letters and “_” if, for Can’t use words that hold meaning to the compiler
  • RULES FOR NAMING VARIABLES $3%^ Don’t start with a character besides a letterabc123 Only use numbers and letters and “_” if, for Can’t use words that hold meaning to the compiler rectHeight Be descriptive
  • RULES FOR NAMING VARIABLES $3%^ Don’t start with a character besides a letterabc123 Only use numbers and letters and “_” if, for Can’t use words that hold meaning to the compiler rectHeight Be descriptive aA Case is important
  • EXERCISEIn Processing, create a sketch which draws a green ellipse.Use the functions listed below. Look up these functionsin the Processing documentation for more guidance. size(width, height) fill(value1, value2, value3) ellipse(x, y, width, height)
  • DECLARATION VS INITIALISATION As in a recipe, ingredients need to be listed at the top so you know what to buy. In code, it’s so the compiler knows how much memory to reserve. This is called declaring.
  • DECLARATION VS INITIALISATION As in a recipe, ingredients need to be listed at the top so you know what to buy. In code, it’s so the compiler knows how much memory to reserve. This is called declaring. int myInt; Reserve space for an int
  • DECLARATION VS INITIALISATION As in a recipe, ingredients We don’t have to know need to be listed at the top what value will be stored in so you know what to buy. myInt right away. In code, it’s so the compiler We can choose a value knows how much memory to reserve. This is called later. This is called initialising. declaring. int myInt; Reserve space for an int
  • DECLARATION VS INITIALISATION As in a recipe, ingredients We don’t have to know need to be listed at the top what value will be stored in so you know what to buy. myInt right away. In code, it’s so the compiler We can choose a value knows how much memory to reserve. This is called later. This is called initialising. declaring. int myInt; myInt = 15; Reserve space for Store the value 15 in the an int space reserved for myInt 15
  • Need to declare before or at the sametime as initialisation.
  • Need to declare before or at the sametime as initialisation.myInt = 3;int myInt;
  • Need to declare before or at the sametime as initialisation.myInt = 3; int myInt;int myInt; myInt = 3;
  • Need to declare before or at the sametime as initialisation.myInt = 3; int myInt;int myInt; myInt = 3;Can’t use a variable before it is initialised.
  • Need to declare before or at the same time as initialisation. myInt = 3; int myInt; int myInt; myInt = 3; Can’t use a variable before it is initialised.int myInt;myInt = myInt + 7;
  • Need to declare before or at the same time as initialisation. myInt = 3; int myInt; int myInt; myInt = 3; Can’t use a variable before it is initialised.int myInt; int myInt = 3;myInt = myInt + 7; myInt = myInt + 7;
  • TO CREATE A VARIABLE1. Decide what the data type should be. Usually the main decisions are between int, float and char. float int char
  • TO CREATE A VARIABLE1. Decide what the data type should be. Usually the main decisions are between int, float and char. to create a float type float int char
  • TO CREATE A VARIABLE1. Decide what the data type should be. Usually the main decisions are between int, float and char. to create a float type float to create an int type int char
  • TO CREATE A VARIABLE1. Decide what the data type should be. Usually the main decisions are between int, float and char. to create a float type float to create an int type int to create a char type char
  • TO CREATE A VARIABLE1. Decide what the data type should be. Usually the main decisions are between int, float and char. to create a float type float to create an int type int to create a char type char2. Decide on a name for your variable. Remember the rules.
  • TO CREATE A VARIABLE1. Decide what the data type should be. Usually the main decisions are between int, float and char. to create a float type float to create an int type int to create a char type char2. Decide on a name for your variable. Remember the rules. float scale; int redValue; char finalMark;
  • TO CREATE A VARIABLE1. Decide what the data type should be. Usually the main decisions are between int, float and char. to create a float type float to create an int type int to create a char type char2. Decide on a name for your variable. Remember the rules. float scale; you get to choose int redValue; the name char finalMark;
  • TO CREATE A VARIABLE1. Decide what the data type should be. Usually the main decisions are between int, float and char. to create a float type float to create an int type int to create a char type char2. Decide on a name for your variable. Remember the rules. float scale; you get to choose int redValue; the name char finalMark;3. If you already know what the value of that variable is, then go ahead and set the value.
  • TO CREATE A VARIABLE1. Decide what the data type should be. Usually the main decisions are between int, float and char. to create a float type float to create an int type int to create a char type char2. Decide on a name for your variable. Remember the rules. float scale; you get to choose int redValue; the name char finalMark;3. If you already know what the value of that variable is, then go ahead and set the value. float scale = 0.5; int redValue = 199; char finalMark = ‘B’;
  • TO CREATE A VARIABLE1. Decide what the data type should be. Usually the main decisions are between int, float and char. to create a float type float to create an int type int to create a char type char2. Decide on a name for your variable. Remember the rules. float scale; you get to choose int redValue; the name char finalMark;3. If you already know what the value of that variable is, then go ahead and set the value. if you don’t know the float scale = 0.5; value yet, stop at step 2. int redValue = 199; but remember to end char finalMark = ‘B’; each line with a ;
  • EXERCISEIn Processing, return to your sketch which draws a greenellipse.Replace the numbers you’ve used as arguments in the fill( )and ellipse( ) functions with variables.What kind of datatypes do you need to use? What aregood descriptive names for those variables?