Email

TI Robotics System Learning Kit (TI-RSLK)

The TI-RSLK is a low-cost robotics kit and classroom curriculum which provides students with a deeper understanding of how electronic system designs work.  Developed with university faculty, Jon Valvano of UT Austin, the TI-RSLK is designed to supplement university curriculum.

The TI-RSLK Maze Edition curriculum comes with 20 learning modules covering basic to advanced topics.  Each module is complete with lecture videos and slides, lab documentation and demonstration videos, quizzes and classroom activities.  The TI-RSLK is targeted to teach embedded systems and applications and can be expanded and used in a variety of engineering classes.

The curriculum covers:

  • Electrical engineering concepts such as voltage, current, power and energy
  • Microcontroller interfacing with sensors, actuators and motors, concepts of pulse width modulation, flash ROM, analog to digital conversion, digital to analog conversion and serial data transmission
  • Software design and testing using multithreading and debugging
  • Fundamental theories such as Nyquist, Central Limit and Little's Law
  • Building systems using finite state machines (FSM), closed loop control, Bluetooth low energy and Internet of Things

1. TI-RSLK Module 1 Running code on the LaunchPad using CCS

The purpose of this module is to learn software development methodology and understand how to set up an Integrated Development Environment (IDE), to then import and export Code Composer Studio (CCS) projects, as well as critical debugging information to understand the memory usage and performance of the software on the processor.

# Title Duration
1.1 TI-RSLK Module 1 - Lecture video - Running code on the LaunchPad using CCS
Introduction to embedded systems with CCS and the TI-RSLK software installation
11:04
1.2 TI-RSLK Module 1 - Lab video 1.1 - Installing tirslk_maze
You will learn how to set up Code Composer Studio and import the TI Robotics System Learning Kit, Maze Edition.
04:28
1.3 TI-RSLK Module 1 - Lab video 1.2 - Getting started with CCS
Lab video accompanying Module 1 - Code Composer Studio Installation and Module 1 lecture and lab from the TI-RSLK curriculum.
02:14
1.4 TI-RSLK Module 1 - Lab video 1.3 - Running the TExaS logic analyzer
Additional lab video for Module 1 lab for TI-RSLK curriculum.
03:26
1.5 TI-RSLK Module 1 - Lab video 1.4 - Running the TExaS oscilloscope
The overall purpose of this lab is to introduce some of the development tools needed to design your robot.
03:13
Login required

2. TI-RSLK Module 2 – Voltage, current, and power

The purpose of this course is to review basic electronic components and the electrical properties needed to interface sensors and actuators to a microcontroller. You will learn how to measure reactance of a capacitor and use your project to measure current and voltage. The electrical properties of the capacitor will help you design circuits that “filter” or remove noise from your robot.

# Title Duration
2.1 TI-RSLK - Module 2 - Lecture video - Voltage, current and power
Module 2: Voltage Current and Power will cover resistors, capacitors and LEDs.
26:17
2.2 TI-RSLK Module 2 - Lab video 2.1 - Measuring the reactance of a capacitor
The purpose of this lab is to review basic electronics needed to interface sensors and actuators to the microcontroller.
03:30
2.3 TI-RSLK Module 2 - Lab video 2.2 - Measure LED (I,V) response curve
In this particular portion of the lab, you will measure voltage and current across the LED.
02:42
Login required

3. TI-RSLK Module 3 – ARM Cortex M

This module serves as a brief introduction to the ARM Cortex-M microcontroller, assembly programming language and some debugging techniques. Understanding how the processor works is essential for the design of embedded systems, such as the one used in your robot.  

# Title Duration
3.1 TI-RSLK Module 3 - Lecture video part I - ARM Cortex M Architecture
Understanding how the processor works is essential for the design of embedded systems, such as the one used in your robot.
20:09
3.2 TI-RSLK Module 3 - Lecture video part II - ARM Cortex M Assembly
In this module you will develop and test an assembly function the maze robot might use to perform a numerical calculation.
23:01
3.3 TI-RSLK Module 3 - Lab video 3.1 - Debugging the solution, visualization, breakpoint and step
The purpose of this lab is to introduce the architecture of the Cortex M.
03:09
Login required

4. TI-RSLK Module 4 – Software Design using MSP432

This module is an introduction to C, a general-purpose programming language, in addition to the concepts of compiling and debugging using the MSP432 and TI Code Composer Studio™.  Debugging skills are a valuable tool when developing complex systems involved with robotics.

# Title Duration
4.1 TI-RSLK Module 4 - Lecture video part I - Software design using MSP432 - Design
Learn software design through a call graph, data flow graph, successive refinement, abstraction (functions) and modular design (header/code files).
19:51
4.2 TI-RSLK Module 4 - Lecture video part II - Software design using MSP432 - C programming
In this module, you will develop and test software functions that will be used in the maze robot.
26:31
4.3 TI-RSLK Module 4 - Lecture video part III - Software design using MSP432 - Debugging
Learn debugging on the MSP432 through controls (step, breakpoints), observing variables and functional debugging.
17:27
4.4 TI-RSLK Module 4 - Lab 4 video 4.1 - Debugging the solution, visualization, variables, step over
The purpose of this lab is to interface a line sensor that the robot will use to explore its world.
03:57
4.5 TI-RSLK Module 4 - Lab video 4.2 - Debugging the solution, visualization, breakpoint, step over
The purpose of this lab is to introduce software design.
04:08
Login required

5. TI-RSLK Module 5 – Battery and voltage regulation

The purpose of this module is to learn how to power your robot. To run the robot (motor and other systems) you will need batteries and a regulator to provide constant voltage.  Understanding the relationship between voltage current and power is an essential component of robot system design.

# Title Duration
5.1 TI-RSLK Module 5 - Lecture video part I - Battery and voltage regulation
Learn battery power sources, voltage regulation (constant voltage) and performance measurements.
21:32
5.2 TI-RSLK Module 5 - Lab video 5.1 - Measure voltage and current from battery
The purpose of this lab is to study the batteries and how they are used to power the robot.
02:04
5.3 TI-RSLK Module 5 - Lab video 5.2 - Connecting motor driver and power distribution board
The purpose of this lab is to power the system from the batteries.
03:54
Login required

6. TI-RSLK Module 6 – GPIO

In this module, you will interface a line sensor (infra-red sensor) to the microcontroller and learn how to write software to initialize GPIO pins.  The line sensor is a simple and accurate sensor for solving robotic challenges.

# Title Duration
6.1 TI-RSLK Module 6 - Lecture video part I - GPIO - MSP432™
In this module you will design, develop and test the line sensor measurement required for the maze robot.
22:13
6.2 TI-RSLK Module 6 - Lecture video part II - GPIO - Programming
In this module you will design, develop and test the line sensor measurement required for the maze robot.
23:29
6.3 TI-RSLK Module 6 - Lab video 6.1 - Demonstration of how the reflectance sensor works
The purpose of this lab is to interface the reflectance sensor to the robot.
03:02
6.4 TI-RSLK Module 6 - Lab video 6.2 – Demonstration of the lab solution and testing the line sensor
In this particular portion of the lab, we're going to test the high-level performance of the line sensor.
02:45
Login required

7. TI-RSLK Module 7 – Finite state machines

This module will demonstrate how to use finite state machines as a central controller for the system. Finite state machines are an effective design process to have in your embedded system tool box and can be used to solve problems with inputs and outputs.The basic approach to system development is to create components and

# Title Duration
7.1 TI-RSLK Module 7 - Lecture video part I - Finite state machines - Theory
In this module you will use a finite state machine to create a controller for a simple line following robot.
20:43
7.2 TI-RSLK Module 7 - Lecture video part II - Finite state machine - Line tracker
In this module, you will learn how to use finite state machines as a central controller for a robotics system.
25:38
7.3 TI-RSLK Module 7 - Lab video 7.1 – Running the FSM starter code
The purpose of this lab is to learn how to design a microcontroller-based finite state machine.
02:35
7.4 TI-RSLK Module 7 - Lab video 7.2 – Running the solution code and designing a better FSM
The purpose of this lab is to develop a line-following algorithm using a finite state machine.
02:52
Login required

8. TI-RSLK Module 8 – Interfacing input and output

The purpose of this module is to develop interface switches and an LED so the robot can effectively detect wall collisions. Many sensors and actuators deploy LEDs, so understanding how they operate will be important to building your robot.

# Title Duration
8.1 TI-RSLK Module 8 - Lecture video part I - Switches
Interfacing input and output devices using LEDs and Switches
11:27
8.2 TI-RSLK Module 8 - Lecture video part II - Interfacing input and output - LEDs
In this module you will learn the fundamentals of LEDs and switches.
18:57
8.3 TI-RSLK Module 8 - Lab video 8.1 - Interfacing switches and LEDS and debugging
The purpose of this lab is to interface three switches and a LED to the micrcontroller.
02:37
Login required

9. TI-RSLK Module 9 – SysTick timer

In this module, you will learn the fundamentals of SysTick timers and pulse width modulators (PWM), including how to measure pulse times and period with a logic analyzer and amplitude with an oscilloscope. It is important to understand the concept of PWM as we will use it to adjust power to the motors.

# Title Duration
9.1 TI-RSLK Module 9 - Lecture video part I - SysTick Timer - Theory
In this module you will learn SysTick timer fundamentals.
12:55
9.2 TI-RSLK Module 9 - Lecture video part II - SysTick Timer - PWM
You will learn the concept of Pulse Width Modulation (PWM) and duty cycle.
11:35
9.3 TI-RSLK Module 9 - Lab video 9.1 – Demonstrating running heartbeat by adjusting the duty cycle
The purpose of this lab is to learn about the SysTick timer and use it to create a PWM output.
02:15
9.4 TI-RSLK Module 9 - Lab video 9.2 – Demonstrate running sine wave output to adjust power
The purpose of this lab is to create a PWM output.
03:27
Login required

10. TI-RSLK Module 10 – Debugging real-time systems

This module provides an intro to how flash memory operates, including debugging techniques for real-time systems and how to generate periodic interrupts using SysTick. Minimally intrusive debugging is essential for real-time systems to evaluate performance while the system runs in real-life situations.

# Title Duration
10.1 TI-RSLK Module 10 - Lecture video part I - Debugging real-time systems - Theory
In this lab you will learn how to generate periodic interrupts using SysTick.
20:24
10.2 TI-RSLK Module 10 - Lecture video part II - Debugging real-time systems - Interrupts
In this lab you will learn how to generate periodic interrupts using SysTick
20:00
10.3 TI-RSLK Module 10 - Lecture video part III - Debugging real-time systems - SysTick interrupts
In this lab you will learn how to generate periodic interrupts using SysTick.
20:37
10.4 TI-RSLK Module 10 - Lab video 10.1 – Demonstrate running the line sensor/black box recorder
The purpose of this lab is to provide real-time debugging and use SysTick interrupts to interface the line sensor.
03:17
Login required

11. TI-RSLK Module 11 – Liquid Crystal Display

This module will show you how to display characters and provide real-time debugging on an LCD screen. An LCD on your robot provides a convenient way to observe what it is thinking.

# Title Duration
11.1 TI-RSLK Module 11 - Lecture video - Liquid Crystal Display
In this module you will learn how to interface a LCD to TI's LaunchPad development kit.
11:07
11.2 TI-RSLK Module 11 - Lab video 11.1 – Demonstrate LCD interface
Review Software/hardware synchronization with busy-wait and understand synchronous serial communication.
02:07
Login required

12. TI-RSLK Module 12 – DC motors

The purpose of this lab is to interface the motors to the TI LaunchPad to make the robot move. Understanding how duty cycle, voltage and current combine to affect speed is required when building your robot.

# Title Duration
12.1 TI-RSLK Module 12 - Lecture video part I - DC motors - Physics
In this module you will receive an overview of the circuits needed to drive power to the DC motors.
14:43
12.2 TI-RSLK Module 12 - Lecture video part II - DC motors - Interface
The focus of this module is the mechanical and electrical aspects of the motors.
20:17
12.3 TI-RSLK Module 12 - Lab video 12.1 – Demonstrate motor fundamentals
The purpose of this lab is to interface the motors to the LaunchPad.
02:39
12.4 TI-RSLK Module 12 - Lab video 12.2 – Demonstrate robot moving in a preset pattern
The goal of this lab is to see how straight the robot moves if we were to set the two duty cycles to an equal value.
01:46
Login required

13. TI-RSLK Module 13 – Timers

In this module, you will write software that uses the timers to create PWM outputs. Using timers for PWM and period interrupts provide mechanisms to grow the complexity of the robot system
# Title Duration
13.1 TI-RSLK Module 13 - Lecture video part I - Timers - Periodic interrupt
In this module you will learn how to interface the DC motors using hardware PWM.
14:28
13.2 TI-RSLK Module 13 - Lecture video part II - Timers - Pulse width modulation
In this module you will learn how to interface the DC motors using hardware PWM.
18:37
13.3 TI-RSLK Module 13 - Lab video 13.1 – Timer generated PWM outputs to spin motors
Understand timers and their uses in embedded systems and interface the DC motors using hardware PWM.
01:58
13.4 TI-RSLK Module 13 - Lab video 13.2 – Interrupt latency
Understand timers and their uses in embedded systems.
02:36
Login required

14. TI-RSLK Module 14 – Real-time systems

This module demonstrates how to use priority interrupts for creating real-time systems.  As your robot system becomes more complex, period interrupts are one way to combine multiple threads onto one microcontroller.

# Title Duration
14.1 TI-RSLK Module 14 - Lecture video part I - Real-time systems - Theory
In this module you will learn how to create a real-time system for collision detection
17:53
14.2 TI-RSLK Module 14 - Lecture video part II - Real-time systems - Edge triggered interrupts
In this module you will learn how to create a real-time system for collision detection
20:31
14.3 TI-RSLK Module 14 - Lab video 14.1 – Real-time response using edge triggered interrupts for your bump switches
Review interrupts and the Nested Vector Interrupt controller (NVIC) and understand how to use priority interrupts for creating real-time systems.
01:34
Login required

15. TI-RSLK Module 15 – Data acquisition systems

This module will teach you how to interface the infrared distance sensors using the analog-to-digital converter. IR distance sensors are an essential component for solving robot challenges where avoiding walls is necessary to achieve the goal.

# Title Duration
15.1 TI-RSLK Module 15 - Lecture video part I - Data acquisition systems - Theory
In this module you will learn how to create a real-time data acquisition system that measures distance from three IR sensors. 
20:42
15.2 TI-RSLK Module 15 - Lecture video part II - Data acquisition systems - Performance measurements
In this module you will learn how to create a real-time data acquisition system that measures distance from three IR sensors. 
22:40
15.3 TI-RSLK Module 15 - Lab video 15.1 - Testing IR measurements using the ADC
The purpose of this lab is to interface IR distance sensors that allow the robot to explore its world
02:54
Login required

16. TI-RSLK Module 16 – Tachometer

In this module, you will learn how to interface the tachometers that enable the robot to measure motor rotational speed. Tachometer data allows your software to drive straight, drive for a prescribed amount of distance or turn at a prescribed angle.

# Title Duration
16.1 TI-RSLK Module 16 - Lecture video part I - Tachometer - Input capture
In this module you will learn how to design a system that can measure wheel rotational speed.
15:01
16.2 TI-RSLK Module 16 - Lecture video part II - Tachometer - Interface
In this module you will learn how to design a system that can measure wheel rotational speed.
11:46
16.3 TI-RSLK Module 16 - Lab video 16.1 - Testing the Tachometer
You will learn encoder, motor speed. motor direction, motor Performance, speed, time constant
03:31
Login required

17. TI-RSLK Module 17 – Control systems

The purpose of this module is to create a control system by combining the sensors with the actuators. Incremental and integral control are simple algorithms for controlling motor speed.

# Title Duration
17.1 TI-RSLK Module 17 - Lecture video - Control systems
In this module you will learn the basic concepts of a control system.
22:24
17.2 TI-RSLK Module 17 - Lab video 17.1 - Demonstrating control system - integral control
You will learn an introduction to control.
02:26
17.3 TI-RSLK Module 17 - Lab video 17.2 - Demonstrating control system
Inputs, control equations and outputs.
02:40
Login required

18. TI-RSLK Module 18 – Serial communication

The purpose of this module is to understand the operation and use of first in first out (FIFO) queue to interface the robot to the PC using a serial channel. You will create two FIFO queues and design a command interpreter to assist in the robot challenge. You will develop an interrupting device driver using the universal asynchronous receiver/transmitter (UART). This serial port allows the microcontroller to communicate with devices such as other computers, input sensors, and output displays.
# Title Duration
18.1 TI-RSLK Module 18 – Lecture video part I – Serial communication - FIFO
Learn FIFO queues, buffered I/O and Little's Theorem. Perform measures of bandwidth and response time.
08:42
18.2 TI-RSLK Module 18 - Lecture video part II - Serial communication - UART
You will develop an interrupting device driver using the universal asynchronous receiver/transmitter (UART).
12:33
18.3 TI-RSLK Module 18 - Lab video 18.1 - Demonstrating UART
The purpose of this lab is to create an interrupt-driven UART driver.
04:52
18.4 TI-RSLK Module 18 - Lab Video 18.2 - Command interpreter
A command interpreter allows you to test multiple parts of your complex system.
02:39
Login required

19. TI-RSLK Module 19 – Bluetooth low energy

The purpose of this module is to understand basic concepts of Bluetooth® low energy (BLE). You will interface the TI SimpleLink™ BLE CC2650 Module BoosterPack™ Plug-in module to the SimpleLink MSP432P401R LaunchPad™ development kit using universal asynchronous receiver/transmitter (UART) communication. You will create a BLE service with multiple characteristics and design a robot system that can be controlled by a smart device using BLE.
# Title Duration
19.1 TI-RSLK Module 19 – Lecture video part I – Bluetooth Low Energy – Wireless
The purpose of this lab is to create an interrupt-driven UART.
12:45
19.2 TI-RSLK Module 19 – Lecture video part II – Bluetooth Low Energy – Theory
The purpose of this module is to understand basic concepts of Bluetooth® low energy (BLE).
11:09
19.3 TI-RSLK Module 19 – Lecture video part III – Bluetooth Low Energy – SNP
Interface the TI SimpleLink™ BLE CC2650 Module BoosterPack™ Plug-in module to the SimpleLink MSP432P401R LaunchPad™ development kit UART.
10:25
19.4 TI-RSLK Module 19 - Lab video 19.1 - Demonstrating BLE
The purpose of this lab is to develop a robot system that can be controlled by a smart device.
04:02
19.5 TI-RSLK Module 19 - Lab video 19.2 - Communicating with the robot
Design a robot system that can be controlled by a smart device using BLE.
03:00
Login required