Điều khiển 8 LED với RASPBERRY PI theo "ARDUINO Style"

Mô tả dự án: 

Hôm nay mình sẽ chia sẻ với các bạn một cách để mình điều khiển đèn nhiều LED (8 LED) trên máy tính Raspberry Pi. ĐIều đặc biệt mình và có lẽ các bạn cũng sẽ rất hứng thú đó là chúng ta có thể lập trình nó theo phong cách arduino :). Raspi theo phong cách arduino như thế nào? Chúng ta cùng bắt đầu nào :p

Chuẩn bị PHẦN CỨNG

Kết nối

datasheet 75HC595

Q0->Q7 : 8 LED

DS: 23(BCM)

STCP: 24(BCM)

SHCP: 25(BCM)

MR, VCC: 3.3

GND, OE: ground

Nguyên lý

Phần này hoàn toàn giống với arduino. Chỉ khác chỗ chúng ta điều khiển GPIO của raspberry pi với arduino heart.

Mình sẽ không nhắc lại, các bạn chịu khó đọc lại bài a Khánh nka: http://arduino.vn/bai-viet/113-dieu-khien-8-den-led-sang-nhap-nhay-theo-y-muon-cua-ban-de-hay-kho

Lập trình

Để điều khiển Led với 74HC595 chúng ta có rất nhiều cách, nhưng để tạo sự gần gũi với các fan arduino mình sẻ nói đến thư viện shiftpi của Tác giả Marian Ignev. Có thể nhiều bạn đã biết rồi, và mình viết bài này muốn share lại cho các bạn chưa biết đến và góp phần tạo nên một nguồn tài nguyên Raspberry Pi trên cộng đồng Arduino Việt Nam angel

Thôi mình vô vấn đề

 Bạn chạy các lệnh sau trên PI:

sudo apt-get update && sudo apt-get -y install python-rpi.gpio python-dev

Tải thư viện shiftpi này về

git clone git://github.com/mignev/shiftpi.git

Install nó

sudo python shiftpi/setup.py install

Khi muốn remove (không nhất thiết phải chạy)

sudo rm -rf shiftpi

Vậy là xong, bây giờ chúng ta tạo một file python và chạycheeky

Lưu ý rằng file python và file thư viện phải cùng nằm trong 1 thư mục

Trong file python:

Đầu tiên ta import thư viện shiftpi vào: (ta có 2 cách)

Cách 1 Cách 2
import shiftpi from shiftpi import HIGH, LOW, delay, digitalWrite, ALL
shiftpi.digitalWrite(pin, mode) digitalWrite(pin, mode)
shiftpi.LOW, shiftpi.HIGH LOW, HIGH
shiftpi.delay() delay()

Ngoài ra chúng ta còn có thêm các hàm sau:

Bạn khai báo hàm này khi muốn đổi chân kết nối raspberry pi với 74hc595

pinsSetup({"ser": SER_PIN, "rclk": RCLK_PIN, "srclk": SRCLK_PIN})

Mặc định theo sơ đồ trên và thư viện là:

Raspberry Pi HC595
25 (BCM) 14
24 (RCLK) 12
23 (SRCLK) 11

Bây giờ test thử: tạo file vd.py vào cùng thư mục với thư viện shiftpi với code sau

from ledpi import HIGH, LOW, digitalWrite, delay, ALL
while True:
        for i in range(4):
                digitalWrite(ALL, HIGH)
                delay(300)
                digitalWrite(ALL, LOW)
                delay(300)
        for j in range(4):
                count = 0
                while (count < 8):
                        digitalWrite(count, HIGH)
                        delay(100)
                        count = count + 1
                count = 7
                while (count >= 0):
                        digitalWrite(count, LOW)
                        delay(100)
                        count = count - 1

Lưu lại và kiểm tra.

python vd.py

Kết luận

Như vậy là chúng ta có thể điều khiển 8LED với HC595 với raspi như 1 arduino rồi laugh

Và các bạn hãy đọc thêm thư viện này https://github.com/mignev/shiftpi và thử làm nó với nhiều 74HC595 và nhiều LED hơn nữa nhécheeky

Cảm ơn các bạn đã đọc smileysadwinkindecisionangelcooldevilyesheartChúc các bạn thành công.

Youtube: 
lên
7 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Attiny13 học lệnh từ remote, điều khiển on/off 3 kênh

Có bao giờ bạn có tự hỏi như mình: liệu có thể làm một thiết bị remote từ xa sử dụng điều khiển TV hay không? Với bài viết Infrared remote control (điều khiển bằng hồng ngoại) với Arduino của bạn NTP_PRO, mình đã làm được điều đó. Nhưng thực sự Arduino UNO quá đắt để làm được việc này! Vì vậy, mình dùng một dòng chip khác là ATtiny13. Và hôm nay, mình sẽ hướng dẫn các bạn làm nên mạch này!

lên
7 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Tôi tự làm Robot với Raspberry Pi và Arduino như thế nào? - Phần 6: Sử dụng NRF24L01 với Raspberry Pi

Hú Hú, Chúng ta cùng tiếp tục với bài 6 trong tutorial của mình laughHôm nay mình sẽ hướng dẫn cách bạn giao tiếp Raspberry và Arduino thông qua module NRF24L01 nhé.

lên
8 thành viên đã đánh giá bài viết này hữu ích.

Tôi tự làm Robot với Raspberry Pi và Arduino thê nào? - Phần 4: Nhúng Hình ảnh từ webcam lên trang web

Oki ! Hôm trước chúng ta đã có thể điều khiển Robot di chuyển nhưng khá bất tiện khi mình điều khiển ở xa thì không thấy được những gì mình điều khiển. Hôm nay sẽ sẽ hướng dẫn các bạn có thể nhúng được video stream từ webcam lến trang web. Và tạo một số nút hệ thống cho trang web. 

lên
11 thành viên đã đánh giá bài viết này hữu ích.