Embedded Projects 2 (5 cr)
Code: 5G00DM70-3008
General information
Enrolment period
24.11.2024 - 12.01.2025
Timing
01.01.2025 - 04.05.2025
Credits
5 op
Mode of delivery
Contact teaching
Unit
Software Engineering
Campus
TAMK Main Campus
Teaching languages
- English
Degree programmes
- Bachelor's Degree Programme in Software Engineering
Teachers
- Vihtori Virta
- Sonja Viinikainen
Person in charge
Esa Kunnari
Groups
-
23I260EB
Objectives (course unit)
After completing the course student is able to implement microcontroller systems that are connected to real-life IO interfaces. This part concentrates on high level IOT- protocols such as MQTT and rest-API.
Content (course unit)
Connecting to real life IO (LCD, keyboard, sensors, actuators). IoT protocol programming C++/Python, MQTT, rest-API.
Assessment criteria, satisfactory (1-2) (course unit)
Student
-is able to create programs that control car movements with C/C++ and Arduino IDE.
-is able to control the car with lidar feedback and other sensors with the help of the teacher and fellow students.
-is able to get VM traffic light code working with MQTT protocol, with the help of the teacher and fellow students
Assessment criteria, good (3-4) (course unit)
Student is able to get system working by adding some small own functionality for reference code C/C++(MEGA, ESP, VM) , HTML/web page, MQTT.
Assessment criteria, excellent (5) (course unit)
Student is able to get end to end system working by adding several new own functionality to reference code C/C++(MEGA, ESP, VM) , HTML/web page, MQTT.
Location and time
According to schedule, more info during 1st lesson and in Moodle.
Exam schedules
Course will be evaluated by base of weekly exercises, final presentation and exam(s).
Assessment methods and criteria
Course will be evaluated based on weekly exercises, final presentation and exam(s), more details will be given in Moodle.
Assessment scale
0-5
Teaching methods
briefing lectures
exercies
programming exercies by teams
Learning materials
Links to different e-materials in Moodle.
Books to read:
https://www.newbiehack.com/MicrocontrollerTutorial.aspx
https://www.renesas.com/en-us/support/technical-resources/engineer-school/mcu-01-basic-structure-operation.html
Student workload
Clasroom, lab, teamwork, individual work
Total work amount abt. 135h
Contact/remote teaching abt. 50h
Content scheduling
Advanced C and C++ microcontroller programming.
CPU peripherals (timers, int serivice, etc,)
IO-interfaces (I2C, Spi, Uart).
Connecting to real life IO (LCD, keyboard, joystic, sensors, motors).
1. Arduino exercises (Mega + IO)
2. WLAN/WEB server (ESP8266)
External (Possible topics)
3. MQTT broker Embedded linux env. (Raspberry or VM)
4. MQTT control messages
Completion alternatives
No
Practical training and working life cooperation
N/A
International connections
N/A
Assessment criteria - fail (0) (Not in use, Look at the Assessment criteria above)
Weekly exercises does not fulfill minimum requirements (more details in Moodle).
Student has not shown his/her capability for the subject.
Assessment criteria - satisfactory (1-2) (Not in use, Look at the Assessment criteria above)
Student can use SDK and other design environments.
Weekly exercies does't contain major failings and are demonsrated on agreed time.
Student is capable of teamworking.
Assessment criteria - good (3-4) (Not in use, Look at the Assessment criteria above)
Student can apply the contest of course and usage of SDK systems. Exercies are done according the given instructions and demonstrated according course time schedule.
Student is capable to use SDK systems and other development systems.
Student is good teaworker.
Assessment criteria - excellent (5) (Not in use, Look at the Assessment criteria above)
Student is self-governing and can apply wide area of course content.
Student has shown deep understanding managing of course content.
Reports are according intsructions and returned at agreed time.
Student can utilize SDK and other design tools with efficient way.
Student can debug and fix HW/SW errors. Student is proactive teamworker.