Proposed Learning Outcomes
Based
on efforts you put in (irrespective
of what you already know and what grade you get),
it is expected that you will learn the following:
Program microcontroller based systems (using embedded C)
Understand/Use several of microcontroller internal modules
including Pulse Width Modulator (PWM), Timer, Counter,
Analog-to-Digital Converter (ADC), Serial Port (UART), Memory
(EEPROM, SRAM)
Learn to interface off-the-shelf external components with the
microcontroller over multiple interfaces such as SPI, UART,
GPIO, ADC
Develop their own simple hardware attachments for the
microcontroller board by soldering the required components
together. Debugging the hardware in the process will provide
them with necessary skills around considerations required
upfront while designing any hardware module.
Appreciate broader system constraints like power consumption,
synchronization, scheduling that may arise when building a
network of these embedded systems
Broad understanding of RTOS by actually implementing the code in
the hardware above a RTOS
Acquire knowledge about recent work in the domain of Cyber
Physical Systems
Learn about the challenges in real world deployment of the
system through deploying an end-to-end system for interfacing
multiple sensors and communicating the aggregated data to a
central server as part of the course project. They will learn to
think how to possibly extend the systems through hands-on
experience of extending the system to provide additional
functionality specific to their own project.
Evaluation
- Hardware assignments – 10%
-
Mid
Term Exam – 15% (Sample
mid-sem) (Mid-sem-solutions)
- Final Exam – 25%
-
Group Project - 35%
- Class presentation - 10%
-
Summary reports for other
specialization topics and research papers in Cyber Physical
Systems - 5%
CSE 337 and CSE 537 students will be evaluated separately. Class
presentation will not be mandatory for CSE 337 students and will
be compensated by 5% higher weight in summary reports and 2.5%
higher weight each in Mid Term and Final Exam. Additionally,
CSE537 students will be expected to do a bit more in their
course project.
Office Hours
- Amarjeet Singh: Monday 1-2 pm (B302)
- Nipun Batra: Tuesday 10 AM - 1 PM (Hardware Lab)
- Arpan Jati: Thursday 2-4 PM (IS/DE M.Tech. Lab - 4th
Floor)
Please try to meet up only during the
designated office orders and avoid interruptions otherwise it is
really urgent.
Lecture Slides
Assignments
The students are expected to complete the following assignments on their own
(on-demand lab sessions will be organized as per the request of
the students in the class):
- Understanding the Programming Environment (AVR32 Studio/
AVR Studio 5.0) and the EVK1100 Evaluation Kit:
- Deadline: January 20
- Expected deliverable:
- Make yourself familiar with the different
on-board components of EVK1100
- Make yourself familiar with the programming
environment (one of AVR32 Studio or AVR Studio 5.0)
- Look at the sample code from the tool but write
the code from scratch to display your name on the
LCD screen
- Familiarize yourself with how the code is
operating, including the register and I/O settings
that are being - what are the settings and where
they are done.
- Interfacing external sensor with the microcontroller:
- Deadline: January 27
- Expected deliverable:
- Purchase a contact sensor and header pins.
Connect the header pins to some of the external pins
of your EVK1100 board.
- Look at the existing "Control panel" program
(that comes as sample code from Atmel) and any other
reference you may like. Create your own code from
scratch to collect the data from the sensor and
display that data on a screen.
- You are expected to know what different register
settings are happening; where they are happening and
why they are happening
- Programming an external microcontroller over JTAG/ISP
- Deadline: February 3
- Expected deliverable: The student should be able to
program a microcontroller on your EVK1100 board using the USB interface of another board (you can
use either of EVK1100 or AVR Dragon as the primary
board)
- Interfacing external memory with the microcontroller
- Deadline: February 10
- Expected deliverable: Make you own control panel
program for the EVK1100 with following specifications:
- Collect the
sensor data at 10 Hz (from all on-board sensors)
- Store the data
in the Flash memory on-board EVK1100 (outside the
microcontroller)
- Every 3
seconds, compute the average of the historical data
(30 readings) and display it on the LCD
- For this you first have to burn the boot loader
back into the board. This is a must and should be
done by you before you can do this assignment [Download
original EVK1100 hex file]
Useful References:
-
AVR Studio for
download
- Use the inbuilt help files (under AVR Tools Help) to
look at User Guide for AVR Dragon, AVR A1-Xplained and
AVR EVK1100 Evaluation Kit
EVK1100 Getting Started Guide
EVK1100 Schematics
Atmel Application Note for
Programming the AVR UC3 Devices
Atmel Application Note for
getting started with AVR Software Framework
Atmel Application Note for
executing code from external SDRAM is available
AVR32 Datasheet
Summary
AVR32 Long
Datasheet
Guide to program EVK1100 with
AVR32 Studio
Group Project
Students are expected to make a group of 2 and do a group
project on Building Monitoring System. RTOS based
microcontroller platforms will be provided to each group
which are to be installed in one of the hostel rooms. Each
group should submit a project proposal by
March
7, 2012. The
proposal document should contain dates when each of the
following outcomes will be achieved for the Phase-I of the
project:
- Decide on one of the rooms where your system will be
deployed. You should get a consent from me as well as
the occupants of the room for installing system in their
room. For the boys hostel, the rooms should be in the
B-Wing on the first and second floor. Try to instrument
all the rooms in at least one of the wings and then only
start selecting rooms in another wing.
- Understand and test the wiring connections in your
room - While the IT people were asked to put wires
according to a specific layout, some rooms may have a
different connectivity. You are required to test the
continuity of the wires in your room for the sensor
installation. Further test out the ethernet connectivity
for your node in your room (work with IT people to get
the MAC address registered and assigned an IP through
DHCP)
- Understanding the flyport module hardware,
microcontroller code for flyport and installation of the
server side software on your machine to test the node
sending data to your own server.
- Actual installation of the core system in your
chosen room with a subsystem of PIR sensor, temperature
sensor, light sensor
- Collect good quality data (for at least 2 days) from
your system at the server end - you may use either the
server setup by MUC research group or the server setup
on your own laptop
- Prepare the report with updates on Phase-I
All of the above 5 activities should be spread in a way such
that you complete all of them by
March
31, 2012. 50% of the project evaluation will be
based on your work in Phase-I. Thereafter, in Phase-II, you
are supposed to extend the basic system. A list of projects
for extending the existing system is available
here.
You can also suggest your own extension. You should append
to the earlier submitted report the progress in Phase-II to
create the final project report. Each group to submit a
single report.
Useful References:
-
Guide to understand the Flyport code
-
PIC Microcontroller
Datasheet
-
OpenPicus website -
This has links to all the references related to the hardware.
Specifically, following resources are must:
-
API Quick Reference Guide
-
Programmer's Guide
-
IDE 2.2 - User Guide
-
Link for Flyport Webinars
-
Schematics and
layout for Flyport Baseboard - You will be using it
for programming (together with FTDI converter) and for
adding any sensor (for this you have to add some header
pins to the base board) if you want to debug the board
or play with some sample codes
-
Wiring layout of the rooms - Most of the rooms will
be of type-II while you may find some rooms of Type-1 or
even some rooms that may not conform with any of the two
types. Those that do not conform with any of the room
types, please create a similar diagram and let me know
the room numbers.
Class Presentations
Those who are taking advanced level for this course
(CSE537) are required to make class presentation on one of
the following topics. For others, it is optional.
Select your topic by February 18 and plan to prepare a 40
minutes presentation on your selected topic. Schedule for
the topics will be posted after the topics have been
selected by everyone. You should send the presentation
slides at least 5 days before your presentation date for
approval by me. Failure to get your presentation reviewed on
time will incur you 30% penalty in your overall assessment
in this category. For each topic, I will provide a base
reference that everyone has to read. The summary is to be
prepared for this base reference. Those presenting should
read other relevant material on internet while preparing
their slides.
- Modbus Protocol -
Cover protocol specifications (similar to how protocols
like 1-wire are discussed in the class), go in-depth on
modbus RTU and modbus TCP, select one of the open source
modbus protocol stack (e.g. pymodbus) and refer to the
commands when explaining modbus. You can use
this and
this as base reference.
- BACnet Protocol -
Explain working of BACnet protocol, specifically
covering how BACnet-IP works. In particular explain how
some open source stack can be used to talk to any
commercial BACnet based controller. You can use
tutorials from
here
as base reference.
- Power Line Communication
- Explain what does PLC work and what are the
problems in using PLC. Use
this as base reference
- 6LowPAN: Explain
different attributes of the 6LowPAN that extends IPv6
for low power wireless networks. Use
this
paper as base.
- COAP: Explain
different attributes of COAP architecture that allows
interactive connectivity of electronic devices using
Internet. Use
this
paper as base
- Non-Intrusive Load
Monitoring (NILM): Using meter level information
to extract appliance level information is typically
considered under NILM. You can use
this paper as base.
- Plug Load Monitoring:
Discusses controlling appliances that are plugged into
wall socket for energy conservation. You can use
this as base reference.
- Occupancy Detection:
Detect occupancy for smarter decision making. You can
use
this as base reference.
- Non-intrusive water flow
monitoring: Just use the following paper
-
Younghun Kim, Thomas Schmid, Zainul M Charbiwala,
Jonathan Friedman, Mani B Srivastava, "NAWMS:
Nonintrusive Autonomous Water Monitoring System,"
The 6th ACM Conference on Embedded Networked Sensor
Systems (SenSys 2008), November 2008 PDF
- Clock Synchronization
Using AC Power Lines: Just use the following
paper
-
Anthony Rowe, Vikram Gupta, Raj Rajkumar, "Low-power
Clock Synchronization using Electromagnetic Energy
Radiating from AC Power Lines," 7th
ACM Conference on Embedded Networked Sensor Systems (SenSys),
November 2009. PDF
- Indirect occupancy
detection: Use existing information to detect
occupancy. You can use
this as base reference.