Thông tin chung
Môn học thứ ba của Chương trình Lập trình nhúng IoT cùng Lumi sẽ trang bị cho các bạn học viên những kiến thức nâng cao về lập trình nhúng cho vi điều khiển. Trong khóa học này, các bạn sẽ tìm hiểu sâu hơn về kiến trúc vi điều khiển STM32 bao gồm kiến trúc bus, bộ nhớ chương trình, xung nhịp hệ thống và bộ quản lý ngắt NVIC. Tiếp đến, các bạn sẽ tìm hiểu về định nghĩa, nguyên lý hoạt động và thực hành cách cấu hình ngoại vi hoạt động như GPIO, SPI, I2C, UART… Ngoài ra, trong từng bài học các bạn sẽ được thực hành với các bài tập exercise/lab để ghi nhớ và vận dụng các kiến thức đã học vào các bài toán liên quan đến KIT. Kết thúc mỗi phần các bạn sẽ làm một bài tập lớn liên quan đến các thiết bị IoT trong Smarthome như mô phỏng thiết bị công tắc cảm ứng điều khiển đóng/mở rèm, đo lường và hiển thị các thông số nhiệt độ – độ ẩm, ánh sáng hay điều khiển độ sáng màn hình tự động hay giao tiếp với các thiết bị khác trong mạng, điển hình là bộ điều khiển trung tâm (HOST).
Mục tiêu môn học
Sau khi học xong môn này, học viên sẽ đạt được các chuẩn kiến thức, kỹ năng đầu ra như sau:
Hiểu được kiến trúc vi điều khiển STM32.
Hiểu được nguyên lý hoạt động và cách lập trình thư viện ngoại vi GPIO.
Hiểu được nguyên lý hoạt động và cách lập trình thư viện ngoại vi SPI.
Hiểu được nguyên lý hoạt động và cách lập trình thư viện ngoại vi I2C.
Hiểu được nguyên lý hoạt động và cách lập trình thư viện ngoại vi USART.
Hiểu được nguyên lý hoạt động và cách lập trình thư viện ngoại vi TIMER.
Hiểu được nguyên lý hoạt động và cách lập trình thư viện ngoại vi ADC.
Trải nghiệm học tập
Phần 1: Kiến trúc vi điều khiển STM32
Bài 1 – Công cụ gỡ lỗi Debugger và kiến trúc Bus
Bài 2 – Tổ chức bộ nhớ và xung nhịp của hệ thống
Lab 1 – Thực hành cấu hình các nguồn cấp xung nhịp cho hệ thống
Bài 3 – Ngắt và bộ quản lý ngắt NVIC
Progress Test 1
Phần 2: Ngoại vi GPIO
Bài 4 – Tổng quan về ngoại vi GPIO
Bài 5 – Lập trình thư viện APIs cho ngoại vi GPIO
Lab 2 – Thực hành cấu hình đầu ra trạng thái trên các chân GPIO
Bài 6 – Cấu hình ngắt cho chân GPIO
Lab 3 – Thực hành cấu hình ngắt ngoài cho các chân GPIO
Project 1 – Mô phỏng thiết bị công tắc cảm ứng điều khiển đóng/mở rèm cửa của Lumi Smart Home
Phần 3: Ngoại vi SPI và I2C
Bài 7 – Tổng quan về ngoại vi SPI
Bài 8 – Lập trình thư viện APIs cho ngoại vi SPI
Lab 4 – Thực hành truyền và nhận dữ liệu với ngoại vi SPI
Bài 9 – Tổng quan về ngoại vi I2C
Bài 10 – Lập trình thư viện APIs cho ngoại vi I2C
Lab 5 – Thực hành truyền và nhận dữ liệu với ngoại vi I2C
Project 2 – Giao tiếp với cảm biến nhiệt độ – độ ẩm và hiển thị các thông số lên màn hình LCD
Phần 4: Ngoại vi USART
Bài 11 – Tổng quan về giao thức USART
Bài 12 – Lập trình thư viện APIs cho ngoại vi USART
Lab 6 – Thực hành truyền và nhận dữ liệu với ngoại vi USART
Project 3 – Giao tiếp vi điều khiển STM32F4 với phần mềm mô phỏng PC_Simulator_KIT
Phần 5: Ngoại vi TIMER và ADC
Bài 13 – Tổng quan về ngoại vi TIMER
Bài 14 – Lập trình thư viện APIs cho ngoại vi TIMER
Lab 7 – Thực hành cấu hình ngoại vi TIMER ở các chế độ hoạt động khác nhau
Bài 15 – Tổng quan về ngoại vi ADC
Bài 16 – Lập trình thư viện APIs cho ngoại vi ADC
Lab 8 – Thực hành cấu hình ngoại vi ADC ở các chế độ hoạt động khác nhau
Project 4 – Mô phỏng tính năng điều chỉnh độ sáng màn hình tự động trên điện thoại
Đặc điểm môn học
Để bắt đầu, các bạn nên dành một vài phút khám phá môn học và cấu trúc chung. Môn học sẽ có 5 phần với 16 bài học. Xuyên suốt các bài học và cuối mỗi học phần, các bài thực hành Lab và bài tập lớn (Project) sẽ giúp các bạn tăng cường việc ghi nhớ và vận dung lý thuyết đã học vào các bài toán thực tế. Để việc học tập được hiệu quả, hãy luôn trau dồi kiến thức, không ngừng học hỏi, nghiên cứu và lập cho mình một kế hoạch học tập hợp lý để hoàn thành khóa học một cách xuất sắc.
Trong thời gian học (dự kiến là 6 tuần), việc phân bổ tuần học là rất quan trọng. Nếu các bạn có bất cứ câu hỏi nào hãy kết nối với Mentor để được giải đáp.
Nguồn học liệu
Trong thời đại hiện nay, mỗi môn học đều có nhiều nguồn tài liệu liên quan kể cả sách in và online, FUNiX Way không quy định một nguồn học liệu cụ thể mà khuyến cáo để học viên chọn được nguồn phù hợp nhất cho mình. Trong quá trình học từ nhiều nguồn khác nhau theo lựa chọn cá nhân đó, khi sinh viên phát sinh câu hỏi thì sẽ được kết nối nhanh nhất với mentor để được giải đáp. Toàn bộ phần đánh giá bao gồm các câu hỏi trắc nghiệm, bài tập, dự án và thi vấn đáp do FUNiX thiết kế, xây dựng và thực hiện.
Các môn học của FUNiX không quy định bắt buộc tài liệu học tập, sinh viên có thể chủ động tìm và học từ bất kỳ nguồn nào phù hợp, kể cả sách in hay nguồn học liệu online (MOOC) hay các website. Việc sử dụng các nguồn đó do học viên chịu trách nghiệm và đảm bảo tuân thủ các chính sách của chủ sở hữu nguồn, trừ trường hợp họ có sự hợp tác chính thức với FUNiX. Nếu cần hỗ trợ, học viên có thể liên hệ phòng đào tạo FUNiX để được hướng dẫn.
Dưới đây là một số nguồn học liệu của môn học mà học viên có thể tham khảo sử dụng. Việc liệt kê nguồn dưới đây không nhất thiết hàm ý rằng FUNiX có sự hợp tác chính thức với chủ sở hữu của nguồn: Coursera, tutorialspoint, edX Training, or Udemy.