Introduction to Lab 2
|
|
- Virgil Eaton
- 5 years ago
- Views:
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 Programming in RTOS on LEGO Mindstorms Martin Stigge 15. September 2010 Martin Stigge Lab 2: LEGO 15. September 2010 1 / 20 Lab 2:
More informationIntroduction 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 informationIntroduction 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 informationIntroduction 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 informationIntroduction 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 informationCSC 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 informationLEGO 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 informationArdOS 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 informationQuick 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 informationCOPYRIGHTED 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 informationHands-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 informationUSB. 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 information518 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 information238P 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 informationLEGO 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 informationFun 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 informationHands-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 informationProject 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 informationComputers 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 informationLab 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 informationUnified 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 informationCS342 - 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 informationRobotics 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 informationRobotics 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 informationMechatronics 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 information1. 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 informationINTRODUCTION 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 informationXS: 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 informationRobotics 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 informationUNIT -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 informationAgreement. 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 informationReal-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 informationCS 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 informationRobot 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 informationPart 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 informationSingle 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 informationUNIX 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 informationECE 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 informationInterrupts, 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 informationRobotics 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 informationTEVATRON 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 informationStyx-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 informationKING 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 informationThe 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 informationFor 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 informationMetaWatch 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 informationIntroduction 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 informationMon 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 informationEmbedded 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 informationROBOLAB 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 informationTeam 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 informationCompile 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 informationERIKA 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 informationToday 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 informationProcesses. 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 informationLab 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 informationLab 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 informationlab 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 informationA 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 informationROBOLAB 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 informationTHREADS & 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 informationMultitasking. 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 informationProject 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 informationRAM 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 informationDevelopment 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 informationArdOS 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 informationRobotics 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 informationLab 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 informationProcess 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 informationHello, 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 informationThe 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 informationOperating 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 informationIntroduction 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 informationFall 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 informationAC 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 information5/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 information2Control 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 informationOperating 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 informationBaggage 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 informationPart 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 informationObjectives. 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 informationBOOLEAN 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 informationCODE 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 informationLego 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 informationA 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 informationAnnouncements. 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 informationPhyNetLab 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 informationOS 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 informationQuick 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 informationRobotics 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 informationCOE518 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 informationHow 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 informationStellaris 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 informationLecture 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 informationLocks 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 informationOperating 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 informationreal-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 informationToday 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 informationOverview 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 informationlejos 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