Raspberry Pi và Arduino là hai bảng mã nguồn mở phổ biến nhất trong Cộng đồng Điện tử. Chúng không chỉ phổ biến trong giới Kỹ sư Điện tử mà còn ở các sinh viên trường học và những người có sở thích, vì tính dễ dàng và đơn giản của chúng. Thậm chí một số người chỉ bắt đầu thích Điện tử vì Raspberry Pi và Arduino. Những bo mạch này có sức mạnh rất lớn, và người ta có thể xây dựng một dự án Hi-fi rất phức tạp với vài bước đơn giản và ít lập trình.
Chúng tôi đã tạo ra rất nhiều Dự án và Hướng dẫn Arduino, từ những dự án rất đơn giản đến phức tạp. Chúng tôi cũng đã tạo Loạt Hướng dẫn về Raspberry Pi, từ đó bất kỳ ai cũng có thể bắt đầu học từ 'đầu'. Đây là một đóng góp nhỏ cho Cộng đồng Điện tử từ phía chúng tôi và cổng thông tin này đã chứng tỏ mình là Nguồn Học liệu Tuyệt vời cho Điện tử. Vì vậy, hôm nay chúng tôi sẽ kết hợp hai bảng tuyệt vời này lại với nhau bằng cách Giao tiếp Arduino với Raspberry Pi.
Trong hướng dẫn này, chúng tôi sẽ thiết lập Giao tiếp nối tiếp giữa Raspberry Pi và Arduino Uno. PI chỉ có 26 chân GPIO và không có kênh ADC, vì vậy khi chúng tôi thực hiện các dự án như máy in 3D, PI không thể thực hiện tất cả các tương tác một mình. Vì vậy, chúng tôi cần nhiều chân đầu ra hơn và các chức năng bổ sung, để thêm nhiều chức năng hơn cho PI, chúng tôi thiết lập giao tiếp giữa PI và UNO. Với điều đó, chúng ta có thể sử dụng tất cả các chức năng của UNO vì chúng là các chức năng PI.
Arduino là một nền tảng lớn để phát triển dự án, có nhiều bảng như Arduino Uno, Arduino Pro mini, Arduino Due, v.v. Chúng là bảng dựa trên bộ điều khiển ATMEGA được thiết kế cho Kỹ sư và Người yêu thích điện tử. Mặc dù có rất nhiều bo mạch trên nền tảng Arduino, nhưng Arduino Uno nhận được nhiều đánh giá cao vì tính dễ thực hiện các dự án. Môi trường phát triển chương trình dựa trên Arduino là một cách dễ dàng để viết chương trình khi so sánh với những người khác.
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 Raspbian Jessie OS và Arduino Uno. Tất cả các yêu cầu cơ bản về Phần cứng và Phần mềm, liên quan đến Raspberry Pi, đã được thảo luận trước đây, 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Ω (2 miếng)
- Đèn LED
- Cái nút
Giải thích mạch:
Như trong Sơ đồ mạch ở trên, chúng ta sẽ kết nối UNO với cổng PI USB bằng cáp USB. Có bốn cổng USB cho PI; bạn có thể kết nối nó với bất kỳ một trong số họ. Một nút được kết nối để khởi tạo giao tiếp nối tiếp và đèn LED (nhấp nháy) để cho biết dữ liệu đang được gửi.
Giải thích làm việc và lập trình:
Phần Arduino Uno:
Đầu tiên, hãy lập trình UNO, Kết nối UNO với PC trước rồi viết chương trình (phần Mã kiểm tra bên dưới) trong phần mềm Arduino IDE và tải chương trình lên UNO. Sau đó ngắt kết nối UNO khỏi PC. Gắn UNO vào PI sau khi lập trình và kết nối đèn LED và nút với UNO, như thể hiện trong sơ đồ mạch.
Bây giờ chương trình ở đây khởi tạo Giao tiếp nối tiếp của UNO. Khi chúng ta nhấn nút gắn với UNO, UNO sẽ gửi một số ký tự đến PI nối tiếp nhau thông qua cổng USB. Đèn LED gắn với PI nhấp nháy để cho biết các ký tự được gửi.
Phần Raspberry Pi:
Sau đó, chúng ta phải viết một chương trình cho PI (phần Mã kiểm tra bên dưới), để nhận dữ liệu này được gửi bởi UNO. Để làm được điều đó, chúng ta cần hiểu một số lệnh được nêu dưới đây.
Chúng tôi sẽ nhập tệp nối tiếp từ thư viện, chức năng này cho phép chúng tôi gửi hoặc nhận dữ liệu nối tiếp hoặc bằng cổng USB.
nhập nối tiếp
Bây giờ, chúng ta cần xác định cổng thiết bị và tốc độ bit để PI nhận dữ liệu từ UNO mà không có bất kỳ lỗi nào. Lệnh dưới đây nói rằng, chúng tôi đang kích hoạt giao tiếp nối tiếp 9600 bit mỗi giây trên cổng ACM0.
ser = serial.Serial ('/ dev / ttyACM0', 9600)
Để tìm cổng mà UNO đang được gắn vào, hãy chuyển đến đầu cuối của PI và nhập
ls / dev / tty *
Bạn sẽ có danh sách tất cả các thiết bị được đính kèm trên PI. Bây giờ kết nối Arduino Uno với Raspberry Pi bằng cáp USB và nhập lại lệnh. Bạn có thể dễ dàng xác định cổng đính kèm UNO từ danh sách hiển thị.
Lệnh dưới đây được dùng làm vòng lặp vĩnh viễn, 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 hiện liên tục.
Trong khi 1:
Sau khi nhận dữ liệu theo thứ tự, chúng tôi sẽ hiển thị các ký tự trên màn hình của PI.
print (ser.readline ())
Vì vậy, sau khi nhấn nút, gắn với UNO, chúng ta sẽ thấy các ký tự được in trên màn hình PI. Do đó, chúng tôi đã thiết lập Bắt tay giao tiếp cơ bản giữa Raspberry Pi và Arduino.