Skip to main content

Lập trình C nhúng nâng cao cho vi điều khiển

Enrollment in this course is by invitation only

GIỚI THIỆU MÔN HỌC!

Chào mừng các bạn đến với môn học thứ ba trong Chương trình Lập trình IoT cùng Lumi (IoT Programing with Lumi) thuộc khung chương trình đào tạo giữa Đại học FUNiX và Công ty cổ phần Lumi Việt Nam.

Môn học này trang bị cho học viên các 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).

Để việc học tập được hiệu quả, chúng tôi khuyến khích học viên học môn “Tổng quan về IOT và lập trình C nhúng cho vi điều khiển” thuộc khóa học này hoặc tự tích lũy những kiến thức cơ bản và một số kỹ năng, kinh nghiệm về lập trình nhúng cơ bản. Học viên cũng cần rèn luyện khả năng tự tìm hiểu, lối suy nghĩ độc lập, tư duy lô-gic, và nên biết lắng nghe những chỉ dẫn của giảng viên cũng như đội ngũ mentor.

Môn học sẽ có 5 phần, với 16 bài học. Sau mỗi phần học viên sẽ được yêu cầu xây dựng các project thực tế với sự hỗ trợ từ mentor, độ khó của project sẽ tăng dần theo từng phần. 

THÔNG TIN MÔN HỌC

Mã môn học: IOT303x
Tên môn học: Lập trình C nhúng nâng cao cho vi điều khiển
Số tín chỉ: 3
Thời gian học: 6 tuần 

MỤC TIÊU MÔN HỌC

  • 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.

CẤU TRÚC MÔN HỌC

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
  • Bài 3 - Ngắt và bộ quản lý ngắt NVIC

Progress Test 1 - Kiểm tra lý thuyết

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
  • Bài 6 - Cấu hình ngắt cho chân GPIO

Assignment 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
  • 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

Assignment 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

Assignment 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
  • 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

Assignment 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

ĐỘI NGŨ THIẾT KẾ MÔN HỌC

THIẾT KẾ MÔN HỌC

LUMI TEAM

Công ty Cổ phần Lumi Việt Nam là công ty dẫn đầu tại Việt Nam trong lĩnh vực Nhà thông minh - một ứng dụng tiêu biểu của IOT. Được thành lập từ năm 2012, đến nay Nhà thông minh Lumi đã khẳng định được vị thế vững mạnh trên thị trường nhờ làm chủ về công nghệ, sở hữu hệ sinh thái nhà thông minh hoàn chỉnh và mở rộng liên tục.

Website: https://lumi.vn


       Nguyễn Tuấn Anh 

  • Chairman/CTO tại Công ty Cổ phần Lumi Việt Nam
  • Tốt nghiệp Kĩ sư ngành Kỹ thuật điều khiển và tự động hoá, Đại học Bách Khoa Hà Nội
  • 8 năm kinh nghiệm trong lĩnh vực nghiên cứu và phát triển sản phẩm Smarthome, IOT
  • Kiến trúc sư trưởng giải pháp nhà thông minh Lumi và hệ sinh thái Lumi Life

      Nguyễn Huy Hoàng

  • MCU Leader tại Công ty Cổ phần Lumi Việt Nam
  • Tốt nghiệp Kĩ sư ngành Kỹ thuật điều khiển và tự động hoá, Đại học Bách Khoa Hà Nội
  • 6 năm kinh nghiệm nghiên cứu và phát triển các thiết bị trong lĩnh vực IoTs
  • Chuyên gia lập trình ngôn ngữ C, C++, C#, Java, Python
  • Profile online: https://www.linkedin.com/in/hoang-nguyen-huy-3b89551b2/

CHUYÊN GIA PHẢN BIỆN MÔN HỌC

      Nguyễn Bình Minh

  • Nghiên cứu viên, Viện công nghệ Toyota (Toyota Technological Institute)
  • Tiến sỹ chuyên ngành Năng lượng tiên tiến & Thạc sĩ chuyên ngành Kỹ thuật điện, Đại học Tokyo 
  • Cử nhân ngành Kỹ thuật Điện, Đại học Bách Khoa Hà Nội  
  • Lĩnh vực nghiên cứu: Lý thuyết điều khiển, điều khiển chuyển động, hệ thống đa tác tử, ô-tô điện
  • Dự án chính: Điều khiển chuyển động ô-tô điện, Điều khiển máy cắm chip sử dụng camera, Điều khiển chuỗi cung ứng,....

          Khuất Đức Anh

  • Quản lý và giảng viên khoa Điện cơ điện tử - Đại học Phương Đông
  • Giảng viên học viện Mạng phần cứng FPT Jetking Hà Nội (BE – basic electric, HL – hardware device, IoT – internet of things)
  • Bộ môn chuyên trách: Thực hành điện, điện tử, cơ điện tử, tự động hóa, robot và lập trình gia công chính xác trên máy CNC
  • Lĩnh vực chuyên môn: Lập trình C/C++ cho vi điều khiển AVR 8051 ARM ARDUINO, Java  Desktop; các phần mềm hỗ thiết kế mạch, giả lập mạch điện tử số vi điều khiển, phần mềm hỗ trợ chuyên ngành cơ khí  

NGUỒN HỌC LIỆU (MOOC)

Nguyên tắc đào tạo của FUNiX là tìm kiếm những khóa học online mở (MOOC - Massive open online course) có chất lượng thật tốt do những đơn vị/tác giả uy tín cung cấp, kết hợp với việc bản địa hóa, cung cấp thêm bài tập thực hành, đánh giá, cùng dịch vụ hướng dẫn từ cộng đồng mentor để giúp học viên có thể học tập được từ bất kỳ đâu, bất kể lúc nào với những chất lượng đào tạo tối ưu.

Với môn học Lập trình C nhúng nâng cao cho vi điều khiển này, chúng tôi tin tưởng giới thiệu với các bạn học viên tài nguyên MOOC chính của môn học này là khóa Mastering Microcontroller with Embedded Driver Development được cung cấp bởi Udemy, một trong những nền tảng cung cấp các khóa học trực tuyến mở uy tín nhất hiện nay trên thế giới.


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: UdemyMicrocontrollerslabST.


 Kênh phản hồi

FUNiX sẵn sàng đón nhận và trao đổi về mọi ý kiến góp ý, phản hồi liên quan đến học liệu qua email program@funix.edu.vn.