Hướng dẫn lập trình raspberry pi

CHÚ Ý:Từ 2019 mbachulski.com có thêm một website đến riêng rẽ Raspberry Pi và biến chuyển trang web thiết yếu về Raspberry Pi trên mbachulski.com, những biết tin về sản phẩm - thông tin update về Raspberry Pi - Bài viết nghệ thuật cung ứng cho Raspberry Pi, ... mbachulski.com update tại website:pivietphái mạnh.com.vn

mbachulski.com trân trọng thông tin cho tới người tiêu dùng hàng!!!

*

Các chúng ta có thể xem thêm những nội dung bài viết cung ứng kỹ thuật và các thông tin tiên tiến nhất tại đoạn "tin tức"trên trang web PVIETNAM.COM.VN

*

Bài viết cung ứng chuyên môn tại website PIVIETNAM.COM.toàn nước - Bài 1: Lập trình cơ phiên bản Raspberry Pi cùng với GPIO (Link here)

*

khi chúng ta hợp tác làm quen thuộc với một chiếc vi xử trí new làm sao kia, bọn họ luôn luôn đề nghị chuẩn bị mọi biết tin cùng kỹ năng và kiến thức cần thiết trước khi bước đầu.

Bạn đang xem: Hướng dẫn lập trình raspberry pi

Đầu tiên là thông tin về phần cứng: cái vi cách xử lý, vận tốc của nó, dung tích của Ram, dương lượng bộ nhớ cứng (bộ nhớ để ghi chương thơm trình) con số và địa chỉ của GPIO, tốt các chuẩn chỉnh giao tiếp được hỗ trợ.

Tiếp chính là kiến thức về lập trình cho vi xử trí. Ví nlỗi asembly – ngữ điệu thấp cấp, ngôn từ C – số đông được hỗ trợ trên các phép tắc lập trình, python – dụng cụ trên dòng vi cách xử trí chạy hệ điều hành và quản lý, hay bất cứ ngữ điệu nào nhưng mà phương pháp cho vị xử trí đó hỗ trợ.

1. Kiến thức phần cứng


Trước hết hãy cùng xem GPIO mapping của Raspberry Pi. Đây là sơ trang bị bên trên Raspberry 2 Model B

Trong 40 chân GPIO bao hàm :

- 26 chân GPIO. lúc thiết lập cấu hình là input đầu vào, GPIO có thể được thực hiện nhỏng chân interupt, GPIO 14 và 15 được cấu hình thiết lập sẵn là chân đầu vào.

- 1UART, 1 I2C, 2 SPI, 1 PWM (GPIO 4)

- 2 chân mối cung cấp 5V, 2 chân mối cung cấp 3.3V, 8 chân GND

- 2 chân ID EEPROM

Vi xử trí ARMv7 32bit quad core 900Mhz, dung lượng Ram 1G, và bộ nhớ kiểu dáng micro SD dung tích tùy lựa chọn ( đề nghị >=4G).

khi một chân GPIO lên mức cao vẫn đạt năng lượng điện áp 3.3V, loại ra buổi tối nhiều Imax = 5mA.

Kiến thức cơ phiên bản mang lại Pi như bên trên là đầy đủ nhằm có thể ban đầu lập trình sẵn. Chúng ta thuộc chuyển hẳn qua phần kiến thức và kỹ năng tiếp sau.

*

2. Kiến thức về ngôn từ lập trình


Lập trình bên trên Pi có tương đối nhiều sự sàng lọc. cũng có thể lập trình sẵn trực tiếp từ bash-shell của linux, hoặc lập trình cùng với C đối kháng thuần, ngoại giả còn tồn tại pybé nhỏ, perl tốt Ruby (chúng ta cũng có thể xem các code chủng loại ngơi nghỉ đây) . Quý khách hàng nên chọn lựa một cỗ tlỗi viện cố vị chỉ lập trình với ngữ điệu 1-1 thuần, vì đơn giản dễ dàng các bạn đặt gạch xây nhà nhanh khô rộng là làm từng viên gạch cho ngôi nhà của bản thân. Thư viện sẽ giúp đỡ bạn làm lơ lượng các bước vừa phức tạp cùng tốn công sức của con người nhỏng gán liên hệ của cẳng chân GPIO xuất xắc thao tác với thanh khô ghi ..v.v. Quý Khách hoàn toàn có thể triệu tập hơn vào chế tạo ứng dụng của chính bản thân mình.

Thỏng viện đến Pi cũng đa dạng mẫu mã không hề thua kém. Một thư viện xuất sắc Lúc nó cung ứng những hàm xử lý linch hoạt, cung ứng những tiếp xúc với tốc độ của thỏng viện nkhô hanh ( Tức là nó mất không rất nhiều lần điện thoại tư vấn lệnh giỏi hàm trung gian để có thực hiện mong muốn của chúng ta ). Vấn đề tốc độ chỉ xứng đáng quyên tâm khi bạn thực sự thao tác với những hiểu biết vi giải pháp xử lý thực hiện lệnh nhanh lẹ (trả như PWM). Bạn rất có thể xem quaBenchmarkingcho các tlỗi Việc của Raspberry Pi.

Trong bài bác này, bản thân đã trình làng lập trình trên 2 ngôn từ được áp dụng rộng thoải mái bên trên Pi là C cùng Pykhông lớn. Hai cỗ thư viện khớp ứng làWiringPivàRPiGPIO. WiringPi được viết bên dưới dạng framework củawiring, nó cũng là framework mà Arduino áp dụng.

3. Bắt đầu cùng với bài thiết kế GPIO


Để ban đầu với chuỗi bài bác lập trình sẵn mang lại Raspberry Pi. Chúng ta hãy cùng ban đầu cùng với đều bài cnạp năng lượng bản độc nhất nhưng mà có lẽ tương đối bi đát tẻ của thiết kế – lập trình sẵn đến GPIO. Nhữngbài bác sau đây sẽ lập trình sẵn nhằm tinh chỉnh LED. Bạn hãy chuẩn bị Hartware mà lại sơ đồ vật sau đây.

Nhiệm vụ của chúng ta đang tinh chỉnh bật và tắt mẫu đèn led này.Lưu ý rằng, Lúc GPIO của Pi được cấu hình thiết lập lên tới mức cao thì hiệu năng lượng điện nạm U = 3.3V với mẫu buổi tối đa là Imax = 50mA .

Giả sử bóng đèn Led hay sử dụng sáng ngơi nghỉ 2V và I = 5m thì năng lượng điện trsống tương xứng sẽ được tính là :

R=(3.3 - 2)/0.005 = 260Ω

Bạn có thể lựa chọn năng lượng điện trnghỉ ngơi quen thuộc hơn như 2trăng tròn Ω ,270 Ω tốt 330 Ω.

Sau lúc kết thúc xây cất phần cứng, họ hãy hợp tác tức thì vào lập trình.

*

a) Lập trình cùng với ngôn từ C

Các bạn phải setup tlỗi viện wringpi trước lúc xây dựng. cũng có thể cài đặt tlỗi viện cùng coi lý giải thiết đặt tạiWiringpi-project.

Bài 1: lập trình bật và tắt LED


#include

int main(void)

{

wiringPiSetupGpio();

pinMode(17, OUTPUT);

while(1)

digitalWrite(17, HIGH);


return 0;

1. Thêm thỏng viện Wiringpi :#include

2. Thiết lập lựa chọn mẫu mã viết số chân GPIO

wiringPiSetupGpio();

Wiringpi bao gồm 4 hình dáng lựa chọn viết số chân.

- wiringPiSetup() : thiết lập viết số Theo phong cách riêng của Pi

- wiringPiSetupGpio() : khắc số theo Broadcom GPIO – tương ứng với chân của hình 1.

- wiringPiSetupPhys() : đặt số theo chân header bên trên board.

- wiringPiSetupSys() : viết số theo system class GPIO.

Để tiện thể thực hiện. Tất cả các lịch trình họ sẽ thực hiện cách khắc số thứ hai.

3. Chọn và thiết lập đầu ra chân LED

pinMode(pin,OUTPUT);

//pinMode(pin, INPUT);

4. Bật-tắt LED (2 kiểu)

digitalWrite(17,1); //digitalWrite(17, HIGH);

digitalWrite(17,0);//digitalWrite(17, LOW);

5. Thực hiện tại build công tác trên terminal

gcc -Wall -o blinks blink.c -lwiringPi

subởi vì ./blink

Các chúng ta cũng có thể vẫn ngạc nhiên lúc kết thúc công tác nhưng led vẫn sáng sủa do tinh thần tùy chỉnh ngày nay của chương trình không biến thành đổi khác. Mình trình diễn phần này kỹ rộng làm việc mục cuối của bài bác.

Xem thêm: Đóng Tiền Bảo Hiểm Prudential Ở Đâu ? Phương Thức Thanh Toán

Bài 2 : Nhấp nháy LED

#include


int main(void)

wiringPiSetupGpio();

pinMode(17, OUTPUT);

while(1)

digitalWrite(17, HIGH);

delay(1000);

digitalWrite(17, LOW);

delay(1000);

return 0;


Bài 3 : Điều khiển LED bởi button

Chương thơm trình triển khai hưởng thụ đơn giản và dễ dàng, khi bạn độc nhất vô nhị button thì đèn đã sáng. Chuẩn bị sơ trang bị Hartware như sau.

Khi button được nhận thì tinh thần bên trên GPIO-2 vẫn xuống đến mức thấp.

Lưu ý rằng, Khi set chân GPIO làm cho input đầu vào thì tâm trạng của GPIO vẫn lơ lửng (float) lúc cao, lúc thấp không khẳng định. Để khẳng định nấc cụ thể buộc phải sử dụng điện trsinh hoạt để kéo GPIO lên đến mức cao hoặc kéo xuống rẻ. Tại đây, áp dụng điện trở vào của GPIO nhằm kéo lên tới mức cao (R=10kΩ).

*


#include

int main(void)

wiringPiSetupGpio();

pinMode(17, OUTPUT);

pinMode(2, INPUT);

pullUpDnControl (2, PUD_UP);

digitalWrite(17, 0);

while(1)

if(!digitalRead(2))

digitalWrite(17, 1);

// digitalWrite(17, !digitalRead(17));

delay(300);

return 0;

Thiết lập input đầu vào mang lại chân button

pinMode(pin, INPUT);

- Đọc bộc lộ từ button

pullUpDnControl (pin, PUD_UP);

digitalRead(pin);

Kéo năng lượng điện trở pin lên rất cao và gọi biểu lộ trường đoản cú button.

- Để triển khai ấn button nhằm tắt bật LED, các bạn hãy sửa cái code này

//digitalWrite(17, 1);

digitalWrite(17, !digitalRead(17));

Nó đang phát âm quý hiếm trên chân GPIO rồi thiết lập cấu hình quý giá đảo ngược mang đến chân GPIO đó. (mặc dù chúng ta ko mix chân chính là input).

b)Lập trình cùng với ngôn ngữ Python

Phần này chỉ dành cho rất nhiều chúng ta tất cả kiến thức và kỹ năng cơ phiên bản về Pynhỏ bé, tuy nhiên vì Pyhạn hẹp được xem là ngôn ngữ cho những người new bước đầu, rất giản đơn học tập nên các bạn cũng có thể mau lẹ xem qua Pythuôn cơ phiên bản và ban đầu xây dựng cùng với phần này.

Thỏng viện Rpi.GPIO được nhúng sẵn bên trên hệ điều hhình họa Raspbian đề xuất chúng ta cũng có thể sử dụng luôn. Tlỗi viện GPIO hỗ trợ thiết lập cấu hình input/output mang lại GPIO với PWM software.

Lưu ý : Pythanh mảnh tuân hành nghiêm ngặt khoảng cách tương ứng thân những câu lệnh. Những câu lệnh trong và một kăn năn thì buộc phải bao gồm khoảng cách bằng nhau. Nếu chúng ta copy đoạn code sau đây thì rất có thể có khả năng sẽ bị lối không nên khoảng cách (space error), chúng ta đề nghị sửa lại đến đúng.

Bài 1 : Bật tắt LED


#!/usr/bin/python3

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)

GPIO.setup(17, GPIO.OUT)

GPIO.output(17, 1)


1. Từ hình ảnh màn hình thiết yếu lựa chọn main > Programming > Python3 (IDLE).

2. Lựa chọn sản xuất new tệp tin cùng save tệp tin đó với tên “led.py”

3. Bước đầu tiên là import thỏng viện của GPIOzero

import RPi.GPIO as GPIO

4. Chọn và tùy chỉnh cấu hình output chân LED

GPIO.setmode(GPIO.BCM)

GPIO.setup(pin, GPIO.OUT)

Thỏng viện Rpi.GPIO cung ứng 2 thứ hạng đánh số GPPIO làBCM cùng Board numberbạn phải lựa chọn hình dáng để thỏng viện rất có thể gọi nhiều người đang dùng theo kiểu nào.

Thiết lập chân số 17 là output

5. Bật – tắt LED (có 3 vẻ bên ngoài thiết lập)

GPIO.output(pin, 1)

# GPIO.output(pin, True)

# GPIO.output(pin, GPIO.HIGH)

GPIO.output(pin, 0)

# GPIO.output(pin, False)

# GPIO.output(pin, GPIO.LOW)

6. Lưu file lại Ctrl+S, sau đó chạy code nhấn F5. Để kết thúc bạn nhận Ctrl + C

Cũng hệt như bài xích thiết kế với C. Trạng thái của chương trình trên GPIO vẫn tồn tại được lưu giữ.

Hình như bạn cũng có thể chạy file led.py tự terminal

1. Trước khi chạy bạn cần khai báo thêm “shebang line” - vị trí của trình biên dịch . Tại đây là python3 (phiên bạn dạng 3).

#!/usr/bin/python3

Dòng code này được đặt ở loại đầu tiên của tệp tin. Ở ví dụ trên chúng ta ko đề nghị knhì báo thêm vì ban đang áp dụng Python3 IDLE vì thế nó hiểu rằng luôn luôn trình biên dịch của khách hàng.

2. quý khách mnghỉ ngơi terminal lên tự màn hình hiển thị chính hoặc nhận Ctrl + Shift + T

3. Gõ lệnh gửi địa chỉ hiện tại của terminal tới thỏng mục led.py và thực hiện các lệnh nhằm chạy trương trình

*

Lệnh thứ hai nhằm đưa tệp tin đó thành file hoàn toàn có thể chạgiống như tệp tin tiến hành. Lệnh cuối để thực hiện công tác. Để hoàn thành các bạn cũng ấn Ctrl + C

Tuy nhiên bạn sẽ chỉ thấy công tác hiện hữu rồi tắt đi ngay. Lí bởi là chương trình pybé nhỏ chỉ đọc từ trên đầu cho tới cuối cùng hoàn thành luôn. Muốn nắn chương trình hoàn toàn có thể liên tục bạn có thể đặt vòng lặp phía bên ngoài hoặc đặt tùy chỉnh thiết lập pause() sinh sống cuối chương trình.


*


Hoặc


*


Bài 2 : Nhấp nháy LED


*


*


Nhỏng đang biết ngơi nghỉ trên, nhằm kết thúc chương trình những bạn có thể nhấnCtrl+C. Đó là keyboard interupt, công tác sẽ bị break và ngừng công tác. Nhưng nếu khách hàng để ý, tâm trạng của công tác vẫn còn đó được không thay đổi sau thời điểm break, ví dụ như lúc trước khi bị break chân GPIO được set lên đến mức cao thì nó vẫn còn đấy giữ nguyên nút cao đó sau khi bị break. Sẽ chẳng tác động gì nếu khách hàng triển khai chạy tiếp một công tác nhưng không ngại tới GPIO đó, tuy vậy sẽ có được vấn đề ví như Pi vẫn sẽ liên kết với phần cứng phía bên ngoài, tức thị nó vẫn rất có thể ảnh hưởng tác động lên phần cứng đó mà bạn không hề muốn (ví dụ đèn vẫn vẫn sáng vào lịch trình tinh chỉnh và điều khiển led).

Nếu chạy lại file bên trên một lần tiếp nữa sẽ có thông tin warning hiện ra :

"RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarning(False) to disable warnings."

Thông báo này có nghĩa là chân PGIO đó đang rất được thực hiện. Các chúng ta có thể bỏ qua mất vì chưng lịch trình vẫn đang liên tục chạy, hoặc ẩn nó đi bằng cách sử dụng một cái lệnh GPIO.setwarning(False) . Nhưng warning này để cho công tác của công ty trnghỉ ngơi phải “out of control”. Đó là điều không thể đồng ý với thiết kế viên.

Chúng ta buộc phải hạn chế bằng cách giải pchờ toàn thể GPIO (hoặc 1 phần được sử dụng) ngay sau khoản thời gian vạc hiện nay interrupt. Nhưng thứ nhất hãy cùng nâng cấp chương trình lên tới mức bắt đầu để rất có thể xây dựng chuyên nghiệp hóa hơn.

Chương thơm trình C bắt sự kiện"Ctr+C"


*


Tlỗi viện C không cung cấp hàm chuyên được dùng nhằm chúng ta có thể thực hiện, phải bạn nên giải pháp xử lý bằng tay thủ công từng GPIO giỏi PORT. Hãy chú ý phần example trong hàm bắt interrupt bên trên. Hàm này đã cxuất xắc độc lập với hàm main. Còn gần như sự kiên interrupt không giống các bạn cũng có thể bài viết liên quan tại 1 nội dung bài viết tương đối hữu íchở đây

Chương trình Pykhông lớn bắt sự kiện"CTR+C"

*

Cmùi hương trình bao gồm hiện thời sẽ được đặt bên dưới hàm “try”. Lúc chúng ta nhấnCtrl+CTức là keyboard inturrupt, chương trình vẫn tức thì chớp nhoáng nhảy lịch sự vùng code mang đến keyboard interrupt, ví như là interrupt loại khác thì công tác vẫn khiêu vũ sang vùng code đến interrupt nhiều loại khác, với sau khi thực hiện chương trình đến interrupt công tác đã nhảy tới vùng code ngừng chương trình. HàmGPIO.cleanup()hoàn toàn có thể nỗ lực các bạn cách xử trí cục bộ những port.

Xem thêm: Các Sản Phẩm Của Pepsico Việt Nam, Phân Phối Đồ Uống Pepsi

Trong vùng code xong xuôi lịch trình nhất mực nên có câu lệnh GPIO.cleanup(). Nó sẽ giúp giải phóng tất cả những GPIO đang rất được sử dụng, như thế tâm trạng cũ của chương trình sẽ tiến hành xóa khỏi hoàn toàn.


Viết tấn công giá

Họ cùng tên: Đánh giá bán của bạn: Lưu ý: Không cung cấp HTML! Bình chọn: Dngơi nghỉ Hay Nhập mã bảo vệ:
*

Tiếp tục

Chuyên mục: Kiến thức