Introduction to Lab 2

Size: px
Start display at page:

Download "Introduction to Lab 2"

Transcription

1 Introduction to Lab 2 Programming in RTOS using LEGO Mindstorms Martin Stigge <martin.stigge@it.uu.se> 9. November 2009 Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

2 Lab 2: Programming in RTOS using LEGO Mindstorms Lab goals: Basic programming on an embedded device Using the API of an RTOS for current tasks Lab preparation: Form groups: 3 students each Possibly refresh your C knowledge Make sure your Windows login works! Lab will be done on Fri, and in rooms 1312D and 1313D Have a look at the lab homepage Lab report: C code to all 5 parts Answers to the questions To my mailbox, building 1, floor 4; Deadline: Mon, at 10:00 Further: Demonstrate a working vehicle, participate in car race on Return all hardware you get Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

3 LEGO Mindstorms Programmable LEGO brick with sensors and motors Comes in two generations: RCX generation (1998) NXT generation (2006) We will use the RCX platform Martin Stigge Lab 2: LEGO 9. November / 20

4 LEGO Mindstorms: Components Package contents: RCX unit: LCD display, 5 digits 4 Buttons Sensor inputs 1, 2, 3 Motor outputs A, B, C Infrared (IR) port Can store 8 programs Two touch sensors One light sensor Two motors RCX Internals: Hitatchi H8/3292, 32k RAM, 16k ROM, 8/16-bit architecture, 16MHz clock Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

5 RTOS: LegOS (BrickOS) We don t use the standard firmware Instead: LegOS (nowadays BrickOS ) (Soft) Real-time operating system Multitasking OS core Provides C/C++ development environment Support for threads, priorities, semaphores, event handling Comprehensive API for low-level I/O accesses Rest of this introduction: How to Upload the firmware Compile/upload programs Write programs/use LegOS API Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

6 LegOS: Firmware Upload 1 Start Cygwin (see lab homepage) 2 Compile firmware uploader if necessary (see lab homepage) 3 Upload firmware: (i) Power up RCX unit (six AA batteries, On/Off button) (ii) Power up IR transceiver (one 9V block battery) (iii) Connect IR transceiver to COM port (iv) Run firmdl: Example Run: Firmware upload $ cd / legos $ util / firmdl -s boot / legos. srec Transferring " boot / legos. srec " to RCX % $ Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

7 LegOS: Program Compile/Upload 1 Compile program using make 2 Upload program using util/dll RCX and IR transceiver need to be running (and idle) Example Run: Program compile/upload $ cd / legos / demo $ make... $ cd.. $ util / dll demo / helloworld.lx $ To compile own programs: Edit demo/makefile and add newprogram.lx to PROGRAMS= row Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

8 Remark: Working At Home You can do all this at home (using Windows/Linux/Mac) Some hints at lab homepage Biggest issue: IR transceiver needs COM port (RS-232) Only few boxes with USB RS-232 port Martin Stigge Lab 2: LEGO 9. November / 20

9 Programming For LegOS Ordinary C programs Have a look at demo/ directory! Listing: helloworld.c 1 # include <conio.h> // cputs (), cls () 2 # include < unistd.h > // sleep () 3 4 int main ( int argc, char ** argv ) { 5 6 cputs (" hello "); 7 sleep (1) ; 8 cputs (" world "); 9 sleep (1) ; 10 cls (); return 0; 13 } Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

10 Programming For LegOS Ordinary C programs Have a look at demo/ directory! Listing: helloworld.c 1 # include <conio.h> // cputs (), cls () 2 # include < unistd.h > // sleep () 3 4 int main ( int argc, char ** argv ) { 5 6 cputs (" hello "); 7 sleep (1) ; 8 cputs (" world "); 9 sleep (1) ; 10 cls (); return 0; 13 } Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

11 LegOS API LegOS C programs can t use standard C library But API offers a lot, including Input/Output (on LCD) Reading sensors (light/touch) Controlling motors Time functions (delay) Random numbers Multithreading (forking, semaphores) Wakeup on events Will do a short walk-through now See LEGO Command Reference! (Include corresponding header files!) Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

12 LegOS API: I/O Input via buttons Input via sensors (see next slide) Output via LCD: Strings, integers and sound Example: User Input/Output 1 // Input via buttons 2 if ( getchar () == KEY_ VIEW ) { // Blocking call! } 5 6 // Output 7 cls (); // Clears LCD 8 cputs (" Foo "); // String Output 9 lcd_int (42) ; // Integer Output dsound_ system ( DSOUND_ BEEP ); // Short " beep " Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

13 LegOS API: Sensors Touch/light sensors on inputs 1, 2 and 3 Read values from boolean/integer variables TOUCH 1, TOUCH 2, TOUCH 3: Touch sensors (boolean) LIGHT 1, LIGHT 2, LIGHT 3: Light sensors (integer) Active/passive mode Example: Sensor input 1 # define DARK_ THRESHOLD ds_ active (& SENSOR_ 1 ); // Set 1 st sensor to active mode if ( LIGHT_1 < DARK_ THRESHOLD ) { 7 // Handle darkness 8 } Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

14 LegOS API: Motors Motors can go forward/backward.. at a certain speed (between MIN SPEED and MAX SPEED) Can also brake (block movements) Example: Motor Control 1 // Motor A full speed forward 2 motor_a_dir ( fwd ); 3 motor_a_speed ( MAX_SPEED ); 4 5 // Everything full stop 6 motor_a_dir ( brake ); 7 motor_b_dir ( brake ); 8 motor_c_dir ( brake ); Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

15 LegOS API: Time and Randomness Delay execution: sleep() (seconds) and msleep() (milliseconds) Busy waiting: delay() Generate random number: random() and srandom() (set seed) Example: Time and randomness 1 sleep (23) ; // Sleep for 23 seconds 2 3 long int x = sys_ time ; // Read current time in ms 4 x += 1234; // Set x to time point 1234 ms later sleep ( x - sys_ time ); // Wait until time point x 7 8 srandom ( sys_ time ); // Initialize random seed with systime 9 if ( random () % 42 == 23) { // Execute this with ( not too ) low probability 11 } Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

16 LegOS API: Creating Threads Create new thread from a function: execi() pid_t execi(&process_func, int argc, char *argv[], priority_t priority, size_t stack_size); PROCESS FUNC is function for new thread Two arguments: int and char** Returns an int Pass arguments via global variables or argc/argv Priorities: Between PRIO LOWEST (1) and PRIO HIGHEST (20) Example: Creating Threads 1 // Define thread function 2 int foo ( int argc, char * argv []) {... } // Create thread ( starts running immediately!) 5 execi ( foo, 0, NULL, PRIO_NORMAL, DEFAULT_ STACK_ SIZE ); Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

17 LegOS API: Events Suspend thread until wake-up event: wait event() wakeup_t wait_event(wakeup_t(*wakeup) (wakeup_t), wakeup_t data); wakeup is function for event check Argument and return type: wakeup t (i.e., integer) Is called by OS every 20ms, releases thread if non-zero return value Example: Event Waiting 1 // Define wake - up function 2 wakeup_t sensor_ press_ wakeup ( wakeup_t data ) { 3 return TOUCH_1 TOUCH_3 ; 4 } // Wait for event 7 wait_ event ( sensor_ press_ wakeup, NULL ); 8 // Sensor pressed! Note: sleep() is implemented like this. (Exercise: How?) Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

18 LegOS API: Semaphores Used for signalling between threads, e.g., locking Type: sem t Init: sem init(sem t *sem, int pshared, unsigned int value) Blocking Wait: sem wait(sem t *sem) Non-blocking Wait: sem trywait(sem t *sem) Release: sem post(sem t *sem) See also: API reference Example: Locking Using A Semaphore 1 int A; 2 sem_t Asem ; 3 sem_ init (& Asem, 0, 1); // Semaphore gets initial value sem_ wait (& Asem ); // Aquire lock for A 6 A = 42; // Change A 7 sem_ post (& Asem ); // Release lock for A Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

19 Lab Assignment Part 1: Simple Light Detector Attach only light sensor Write simple Geiger counter : More Light = Faster Beeping Nothing fancy, just to get a soft start Part 2: Static Cyclic Scheduling Build a car from LEGO bricks, with motors and collision detectors Write four tasks to control it and a cyclic scheduler for them Part 3: Adding a watchdog task Add a watchdog task to Part 2 Part 4: Multitasking in BrickOS Restructure program to use multiple threads (one for each task) Add light sensor and line tracking Part 5: LEGO Car Race Tune car so that it can follow a track as fast as possible Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

20 LEGO Car Race Track looks roughly like this: Competition takes place on Fri, Fastest team wins! (Prize award included) Timeout is 5 minutes (if more: assignment failed, fix car) Keep in mind: Demo conditions might differ (different light etc.) Some hints: Build a physically robust car It should not break by itself! No hard-coding of light thresholds Calibrate at program start! Martin Stigge <martin.stigge@it.uu.se> Lab 2: LEGO 9. November / 20

21 The End Questions? (Now: Get LEGO boxes in groups of 3.) Martin Stigge Lab 2: LEGO 9. November / 20

Introduction to Lab 2

Introduction to Lab 2 Introduction to Lab 2 Programming in RTOS on LEGO Mindstorms Martin Stigge 15. September 2010 Martin Stigge Lab 2: LEGO 15. September 2010 1 / 20 Lab 2:

More information

Introduction to Lab 2

Introduction to Lab 2 Introduction to Lab 2 Programming in RTOS on LEGO Mindstorms Syed Md Jakaria Abdullah 10 September 2014 Lab 2: LEGO 10 September 2014 1 / 20 Lab

More information

Introduction to Lab 2

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

More information

Introduction to Lab 2

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

More information

Introduction to Lab 2

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

More information

CSC 714 Real Time Computer Systems. Project Report. Implementation of EDF, PIP, PCEP in BrickOS

CSC 714 Real Time Computer Systems. Project Report. Implementation of EDF, PIP, PCEP in BrickOS CSC 714 Real Time Computer Systems Project Report Implementation of EDF, PIP, PCEP in BrickOS Sushil Pai spai@ncsu.edu Project URL: http://www4.ncsu.edu/~spai/csc714 OBJECTIVE:... 3 INTRODUCTION:... 3

More information

LEGO Mindstorm EV3 Robots

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

More information

ArdOS The Arduino Operating System Reference Guide Contents

ArdOS The Arduino Operating System Reference Guide Contents ArdOS The Arduino Operating System Reference Guide Contents 1. Introduction... 2 2. Error Handling... 2 3. Initialization and Startup... 2 3.1 Initializing and Starting ArdOS... 2 4. Task Creation... 3

More information

Quick Reference Brickos guide :

Quick Reference Brickos guide : Quick Reference Brickos guide : Loops: for(statement, condition, statement){ //First statement executed on first iteration //Body executed while condition true //Last Statement executed after each completed

More information

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

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

More information

Hands-on Lab. Lego Programming BricxCC Basics

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

More information

USB. Bluetooth. Display. IO connectors. Sound. Main CPU Atmel ARM7 JTAG. IO Processor Atmel AVR JTAG. Introduction to the Lego NXT

USB. Bluetooth. Display. IO connectors. Sound. Main CPU Atmel ARM7 JTAG. IO Processor Atmel AVR JTAG. Introduction to the Lego NXT Introduction to the Lego NXT What is Lego Mindstorm? Andreas Sandberg A kit containing: A Lego NXT computer 3 motors Touch sensor Light sensor Sound sensor Ultrasonic range

More information

518 Lecture Notes Week 3

518 Lecture Notes Week 3 518 Lecture Notes Week 3 (Sept. 15, 2014) 1/8 518 Lecture Notes Week 3 1 Topics Process management Process creation with fork() Overlaying an existing process with exec Notes on Lab 3 2 Process management

More information

238P Operating Systems, Fall Counting Semaphores. Discussed on whiteboard 30 November Slides Posted 10 December 2018

238P Operating Systems, Fall Counting Semaphores. Discussed on whiteboard 30 November Slides Posted 10 December 2018 238P Operating Systems, Fall 2018 Counting Semaphores Discussed on whiteboard 30 November 2018 Slides Posted 10 December 2018 Aftab Hussain University of California, Irvine semaphore an integer variable

More information

LEGO mindstorm robots

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

More information

Fun with Java Technology on Lego Mindstorms

Fun with Java Technology on Lego Mindstorms Speaker logo centered below photo Fun with Java Technology on Lego Mindstorms Roger Glassey University of California, Berkeley Andy Shaw Sun Microsystems LEGO, the LEGO logo, MINDSTORMS, the Brick and

More information

Hands-on Lab. Lego Programming BricxCC Basics

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

More information

Project from Real-Time Systems Lego Mindstorms EV3

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

More information

Computers in Engineering Lab #2 Maze Treasure Searching

Computers in Engineering Lab #2 Maze Treasure Searching Computers in Engineering Lab #2 Maze Treasure Searching Objective The objective of this lab project is to program the robot to tracking the maze. The goal is to pick up all the silver treasure in the maze.

More information

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

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

More information

Unified Computers & Programming Installation Instructions for Windows

Unified Computers & Programming Installation Instructions for Windows Unified Computers & Programming Installation Instructions for Windows IMPORTANT INSTALLATION NOTE: The USB IR Tower has been known to cause Windows computers to crash if plugged in for prolonged periods.

More information

CS342 - Spring 2019 Project #3 Synchronization and Deadlocks

CS342 - Spring 2019 Project #3 Synchronization and Deadlocks CS342 - Spring 2019 Project #3 Synchronization and Deadlocks Assigned: April 2, 2019. Due date: April 21, 2019, 23:55. Objectives Practice multi-threaded programming. Practice synchronization: mutex and

More information

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

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

More information

Robotics II. Module 4: Bluetooth Communication

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

More information

Mechatronics Laboratory Assignment 2 Serial Communication DSP Time-Keeping, Visual Basic, LCD Screens, and Wireless Networks

Mechatronics Laboratory Assignment 2 Serial Communication DSP Time-Keeping, Visual Basic, LCD Screens, and Wireless Networks Mechatronics Laboratory Assignment 2 Serial Communication DSP Time-Keeping, Visual Basic, LCD Screens, and Wireless Networks Goals for this Lab Assignment: 1. Introduce the VB environment for PC-based

More information

1. What is the name of the control unit in Robotics? a. R2D2 b. MSN c. Pilot d. XJ7 e. RCX

1. What is the name of the control unit in Robotics? a. R2D2 b. MSN c. Pilot d. XJ7 e. RCX Quiz Name: Robotics Pilot/ Inventor Quiz Teacher: Mr. Famighetti Class: Robotics Instructions: Choose the best answer. Work with the members of your team only! 1. What is the name of the control unit in

More information

INTRODUCTION TO ARTIFICIAL INTELLIGENCE

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

More information

XS: Lisp on Lego MindStorms

XS: Lisp on Lego MindStorms XS: Lisp on Lego MindStorms Taiichi Yuasa Graduate School of Informatics, Kyoto University Kyoto 606-8501, Japan yuasa@kuis.kyoto-u.ac.jp ABSTRACT We present a Lisp system XS which is designed to control

More information

Robotics II. Module 3: Dealing with Files

Robotics II. Module 3: Dealing with Files Robotics II PREPARED BY Academic Services Unit December 2011 Applied Technology High Schools, 2011 Module 2: Dealing with Files Module Objectives Upon successful completion of this module, students should

More information

UNIT -3 PROCESS AND OPERATING SYSTEMS 2marks 1. Define Process? Process is a computational unit that processes on a CPU under the control of a scheduling kernel of an OS. It has a process structure, called

More information

Agreement. Objectives. General Guidelines for Labs. Reading Assignment

Agreement. Objectives. General Guidelines for Labs. Reading Assignment 1 CMPSC 111 Introduction to Computer Science I Fall 2016 Janyl Jumadinova Lab 9 for Section 1 17 November 2016 Due: 1 December, by 2:30 pm This is a team-based assignment. You have to work in teams of

More information

Real-Time Programming

Real-Time Programming Real-Time Programming Programming the car controller Process Speed: Loop next := get-time + 0.02 read sensor,compute,display sleep until next End loop Process Fuel Loop next:=get-time + 0.08 read data,

More information

CS 3305 Intro to Threads. Lecture 6

CS 3305 Intro to Threads. Lecture 6 CS 3305 Intro to Threads Lecture 6 Introduction Multiple applications run concurrently! This means that there are multiple processes running on a computer Introduction Applications often need to perform

More information

Robot Practical Course

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

More information

Part A: Monitoring the Rotational Sensors of the Motor

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

More information

Single thread Scheduler All processes called once each sample

Single thread Scheduler All processes called once each sample Single thread Scheduler All processes called once each sample void main(void) { init_routines(); done = 0; while (!done) { perform_process1(); // Highest priority process perform_process2(); perform_process3();//

More information

UNIX Input/Output Buffering

UNIX Input/Output Buffering UNIX Input/Output Buffering When a C/C++ program begins execution, the operating system environment is responsible for opening three files and providing file pointers to them: stdout standard output stderr

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Inter-process Communication (IPC) Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Recall Process vs. Thread A process is

More information

Interrupts, Fork, I/O Basics

Interrupts, Fork, I/O Basics Interrupts, Fork, I/O Basics 12 November 2017 Lecture 4 Slides adapted from John Kubiatowicz (UC Berkeley) 12 Nov 2017 SE 317: Operating Systems 1 Topics for Today Interrupts Native control of Process

More information

Robotics with Lego EV3 + MS Makecode. Andrea Sterbini

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

More information

TEVATRON TECHNOLOGIES PVT. LTD Embedded! Robotics! IoT! VLSI Design! Projects! Technical Consultancy! Education! STEM! Software!

TEVATRON TECHNOLOGIES PVT. LTD Embedded! Robotics! IoT! VLSI Design! Projects! Technical Consultancy! Education! STEM! Software! Summer Training 2016 Advance Embedded Systems Fast track of AVR and detailed working on STM32 ARM Processor with RTOS- Real Time Operating Systems Covering 1. Hands on Topics and Sessions Covered in Summer

More information

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

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

More information

KING FAHD UNIVERSITY OF PETROLEUM & MINERALS. Information and Computer Science Department. ICS 431 Operating Systems. Lab # 9.

KING FAHD UNIVERSITY OF PETROLEUM & MINERALS. Information and Computer Science Department. ICS 431 Operating Systems. Lab # 9. KING FAHD UNIVERSITY OF PETROLEUM & MINERALS Information and Computer Science Department ICS 431 Operating Systems Lab # 9 Semaphores Objectives: In this lab, we will use semaphore to solve various synchronization

More information

The industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite.

The industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite. EMBEDDED ARM TRAINING SUITE ARM SUITE INCLUDES ARM 7 TRAINER KIT COMPILER AND DEBUGGER THROUGH JTAG INTERFACE PROJECT DEVELOPMENT SOLUTION FOR ARM 7 e-linux LAB FOR ARM 9 TRAINING PROGRAM INTRODUCTION

More information

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: ,

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: , Question 2: (15 Marks) The Sleeping-Barber Problem: A barbershop consists of a waiting room with n chairs, and the barber room containing the barber chair. If there are no customers to be served, the barber

More information

MetaWatch Firmware Design Guide

MetaWatch Firmware Design Guide MetaWatch Firmware Design Guide MetaWatch Firmware Design Guide Page 1 of 14 1 Contents 1 Contents... 2 2 Introduction... 3 2.1 Revision History... 4 3 Hardware... 5 3.1 Common Watch Features... 5 3.2

More information

Introduction to Robotics using Lego Mindstorms EV3

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

More information

Mon Sep 17, 2007 Lecture 3: Process Management

Mon Sep 17, 2007 Lecture 3: Process Management Mon Sep 17, 2007 Lecture 3: Process Management September 19, 2007 1 Review OS mediates between hardware and user software QUIZ: Q: Name three layers of a computer system where the OS is one of these layers.

More information

Embedded Systems. Octav Chipara. Thursday, September 13, 12

Embedded Systems. Octav Chipara. Thursday, September 13, 12 Embedded Systems Octav Chipara Caught between two worlds Embedded systems PC world 2 What are embedded systems? Any device that includes a computer (but you don t think of it as a computer) iphone digital

More information

ROBOLAB Reference Guide

ROBOLAB Reference Guide ROBOLAB Reference Guide Version 1.2 2 Preface: Getting Help with ROBOLAB ROBOLAB is a growing application for which users can receive support in many different ways. Embedded in ROBOLAB are context help

More information

Team Project: A Surveillant Robot System

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

More information

Compile the Hello World program

Compile the Hello World program OS Project1 1 Hello World Writing a Hello World program #include header.h main ( int argc, char *argv[] ) { printf( Hello World!\n ); } Compile the Hello World program > gcc helloworld.c o helloworld 2

More information

ERIKA Enterprise Minimal API Manual....multithreading on a thumb!

ERIKA Enterprise Minimal API Manual....multithreading on a thumb! ERIKA Enterprise Minimal API Manual...multithreading on a thumb! version: 1.1.2 May 27, 2009 About Evidence S.r.l. Evidence is a spin-off company of the ReTiS Lab of the Scuola Superiore S. Anna, Pisa,

More information

Today s topic: Real Time Programming with Ada

Today s topic: Real Time Programming with Ada Today s topic: Real Time Programming with Ada 1 Programming the car controller (3) 76 800 Soft RT tasks speed 4 ABS 14 64 FUEL-4 FUEL-1 20 speed A feasible Schedule! speed 24 60 FUEL-3 54 ABS 44 speed

More information

Processes. Johan Montelius KTH

Processes. Johan Montelius KTH Processes Johan Montelius KTH 2017 1 / 47 A process What is a process?... a computation a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other

More information

Lab Course Microcontroller Programming

Lab Course Microcontroller Programming Technische Universität München Fakultät für Informatik Forschungs- und Lehreinheit Informatik VI Robotics and Embedded Systems Lab Course Microcontroller Programming Michael Geisinger geisinge@in.tum.de

More information

Lab 3b: Scheduling Multithreaded Applications with RTX & uvision

Lab 3b: Scheduling Multithreaded Applications with RTX & uvision COE718: Embedded System Design Lab 3b: Scheduling Multithreaded Applications with RTX & uvision 1. Objectives The purpose of this lab is to introduce students to RTX based multithreaded applications using

More information

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

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

More information

A process. the stack

A process. the stack A process Processes Johan Montelius What is a process?... a computation KTH 2017 a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other processes

More information

ROBOLAB Tutorial MAE 1170, Fall 2009

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

More information

THREADS & CONCURRENCY

THREADS & CONCURRENCY 27/04/2018 Sorry for the delay in getting slides for today 2 Another reason for the delay: Yesterday: 63 posts on the course Piazza yesterday. A7: If you received 100 for correctness (perhaps minus a late

More information

Multitasking. Embedded Systems

Multitasking. Embedded Systems Multitasking in Embedded Systems 1 / 39 Multitasking in Embedded Systems v1.0 Multitasking in ES What is Singletasking? What is Multitasking? Why Multitasking? Different approaches Realtime Operating Systems

More information

Project 1 System Calls

Project 1 System Calls Project 1 System Calls Introduction In this project, you will become familiar with: 1. Using the xv6 Makefile 2. Using conditional compilation. 3. The xv6 system call invocation path. 4. Implementing a

More information

RAM Based File System for HTTP daemon on Renesas M16 board

RAM Based File System for HTTP daemon on Renesas M16 board RAM Based File System for HTTP daemon on Renesas M16 board Cuong Phu Nguyen cpnguyen Kyung Chul Lee kclee CSC 714 Real Time Computer Systems Dr. Mueller November 30, 2005 1. Introduction The Renesas M16

More information

Development of a System for Teaching C/C++ Using Robots and Open Source Software in a CS1 Course

Development of a System for Teaching C/C++ Using Robots and Open Source Software in a CS1 Course Development of a System for Teaching C/C++ Using Robots and Open Source Software in a CS1 Course A. Delman, L. Goetz, Y. Langsam, T. Raphan Department of Computer and Information Science, Brooklyn College

More information

ArdOS The Arduino Operating System Quick Start Guide and Examples

ArdOS The Arduino Operating System Quick Start Guide and Examples ArdOS The Arduino Operating System Quick Start Guide and Examples Contents 1. Introduction... 1 2. Obtaining ArdOS... 2 3. Installing ArdOS... 2 a. Arduino IDE Versions 1.0.4 and Prior... 2 b. Arduino

More information

Robotics II. Module 2: Application of Data Programming Blocks

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

More information

Lab 3a: Scheduling Tasks with uvision and RTX

Lab 3a: Scheduling Tasks with uvision and RTX COE718: Embedded Systems Design Lab 3a: Scheduling Tasks with uvision and RTX 1. Objectives The purpose of this lab is to lab is to introduce students to uvision and ARM Cortex-M3's various RTX based Real-Time

More information

Process Synchronization

Process Synchronization Process Synchronization Part III, Modified by M.Rebaudengo - 2013 Silberschatz, Galvin and Gagne 2009 POSIX Synchronization POSIX.1b standard was adopted in 1993 Pthreads API is OS-independent It provides:

More information

Hello, and welcome to this presentation of the STM32L4 power controller. The STM32L4 s power management functions and all power modes will also be

Hello, and welcome to this presentation of the STM32L4 power controller. The STM32L4 s power management functions and all power modes will also be Hello, and welcome to this presentation of the STM32L4 power controller. The STM32L4 s power management functions and all power modes will also be covered in this presentation. 1 Please note that this

More information

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

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

More information

Operating systems for embedded systems. Embedded Operating Systems

Operating systems for embedded systems. Embedded Operating Systems Operating systems for embedded systems Embedded operating systems How do they differ from desktop operating systems? Programming model Process-based Event-based How is concurrency handled? How are resource

More information

Introduction to Programming (Java) 2/12

Introduction to Programming (Java) 2/12 Introduction to Programming (Java) 2/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction

More information

Fall 2015 COMP Operating Systems. Lab #3

Fall 2015 COMP Operating Systems. Lab #3 Fall 2015 COMP 3511 Operating Systems Lab #3 Outline n Operating System Debugging, Generation and System Boot n Review Questions n Process Control n UNIX fork() and Examples on fork() n exec family: execute

More information

AC OB S. Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014

AC OB S. Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014 AC OB S Multi-threaded FW framework (OS) for embedded ARM systems Torsten Jaekel, June 2014 ACOBS ACtive OBject (operating) System Simplified FW System for Multi-Threading on ARM embedded systems ACOBS

More information

5/11/2012 CMSIS-RTOS. Niall Cooling Feabhas Limited CMSIS. Cortex Microcontroller Software Interface Standard.

5/11/2012 CMSIS-RTOS. Niall Cooling Feabhas Limited  CMSIS. Cortex Microcontroller Software Interface Standard. Niall Cooling Feabhas Limited www.feabhas.com Cortex Microcontroller Software Interface Standard CMSIS 2 1 ARM Cortex Family A Series Application MMU Linux, Android, Windows R Series Real-Time MPU M Series

More information

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

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

More information

Operating Systems Design Fall 2010 Exam 1 Review. Paul Krzyzanowski

Operating Systems Design Fall 2010 Exam 1 Review. Paul Krzyzanowski Operating Systems Design Fall 2010 Exam 1 Review Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 To a programmer, a system call looks just like a function call. Explain the difference in the underlying

More information

Baggage Sorting Facility

Baggage Sorting Facility 02224 Modelling and Analysis of Real-Time Systems Spring 2018 1 Overview Mandatory Assignment 1 Baggage Sorting Facility This assignment deals with a baggage sorting facility such as the ones found in

More information

Part II Processes and Threads Process Basics

Part II Processes and Threads Process Basics Part II Processes and Threads Process Basics Fall 2017 Program testing can be used to show the presence of bugs, but never to show their absence 1 Edsger W. Dijkstra From Compilation to Execution A compiler

More information

Objectives. Introduction to process management of an operating system Explain step-by-step how processes are created in TOS

Objectives. Introduction to process management of an operating system Explain step-by-step how processes are created in TOS TOS Arno Puder 1 Objectives Introduction to process management of an operating system Explain step-by-step how processes are created in TOS 2 Introduction to Processes What is a process? A process consists

More information

BOOLEAN EXPRESSIONS CONTROL FLOW (IF-ELSE) INPUT/OUTPUT. Problem Solving with Computers-I

BOOLEAN EXPRESSIONS CONTROL FLOW (IF-ELSE) INPUT/OUTPUT. Problem Solving with Computers-I BOOLEAN EXPRESSIONS CONTROL FLOW (IF-ELSE) INPUT/OUTPUT Problem Solving with Computers-I Announcements HW02: Complete (individually)using dark pencil or pen, turn in during lab section next Wednesday Please

More information

CODE TIME TECHNOLOGIES. Abassi RTOS. CMSIS Version 3.0 RTOS API

CODE TIME TECHNOLOGIES. Abassi RTOS. CMSIS Version 3.0 RTOS API CODE TIME TECHNOLOGIES Abassi RTOS CMSIS Version 3.0 RTOS API Copyright Information This document is copyright Code Time Technologies Inc. 2011-2013. All rights reserved. No part of this document may be

More information

Lego MINDSTORMS NXT Problem Solving with Robots [PRSOCO601]

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

More information

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria A Predictable RTOS Mantis Cheng Department of Computer Science University of Victoria Outline I. Analysis of Timeliness Requirements II. Analysis of IO Requirements III. Time in Scheduling IV. IO in Scheduling

More information

Announcements. Assignment 2 due next class in CSIL assignment boxes

Announcements. Assignment 2 due next class in CSIL assignment boxes Announcements Assignment 2 due next class in CSIL assignment boxes Call Stacks + On Writing Good Code Jan. 21 Lecture 8 Today: Function Call Stack Recursion Good Coding Principles Stacks - a Brief Introduction

More information

PhyNetLab Ultra-low power learning Introduction: A world full of sensors leads to two main developments: Gigantic centralized services, gathering and analysing data, and highly distributed data generation.

More information

OS lpr. www. nfsd gcc emacs ls 1/27/09. Process Management. CS 537 Lecture 3: Processes. Example OS in operation. Why Processes? Simplicity + Speed

OS lpr. www. nfsd gcc emacs ls 1/27/09. Process Management. CS 537 Lecture 3: Processes. Example OS in operation. Why Processes? Simplicity + Speed Process Management CS 537 Lecture 3: Processes Michael Swift This lecture begins a series of topics on processes, threads, and synchronization Today: processes and process management what are the OS units

More information

Quick Start Guide. CT6xx Series

Quick Start Guide. CT6xx Series Quick Start Guide CT6xx Series 57-5104 Rev C April 2009 Contents CT6XX SERIES INTRODUCTION...2 SCOPE...2 CT6xx Series General Description...2 Development Disk...2 CT6XX SERIES DEVELOPMENT KIT...3 Development

More information

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

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

More information

COE518 Lecture Notes Week 2 (Sept. 12, 2011)

COE518 Lecture Notes Week 2 (Sept. 12, 2011) C)E 518 Operating Systems Week 2 September 12, 2011 1/8 COE518 Lecture Notes Week 2 (Sept. 12, 2011) Topics Creating a cloned process with fork() Running a new process with exec...() Textbook sections

More information

How to Use EV3Lessons

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

More information

Stellaris Robotic Evaluation Board and Micriµm µc/os-iii

Stellaris Robotic Evaluation Board and Micriµm µc/os-iii Introductions Stellaris Robotic Evaluation Board and Micriµm µc/os-iii Jean J. Labrosse Founder, President and CEO of Micriµm Dexter Travis Stellaris ARM Cortex -M3 Applications Engineering Dexter Travis,

More information

Lecture 4: Memory Management & The Programming Interface

Lecture 4: Memory Management & The Programming Interface CS 422/522 Design & Implementation of Operating Systems Lecture 4: Memory Management & The Programming Interface Zhong Shao Dept. of Computer Science Yale University Acknowledgement: some slides are taken

More information

Locks and semaphores. Johan Montelius KTH

Locks and semaphores. Johan Montelius KTH Locks and semaphores Johan Montelius KTH 2018 1 / 40 recap, what s the problem : # include < pthread.h> volatile int count = 0; void * hello ( void * arg ) { for ( int i = 0; i < 10; i ++) { count ++;

More information

Operating Systems, Assignment 2 Threads and Synchronization

Operating Systems, Assignment 2 Threads and Synchronization Operating Systems, Assignment 2 Threads and Synchronization Responsible TA's: Zohar and Matan Assignment overview The assignment consists of the following parts: 1) Kernel-level threads package 2) Synchronization

More information

real-time kernel documentation

real-time kernel documentation version 1.1 real-time kernel documentation Introduction This document explains the inner workings of the Helium real-time kernel. It is not meant to be a user s guide. Instead, this document explains overall

More information

Today s topic: Real Time Programming with Ada

Today s topic: Real Time Programming with Ada Major Characteristics of RTOS (Last lecture) Determinism & Reliability Responsiveness (quoted by vendors) Fast process/thread switch Fast interrupt response Support for concurrency and real-time Multi-tasking

More information

Overview of Embedded Systems in Medical Applications

Overview of Embedded Systems in Medical Applications of Embedded Systems in Medical Applications 1 Embedded Systems Simplistic definition Embedded System Shorthand for Embedded Processor System Embed microprocessor + fixed program in non-computer system

More information

lejos NXJ Problem Solving with Robots [PRSOCO601]

lejos NXJ Problem Solving with Robots [PRSOCO601] lejos NXJ Problem Solving with Robots [PRSOCO601] Thomas Devine http://noucamp thomas.devine@lyit.ie February 20, 2008 1 Contents 1 lejos NXJ 4 1.1 Introducing the Java Development.......................

More information