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 Series Hướng dẫn Raspberry Pi này, bạn sẽ có thể tự mình thực hiện các dự án cấu hình cao. Xem qua các hướng dẫn dưới đây:
- Bắt đầu với Raspberry Pi
- Cấu hình Raspberry Pi
- LED nhấp nháy
- Giao diện nút Raspberry Pi
- Raspberry Pi thế hệ PWM
- Điều khiển Động cơ DC bằng Raspberry Pi
Trong hướng dẫn này, chúng tôi sẽ điều khiển tốc độ của động cơ bước bằng Raspberry Pi. Trong Động cơ bước, như chính cái tên đã nói, chuyển động quay của trục ở dạng Bước. Có nhiều loại Động cơ bước khác nhau; ở đây chúng tôi sẽ sử dụng loại phổ biến nhất đó là Động cơ bước đơn cực. Không giống như động cơ DC, chúng ta có thể xoay động cơ bước theo bất kỳ góc cụ thể nào bằng cách đưa ra các chỉ dẫn thích hợp.
Để xoay Động cơ bước bốn giai đoạn này, chúng tôi sẽ cung cấp xung công suất bằng cách sử dụng Mạch điều khiển động cơ bước. Mạch điều khiển nhận các kích hoạt logic từ PI. Nếu chúng ta điều khiển các bộ kích hoạt logic, chúng ta sẽ điều khiển các xung công suất và do đó là tốc độ của động cơ bướ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 chỉ còn lại 17 GPIO. Mỗi chân trong số 17 chân GPIO này có thể cung cấp dòng điện 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. Để biết thêm về các chân GPIO, hãy xem: Đèn LED nhấp nháy với Raspberry Pi
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. Không thể sử dụng các ray trợ lực này để điều khiển Động cơ bước, vì chúng ta cần nhiều lực hơn để xoay nó. Vì vậy, chúng ta phải cung cấp năng lượng cho Động cơ bước từ một nguồn điện khác. Động cơ bước của tôi có định mức điện áp là 9V vì vậy tôi đang sử dụng pin 9v làm nguồn điện thứ hai. Tìm kiếm số kiểu động cơ bước của bạn để biết xếp hạng điện áp. Tùy theo đánh giá chọn nguồn thứ cấp cho phù hợp.
Như đã nêu trước đó, chúng ta cần một mạch trình điều khiển để điều khiển Động cơ bước. Chúng tôi cũng sẽ thiết kế một mạch điều khiển bóng bán dẫn đơn giản ở đây.
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ơ bước
- Các nút (2)
- Bóng bán dẫn 2N2222 (4)
- 1N4007 Diode (4)
- Tụ điện- 1000uF
- Bảng bánh mì
Giải thích mạch:
Động cơ bước sử dụng 200 bước để hoàn thành xoay 360 độ, nghĩa là xoay 1,8 độ mỗi bước. Khi chúng ta đang điều khiển Động cơ bước bốn giai đoạn, vì vậy chúng ta cần cung cấp bốn xung để hoàn thành một chu kỳ logic đơn. Mỗi bước của động cơ này hoàn thành 1,8 độ quay, vì vậy để hoàn thành một chu kỳ chúng ta cần 200 xung. Vì vậy, 200/4 = 50 chu kỳ logic cần thiết để hoàn thành một vòng quay. Kiểm tra phần này để biết thêm về Steppers Motors và các Chế độ Lái xe của nó.
Chúng ta sẽ điều khiển từng cuộn dây trong số bốn cuộn dây này bằng một bóng bán dẫn NPN (2N2222), bóng bán dẫn NPN này lấy xung logic từ PI và điều khiển cuộn dây tương ứng. Bốn bóng bán dẫn lấy bốn lôgic từ PI để điều khiển bốn giai đoạn của động cơ bước.
Mạch điều khiển bóng bán dẫn là một thiết lập phức tạp; ở đây chúng 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 và làm hỏng nó. Kiểm tra điều này để hiểu đúng về Mạch điều khiển động cơ bước.
Độ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 bốn chân GPIO làm đầu ra để điều khiển bốn cuộn dây của động cơ bước.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
Chúng tôi đang đặt GPIO26 và GPIO19 làm chân đầu vào. Chúng tôi sẽ phát hiện nút bấm bằng các chân này.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
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):
Lệnh này thực hiện vòng lặp 100 lần, x được tăng từ 0 đến 99.
cho x trong phạm vi (100):
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 để đạt được Điều khiển tốc độ của Động cơ bướ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 độ trễ giữa bốn xung và một để giảm độ trễ giữa bốn xung. Sự chậm trễ tự nó nói lên tốc độ; nếu độ trễ cao hơn, động cơ sẽ hãm phanh giữa mỗi bước và do đó quay chậm. Nếu độ trễ gần bằng không, thì động cơ quay với tốc độ cực đại.
Ở đây cần nhớ rằng, nên có một số độ trễ giữa các xung. Sau khi tạo xung, động cơ bước mất vài mili giây thời gian để đạt đến giai đoạn cuối cùng. Nếu không có thời gian trễ giữa các xung, động cơ bước sẽ không chuyển động. Thông thường độ trễ 50ms là ổn giữa các xung. Để biết thêm thông tin chính xác, hãy xem bảng dữ liệu.
Vì vậy, với hai nút, chúng ta có thể điều khiển độ trễ, từ đó điều khiển tốc độ của động cơ bước.