Lập trình micro-controller STM32

MÔ TẢ

ARM Cortex là nhóm vi xử lý 32 bit kiến trúc RISC được sản xuất bởi nhiều công ty được cấp phép bởi ARM holdings. Vi xử lý ARM Cortex hiện được dùng trong hàng trăm triệu thiết bị điện tử trên toàn cầu.
STM32 được hãng STM Thuỵ Sỹ sản xuất trên thiết kế ARM Cortex-M, với khả năng xử lý hiệu suất cao, thời gian thực, xử lý tín hiệu số, tiết kiệm điện năng, hiệu điện thế thấp. Ưu điểm của micro-controller STM32:

  • Chi phí thấp, phổ biến. Cùng giá thành thì chức năng và hiệu suất tốt hơn Atmel hay Microchip
  • Công cụ lập trình STM cũng cấp rất mạnh và miễn phí. Có thể sinh code bằng cấu hình.
  • Lập trình bằng ngôn ngữ C/C++, hỗ trợ hệ điều hành thời gian thực RTOS

Khoá học này đào tạo kỹ năng lập trình vi điều khiển trên bo mạch STM32F103C8T6. Sau khoá học, học viên có thể:

  • Có kiến thức các chuẩn giao tiếp của micro-controller để học lập trình Embedded Linux
  • Lập trình vi điều khiển cho các dự án tự động hoá (cần bổ xung kiến thực tự động như PID, Fuzzy Control, Kalman Filter), các sản phẩm điện tử dân dụng.

16 buổi x 3 tiếng. Thực hành 80% tại phòng lab. Có slide và mã nguồn demo dự án.

YÊU CẦU

  • Học chuyên ngành CNTT, Điện tử, Điện tử Viễn Thông, Tự động hoá, Cơ khí
  • Đã lập trình C hoặc C++ căn bản
  • Có kiến thức điện tử căn bản: điện thế, dòng diện, điện trở, tụ điện, LED, diode
  • Mong muốn xin việc tại các công ty sản xuất thiết bị điện tử Viettel, Samsung, VinSmart, Foxcon.... hoặc làm các dự án điều khiển

GIẢNG VIÊN

Trịnh Minh Cường
Giảng viên Python Data Analysis, Deep Learning, kiến trúc hệ thống, Golang, IOS, Flutter, Embedded Linux. Thạc sỹ điều khiển tự động hoá Korean Advanced Institue of Technlogy. Lập trình viên tập đoàn Microsoft 2007-2011, Harvey Nash 2006-2007, Fujtisu 1999-2003

Lê Văn Dũng
Giảng viên Điện Tử - Tự Động Hoá.

 

Giáo trình
0. Thiết lập môi trường lập trình STM32F
  • Giới thiệu bo mạch STM32F103C8T6, kết nối nguồn, ST-Link V2 programming unit, bread board, tụ hoá, dây cắm, trở.
  • Hệ điều hành thời gian thực RTOS
  • Thư viện mã nguồn mở Libopencm3
  • Cài đặt bộ biên dịch gcc/g++, make, ARM Cross Compiler
  • Công cụ soạn thảo mã STM32CubeIDE
  • Lựa chọn IDE khác Visual Studio Code và plugin PlatformIO
  • Đọc tài liệu mô tả tiếng Anh chip STM32F103x8
  • Mạch cấp nguồn USB 5V và 3.3V. Mạch ổn áp
  • Mạch reset khởi động lại board mạch
1. GPIO cổng vào ra đa năng
  • Vào ra cổng GPIO
  • Bật tắt đèn LED theo chu kỳ. Giả lập trễ
  • gpio_set, gpio_clear, gpio_get, gpio_toggle, gpio_port_read, gpio_port_write, gpio_port_config_lock
  • Giải thích các lựa chọn cấu hình GPIO
  • Dùng push button bật tắt đèn LED
  • Lập trình mạch 5 đèn LED bật tắt đuổi nhau
  • Sử dụng STM32CubeMX để cấu hình sinh code
2. Hệ điều hành thời gian thực RTOS
  • Phân loại hệ điều hành theo khả năng thực thi. Khái niệm RTOS
  • Tác vụ (Task)
  • Hàng đợi thông điệp (Message Queue)
  • Giới hạn số lượng tác vụ cùng chạy (Semaphore)
  • Phối hợp nhiều tác vụ cùng truy xuất vào dữ liệu (Mutex)
  • Timer / Event Groups
  • Thực hành
3. Truyền tín hiệu bằng USART/UART
  • Quy cách truyền dữ liệu bằng USART/UART. Khác biệt giữa USART và UART
  • Cấu tạo cáp chuyển đổi USB sang TTL.
  • Các phần mềm nhận dữ liệu Serial trên máy tính.
  • Lập trình Python Pyserial để nhận dữ liệu
  • Baud rate, lỗi đường truyền, decode dữ liệu
  • Thực hành: lập trình ứng dụng dự đoán số sinh ngẫu nhiên từ 0 đến 100 bên tron STM32, người dùng giao tiếp qua PySerial
  • Thực hành: sử dụng thư viện serial bằng ngôn ngữ Golang https://github.com/tarm/serial
4. Giao tiếp USB
  • USB truyền nhận dữ liệu như thế nào. Các chuẩn USB 1, 2, 3
  • USB GPIO
  • Thực hành giao tiếp truyền nhận dữ liệu STM32 qua cổng USB
5. Quan sát trạng thái STM32 bằng STMStudio
  • Công cụ để debug trạng thái STM32
  • Hướng dẫn debug trên phần mềm Keil C IDE – Debug chương trình vi điều khiển STM32
  • Thực hành Debug chương trình vi điều khiển STM32 trên phần mềm Keil C IDE
6. Giao tiếp STM32 với LCD16x2
  • Giới thiệu về LCD 16x2
  • Lập trình STM32 giao tiếp với LCD 16x2
7. SPI Flash
  • Giao tiếp STM32 với thiết bị ngoại vi
  • Cấu hình SPI STM32
  • Chọn tần số xung Clock
  • Thực hành Giao tiếp STM32 với bộ nhớ ngoài qua BUS SPI
8. OLED sử dụng DMA
  • Giới thiệu về OLED
  • Thực hành Giao tiếp STM32 với OLED
9. I2C
  • Giới thiệu về BUS I2C
  • Thực hành giao tiếp STM32 với bộ nhớ ngoài qua BUS I2C
10. Can Bus
  • Giới thiệu về CAN Bus
  • Tín hiệu
  • Thực hành giao tiếp giữa các bộ vi điều khiển STM32 qua CAN Bus
11. Analog to Digital, Digital to Analog converter
  • Giới thiệu về bộ chuyển đổi ADC trong STM32
  • Cấu hình bộ chuyển đổi ADC
  • Thực hành giao tiếp STM32 với biến trở
  • Thực hành giao tiếp STM32 với cảm biến nhiệt LM35
12. Kalman Filter
  • Giới thiệu bộ lọc nhiễu Kalman Filter
  • Sử dụng Kalman Filter để lọc nhiều từ cảm biến
13. Điều khiển motor Step
  • Giới thiệu về động cơ bước
  • Lập trình STM32 điều khiển động cơ bước
14. Điều khiển motor không feedback loop
  • Tín hiệu PWM
  • Opto decoupler
  • Mạch điều khiển công suất tín hiệu PWM
  • Lập trình STM32 điều khiển động cơ bằng PWM
15. Điều khiển motor có feedback loop
  • Optical Encoder
  • PID để đảm bảo tốc độ góc quay
  • PID để đểm số góc quay
  • Lập trình điều khiển hiển thị tốc độ động cơ lên LCD
Gói học phí
Bạn có thắc mắc
Nhận hỗ trợ
Để lại thông tin, chúng tôi sẽ liên hệ với bạn
Đóng trọn gói
4000000đ
Học viên hoàn thành học phí trong một lần
FREE