Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Membangun Komunikasi UART antara Raspberry Pi 4 dan Papan HiFive1

Dalam lab ini Anda akan menyiapkan tautan UART yang andal antara Raspberry Pi 4 dan HiFive1, memprogram HiFive1 untuk mencerminkan data yang diterima, dan membuat skrip Python di Pi untuk meneruskan sudut pengaruh ke papan.

Bagian 0: Mengaktifkan UART pada Raspberry Pi 4

Pi 4 dilengkapi dengan empat pengontrol UART. Untuk latihan ini kami akan menggunakan uart2 dan uart3. Tambahkan baris berikut ke /boot/config.txt dan reboot:

dtoverlay=uart2,115200 dtoverlay=uart3,115200

Setelah reboot, node perangkat /dev/ttyAMA1 (uart2) dan /dev/ttyAMA2 (uart3) akan tersedia.

Sambungkan papan sebagai berikut:

Dari Pi Anda dapat mengakses saluran ini melalui /dev/ttyAMA1 (kirim ke HiFive1) dan /dev/ttyAMA2 (terima konsol HiFive1).

Bagian 1: Memprogram HiFive1

Di PC Anda (bukan Pi), unduh proyek kerangka:

$ cd ~/Documents/PlatformIO $ wget https://ittc.ku.edu/~heechul/courses/eecs388/l10-comm.tar.gz $ tar zxvf l10-comm.tar.gz 

Tambahkan folder l10-interrupt ke workspace VSCode Anda. Tujuannya adalah untuk membaca data dari UART1, mencerminkannya pada UART0, dan mencetak hasilnya ke konsol.

Berikut adalah algoritma ringkas:

while (1) { if (ser_isready(1)) { char data = ser_read(1); ser_write(0, data); ser_printline(0, "Received: "); /* sesuaikan format sesuai kebutuhan */ } } 

API serial didefinisikan dalam eecs388_lib.h/c:

void ser_setup(int devid); int ser_isready(int devid); void ser_write(int devid, char c); void ser_printline(int devid, char *str); char ser_read(int devid); int ser_readline(int devid, int n, char *str); 

Ingat bahwa devid = 0 memilih UART0 dan devid = 1 memilih UART1. Fungsi ser_isready memeriksa register IP UART untuk data tertunda:

int ser_isready(int devid) { uint32_t regval = *(volatile uint32_t *)(UART_ADDR(devid) + UART_IP); return regval; } 

Setelah mengompilasi dan memflash, beralih ke Pi dan buka dua terminal:

Ketik string apa pun di terminal pengirim; string yang sama seharusnya muncul di terminal debug, mengonfirmasi operasi yang benar.

Bagian 2: Skrip Python pada Raspberry Pi 4

Alih-alih terminal manual, tulis program Python yang:

Contoh kerangka menggunakan pySerial:

import serial import time import cv2 # atau antarmuka kamera Anda # Buka port serial ser1 = serial.Serial('/dev/ttyAMA1', 115200, timeout=1) ser2 = serial.Serial('/dev/ttyAMA2', 115200, timeout=1) while True: # Tangkap frame frame = cv2.imread('frame.jpg') # ganti dengan pembacaan kamera aktual # Jalankan inferensi DNN angle = dnn_inference(frame) # float32 # Konversi float ke representasi 4-byte angle_bytes = angle.to_bytes(4, byteorder='little', signed=True) ser1.write(angle_bytes) # Opsional: baca output debug debug = ser2.readline().decode().strip() if debug: print('HiFive1:', debug) # Kontrol waktu (misalnya, 30 fps) time.sleep(1/30) # Bersihkan ser1.close() ser2.close() 

Catatan: Konversikan float ke byte sebelum mengirim, dan gunakan urutan byte yang sama pada HiFive1 saat menafsirkan nilai.

Lampiran: Ringkasan GPIO dan Periferal Raspberry Pi 4

Pi 4 menawarkan antarmuka I²C, SPI, dan UART yang lebih luas dari model Pi asli. Gunakan perintah pinout untuk melihat semua pin:

pinout

Periferal utama:

Untuk konfigurasi detail, konsultasikan dokumentasi resmi Raspberry Pi: Panduan Config-txt.

Proses manufaktur

  1. Dasar-Dasar Komunikasi Digital: Dari Teori hingga Implementasi Praktis
  2. Memahami Aliran Data: Dari Simplex hingga Komunikasi Full-Duplex
  3. Komunikasi Data Optik: Memanfaatkan Cahaya untuk Transmisi Tinggi Bandwidth dan Bebas Gangguan
  4. Determinisme dan Toleransi Kesalahan: Prinsip Desain Esensial untuk Jaringan Kontrol Industri
  5. Menguasai Jangkauan Komunikasi Nirkabel: Bagaimana Daya, Laju Data, dan Gangguan Bentuk Konektivitas
  6. Integrasi MQTT yang Lancar: Sensor NodeMCU DHT22 dengan Raspberry Pi 3 B+ sebagai Broker
  7. Mengintegrasikan Data Sensor ke Raspberry Pi: Panduan Praktis
  8. Integrasi I2C Mulus Arduino–Raspberry Pi 2 untuk Proyek Sensor IoT
  9. Komunikasi M2M (Machine-to-Machine): Apa Itu & Mengapa Penting
  10. Penguat Optik Kompak Revolusioner Janjikan Komunikasi Ruang Angkasa dan Serat Optik Tanpa Bising