embedded_18s

Embedded Systems (undergraduate 18s)

  • Instructor: Eunji Lee (Bldg. S1-4, #216, 261-3757, eunji@cbnu.ac.kr )

  • Teaching Assistant (TA): Youil Han (yulit0738@gmail.com)

  • Course Number:

  • Time: Tue. 10:00 / Wed. 10:00

  • Location: S1-4, Room 208

  • Textbook

    • 1. Matt Richardson and Shawn Wallace, Getting Started with Raspberry Pi. Oreilly & Associate Inc, 1st

    • 2. 사물인터넷 (Smart_IoT) 설계시스템, 휴인스 기술연구소

    • 3. Lecture Slides

  • Reading Materials

    • 1.리눅스 커널 내부구조, 최종무/백승재, 교학사

    • 2. 사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리파이, 서영진, JPub

Course Description

  • Embedded systems are everywhere – from hand-held devices like smart phones and TVs to the transportation vehicles such as smart cars and airplanes– and they will continue to proliferate throughout the life of people. The Embedded Systems course offers students a broad and deep understanding of embedded systems and, in particular, how to system software interacts with low-level hardware. This course builds on the basic skills of embedded system design and programming through the hands-on experiences with Raspberrypi (www.raspberrypi.org). Students will perform several prototyping projects such as LED management and servo motor control together with professor in class, and by the end of the course, they will be given a project that should be designed and developed for themselves.

Course Objective and Goals

  • To become familiar with and comfortable using the programming facilities of the operating system, including File system structures and I/O system structures.

  • To obtain practical skills in designing and programming of embedded systems with python and C languages.

  • To operate in and self-manage in programming teams.

Course Schedule

  • Introduction

    • -------------------------

  • Ch 1. Getting Up and Running (Ch1) [pdf]

  • Ch 2. Getting Around Linux on the Raspberry Pi

    • vi editor [pdf] [vi.pdf]

    • Linux practice [pdf] (Updated with some corrections after class 3/14)

  • hw1: Upload answers of practice 1-5 in (YOUR) git repository, and email the git address to email (yulit0738@gmail.com) by 11:59pm on 3/19 (MON).

  • Ch 3. Python on Pi [pdf]

  • Ch 4. Animation and Multimedia in Python [pdf]

  • Ch 5. Scratch on the Pi (self)

  • Ch 6. Arduino on the Pi (self)

  • Ch 7. Basic Input and Output [pdf]

  • Ch 8. Programming Inputs and Outputs with Python (Ch8) [pdf]

  • Soundboard and ServoMotor Control [pdf]

  • Ultra Sensor Control [pdf]

  • hw2: Mini-project - build an IoT system using LED, Button, Soundboard, ServoMotor, Ultra Sensor with Python!

  • Upload README.md and source files into git repository, and email the git address to (yulit0738@gmail.com) by 11:59pm on 4/2 (MON).

  • 3-minute demo (video) on 4/3 (TUE)

  • RPi.GPIO Analysis [pdf]

  • -------------------------

  • Basic Linux Programming Tutorial [pdf] (4/10)

  • Practice : Smart Farm (4/11, 4/17, 4/18) [Team]

  • WringPi (sensors: humidity, temperature, light / actuators: water pump, FAN, DC motor, LED). waterpump (mov) [pdf]

  • hw3: Team-project - Upload the movies of working sensors and actuators into a git repository. Every member should get it done.

  • Team leader is required to email a list git addresses to (yulit0738@gmail.com) by 11:59pm on 4/30 (MON).

  • Mid-term Exam (4/25, WED)

  • Connecting to database (5/1)

  • Control with web access (5/2)

  • [smart_farm_script.sh] [viewfarm.php]

  • Term-project : Smart Farm in Cloud [Description] (due: 5/22)

  • --------------------------

  • Multi-threaded programming [pdf] [slides] (pthread api) (5/8 - 5/9)

  • hw4: Sending and Logging with multi-threaded programming - submit a report on 5/23 class (at the starting time)

  • --------------------------

  • Host system setup - linux installation (5/15) [pdf]

  • Cross Development Platform (5/16 - 5/29) [pdf]

    • - How to run 32bit Toolchain on 64bit machine: install libraries

    • apt-get install ia32-libs lib32z1

    • - Makefile

    • 418: config %config: ==> %config

    • 1444: / %/ ==> %/

  • Term-project : Presentation (in English!) (5/23, WED)

  • Delayed submission of smart farm project should be on 5/29 (T) class (penalty: -20% of total score)

  • No acceptance after this deadline!

  • Fusing (Kernel, BootLoader, RootFileSystem) (5/29 - 5/30) [pdf]

  • Kernel Build & Porting (6/4 - 6/5) [pdf]

  • Device Driver (6/5) [pdf]

  • Research Talk: 6/12 (Tue) 10:00 - 11:00, "블록체인, 그 새로운 흐름에 대처하는 법 (Block Chain Technologies and Issues)," 학연산 102호

  • Final Exam (6/14, Thur) 18:00 ~ 19:00

  • Attendance

  • [tar ball] [smartfarm.tar.gz] [demofarm.tar.gz]

  • Score

    • mid-term exam: [score.txt] (30%)

    • hw1, hw2, hw3, hw4, smartfarm project [total_score]

    • final exam: [score.txt] (30%) [final_score]

    • 기말고사 성적확인: 6/19 (화) 13:00 - 16:00 사이에 S1-4동 308호에서 가능함

    • Notice: hw4 와 smartfarm 과제 제출여부를 확인하고 이상이 있는 사람은 이메일 (또는 수업시간) 에 문의하고 5/29(화) 수업 시작전에 제출할 것.

Grading and Policies

  • Homework and Attendance : 20%

  • Term Project : 20%

  • Mid-term Exam : 30%

  • Final-term Exam : 30%

    • Final grades will be determined by your total points weighted according to this distribution. Grades may be curved but are generally computed via the formula below. It may be modified at the instructor's sole discretion, but letter grades will generally not be lower than those shown here.

  • A range (A+, A, A-) is a course average [90, 100)

  • B range is a course average [80, 90)

  • C range is a course average [70, 80)

  • D and F range is a course average [0, 70)

    • Attendance Policy : the final score will sum up all your attendance counts. Being late (only less than 30 minutes) will be regarded 1/3 absence.