Raspberry Pi là một bo mạch dựa trên bộ xử lý kiến trúc ARM được thiết kế cho các kỹ sư điện tử và những người yêu thích. PI là một trong những nền tảng phát triển dự án đáng tin cậy nhất hiện nay. Với tốc độ xử lý cao hơn và RAM 1 GB, PI có thể được sử dụng cho nhiều dự án cấu hình cao như Xử lý hình ảnh và Internet of Things.
Để thực hiện bất kỳ dự án cao cấp nào, người ta cần hiểu các chức năng cơ bản của PI. Chúng tôi sẽ trình bày tất cả các chức năng cơ bản của Raspberry Pi trong các hướng dẫn này. Trong mỗi hướng dẫn, chúng tôi sẽ thảo luận về một trong các chức năng của PI. Đến cuối loạt bài hướng dẫn, bạn sẽ có thể tự mình thực hiện các dự án cao cấp. Kiểm tra những điều này để Bắt đầu với Raspberry Pi và Cấu hình Raspberry Pi.
Chúng ta đã thảo luận về LED Blinky, Giao diện nút và thế hệ PWM trong các hướng dẫn trước. Trong hướng dẫn này, chúng tôi sẽ Điều khiển tốc độ của động cơ DC bằng Raspberry Pi và kỹ thuật PWM. PWM (Điều chế độ rộng xung) là một phương pháp được sử dụng để lấy điện áp thay đổi ra khỏi nguồn điện không đổi. Chúng ta đã thảo luận về PWM trong hướng dẫn trước.
Có 40 chân đầu ra GPIO trong Raspberry Pi 2. Nhưng trong số 40, chỉ có 26 chân GPIO (GPIO2 đến GPIO27) có thể được lập trình. Một số chân này thực hiện một số chức năng đặc biệt. Với GPIO đặc biệt được đặt sang một bên, chúng tôi còn lại 17 GPIO. Để biết thêm về các chân GPIO, hãy xem: Đèn LED nhấp nháy với Raspberry Pi
Mỗi chân trong số 17 chân GPIO này có thể cung cấp tối đa 15mA. Và tổng dòng điện từ tất cả các Chân GPIO không được vượt quá 50mA. Vì vậy, chúng tôi có thể vẽ trung bình tối đa 3mA từ mỗi chân GPIO này. Vì vậy, không nên làm xáo trộn những thứ này trừ khi bạn biết mình đang làm gì.
Trên bo mạch có các chân ra nguồn + 5V (Pin 2 & 4) và + 3.3V (Pin 1 & 17) để kết nối các mô-đun và cảm biến khác. Đường ray nguồn này được kết nối song song với nguồn bộ xử lý. Vì vậy việc rút dòng điện cao từ ray điện này sẽ ảnh hưởng đến Bộ xử lý. Có một cầu chì trên bảng PI sẽ ngắt khi bạn đặt tải cao. Bạn có thể rút 100mA một cách an toàn từ đường ray + 3.3V. Chúng tôi đang nói về điều này ở đây bởi vì; chúng tôi đang kết nối động cơ DC với + 3.3V. Với giới hạn công suất, chúng tôi chỉ có thể kết nối động cơ công suất thấp ở đây, nếu bạn muốn điều khiển động cơ công suất cao, hãy xem xét cấp nguồn cho nó từ một nguồn điện riêng.
Các thành phần bắt buộc:
Ở đây chúng tôi đang sử dụng Raspberry Pi 2 Model B với Hệ điều hành Raspbian Jessie. Tất cả các yêu cầu cơ bản về Phần cứng và Phần mềm đã được thảo luận trước đó, bạn có thể tra cứu trong phần Giới thiệu Raspberry Pi, ngoài những yêu cầu mà chúng tôi cần:
- Kết nối chân
- Điện trở 220Ω hoặc 1KΩ (3)
- Động cơ DC nhỏ
- Các nút (2)
- Bóng bán dẫn 2N2222
- 1N4007 Diode
- Tụ điện- 1000uF
- Bảng bánh mì
Giải thích mạch:
Như đã nói trước đó, chúng ta không thể rút nhiều hơn 15mA từ bất kỳ chân GPIO nào và động cơ DC rút hơn 15mA, vì vậy PWM do Raspberry Pi tạo ra không thể được cấp trực tiếp cho động cơ DC. Vì vậy, nếu chúng tôi kết nối động cơ trực tiếp với PI để điều khiển tốc độ, bo mạch có thể bị hỏng vĩnh viễn.
Vì vậy, chúng tôi sẽ sử dụng một bóng bán dẫn NPN (2N2222) như một thiết bị chuyển mạch. Bóng bán dẫn này ở đây điều khiển động cơ DC công suất cao bằng cách lấy tín hiệu PWM từ PI. Ở đây người ta nên chú ý rằng kết nối sai bóng bán dẫn có thể tải nặng bảng.
Động cơ là một cảm ứng và vì vậy trong khi chuyển đổi động cơ, chúng ta trải nghiệm cảm ứng tăng vọt. Sự tăng vọt này sẽ làm nóng bóng bán dẫn rất nhiều, vì vậy chúng tôi sẽ sử dụng Diode (1N4007) để bảo vệ bóng bán dẫn chống lại sự tăng đột biến cảm ứng.
Để giảm sự dao động điện áp, chúng ta sẽ nối một tụ điện 1000uF qua nguồn điện như trong Sơ đồ mạch.
Giải thích làm việc:
Sau khi mọi thứ được kết nối theo sơ đồ mạch, chúng ta có thể BẬT PI để viết chương trình trong PYHTON.
Chúng ta sẽ nói về một số lệnh mà chúng ta sẽ sử dụng trong chương trình PYHTON.
Chúng tôi sẽ nhập tệp GPIO từ thư viện, chức năng bên dưới cho phép chúng tôi lập trình các chân GPIO của PI. Chúng tôi cũng đang đổi tên “GPIO” thành “IO”, vì vậy trong chương trình bất cứ khi nào chúng tôi muốn đề cập đến các chân GPIO, chúng tôi sẽ sử dụng từ 'IO'.
nhập RPi.GPIO dưới dạng IO
Đôi khi, khi các chân GPIO, mà chúng tôi đang cố gắng sử dụng, có thể đang thực hiện một số chức năng khác. Trong trường hợp đó, chúng tôi sẽ nhận được cảnh báo trong khi thực hiện chương trình. Lệnh dưới đây yêu cầu PI bỏ qua các cảnh báo và tiếp tục với chương trình.
IO.setwarnings (Sai)
Chúng ta có thể tham khảo các chân GPIO của PI, theo số chân trên bo mạch hoặc theo số chức năng của chúng. Giống như 'PIN 35' trên bảng là 'GPIO19'. Vì vậy, chúng tôi nói ở đây hoặc chúng tôi sẽ đại diện cho chốt ở đây bằng '35' hoặc '19'.
IO.setmode (IO.BCM)
Chúng tôi đang đặt GPIO19 (hoặc PIN35) làm chân đầu ra. Chúng ta sẽ nhận được đầu ra PWM từ chân này.
IO.setup (19, IO.IN)
Sau khi đặt chân làm đầu ra, chúng ta cần thiết lập chân làm chân đầu ra PWM, p = IO.PWM (kênh đầu ra, tần số của tín hiệu PWM)
Lệnh trên dùng để thiết lập kênh và cũng để thiết lập tần số của tín hiệu PWM. 'p' ở đây là một biến, nó có thể là bất cứ thứ gì. Chúng tôi đang sử dụng GPIO19 làm kênh đầu ra PWM. ' tần số của tín hiệu PWM ' đã được chọn 100, vì chúng tôi không muốn thấy đèn LED nhấp nháy.
Lệnh dưới đây được sử dụng để bắt đầu tạo tín hiệu PWM, ' DUTYCYCLE ' là để thiết lập tỷ lệ Bật, 0 có nghĩa là đèn LED sẽ BẬT trong 0% thời gian, 30 nghĩa là đèn LED sẽ BẬT trong 30% thời gian và 100 nghĩa là BẬT hoàn toàn.
p.start (DUTYCYCLE)
Trong trường hợp Điều kiện trong dấu ngoặc nhọn là true, các câu lệnh bên trong vòng lặp sẽ được thực hiện một lần. Vì vậy, nếu chân GPIO 26 xuống thấp, thì các câu lệnh bên trong vòng lặp IF sẽ được thực thi một lần. Nếu chân GPIO 26 không xuống thấp, thì các câu lệnh bên trong vòng lặp IF sẽ không được thực thi.
if (IO.input (26) == Sai):
While 1: được sử dụng cho vòng lặp vô cực. Với lệnh này các câu lệnh bên trong vòng lặp này sẽ được thực thi liên tục.
Chúng tôi có tất cả các lệnh cần thiết để kiểm soát tốc độ với điều này.
Sau khi viết chương trình và thực thi nó, tất cả những gì còn lại là vận hành điều khiển. Chúng tôi có hai nút kết nối với PI; một để tăng Chu kỳ nhiệm vụ của tín hiệu PWM và một để giảm Chu kỳ nhiệm vụ của tín hiệu PWM. Bằng cách nhấn một nút, tốc độ của động cơ điện một chiều tăng lên và bằng cách nhấn nút kia, tốc độ của động cơ điện một chiều giảm. Với điều này, chúng tôi đã đạt được Điều khiển tốc độ động cơ DC của Raspberry Pi.
Cũng kiểm tra:
- Điều khiển tốc độ động cơ DC
- Điều khiển động cơ DC bằng Arduino