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

Komunikasi Board-to-Board

Di lab ini, Anda akan membuat saluran komunikasi berbasis UART antara papan Pi 4 dan HiFive 1.

Bagian 0:Siapkan koneksi UART (untuk TA)

Pada bagian ini, kita akan menghubungkan papan HiFive1 dan Raspberry Pi 4 melalui dua saluran UART.

(Perhatikan bahwa langkah ini akan dilakukan oleh TA.)

Pi 4 memiliki 4 UART dan kami akan menggunakan dua di antaranya (uart2 dan uart3). Tambahkan baris berikut di akhir file /boot/config.txt untuk mengaktifkan uart2 dan uart3.

dtoverlay=uart2.115200 dtoverlay=uart3.115200

Setelah me-reboot sistem, /dev/ttyAMA1 dan /dev/ttyAMA2 akan dibuat.

Hubungkan UART1 RX (pin7) HiFive ke UART2 TX Raspberry Pi 4 (pin 27). Ini adalah jalur komunikasi utama antara Pi 4 dan HiFive1. Dari Pi 4, Anda dapat mengakses saluran melalui /dev/ttyAMA1.

Untuk debugging HiFive 1, sambungkan UART0 TX (pin1) HiFive1 ke UART3 RX Pi 4 (pin 29). Dari Pi 4, dapat diakses melalui /dev/ttyAMA2.

Singkatnya, Anda akan dapat mengakses dua file berikut dari Pi 4.

/dev/ttyAMA1            Pi 4 → HiFive1:Kirim sudut kemudi ke HiFive1 (uart1).

/dev/ttyAMA2            HiFive1 → Pi 4:Menerima keluaran konsol (uart0) HiFive1

Bagian 1:Memprogram HiFive1

Di bagian lab ini, Anda akan memprogram HiFive1 untuk menerima data dari Pi 4.

Di PC Anda (bukan Pi 4), unduh kerangka proyek sebagai berikut.

$  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 dalam ruang kerja VSCode.

Tugas Anda adalah menerima data dari saluran UART1 HiFive1 dan mengirim data yang diterima ke saluran UART0. Berikut ini adalah kode semu rough kasar tugas.

sementara  (1)  {

jika  (apakah  UART1  siap?)  { data  = baca  dari  UART1. cetak  data  ke  UART0.

}

} Untuk mengimplementasikan tugas, Anda mungkin perlu menggunakan API serial yang disediakan seperti yang ditunjukkan berikut ini. Perhatikan bahwa devi adalah 0 untuk mengakses UART0, sedangkan 1 untuk mengakses UART1.

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);

Secara khusus, Anda mungkin perlu menggunakan fungsi ser_isready()  untuk memeriksa apakah saluran UART tertentu memiliki data yang tertunda untuk dibaca. Untuk lebih memahami fungsi yang dilakukan, periksa file eecs388_lib.h dan eecs388_lib.c.

int     ser_isready(int devid)

uint32_t regval =*(volatile uint32_t *)(UART_ADDR(devid) + UART_IP); kembali regval;

}

Setelah Anda selesai memprogram HiFive1, beralih ke Raspberry Pi 4 dan buka dua terminal:satu untuk mengirim data ke HiFive1, dan satu lagi untuk melihat output pesan debug dari HiFive1.

Terminal pengirim (term1)

$  screen  /dev/ttyAMA1  115200

Terminal debug (term2)

$  screen  /dev/ttyAMA2  115200

Sekarang, ketikkan string apa saja pada 'term1'.

Jika Anda memprogram HiFive 1 Anda dengan benar, Anda akan melihat pesan yang keluar dari terminal 'term2'.

Bagian 2:Memprogram Raspberry Pi 4.

Alih-alih menggunakan terminal, Anda sekarang menjalankan program python pada Pi 4 untuk berkomunikasi dengan HiFive1. Tugas Anda adalah memperluas dnn.py dari lab sebelumnya agar dapat mengirim output kemudi ke saluran serial  /dev/ttyAMA1. Berikut kode semu memberikan gambaran umum tentang modifikasi yang perlu Anda lakukan pada dnn.py:

Buka  sambungan  serial  ke  /dev/ttyAMA1  dan  /dev/ttyAMA2 Sementara  Benar:

gambar  = camera.read()

angle  = dnn_inference(image) Tulis  ‘angle’  ke  /dev/ttyAMA1 Tunggu_till_next_period()

Tutup  koneksi  serial

Untuk mencapai fungsionalitas dari atas, Anda perlu menggunakan API pySerial Python yang dapat digunakan dengan mengimpor paket serial:

impor  serial

Dengan itu, Anda harus membuat dua saluran serial terpisah, satu untuk menulis ke HiFive1 melalui

/dev/ttyAMA1 dan satu lagi untuk debugging di /dev/ttyAMA2. Perhatikan bahwa kedua saluran harus dibuka dengan baudrate 115200 bps.

ser1  = serial.Serial(…) ser2  = serial.Serial(…)

Sudut yang diterima dari DNN saat memproses frame kemudian dapat dikirim ke HiFive1 dengan menggunakan fungsi serial write():

ser1.write(…)

Namun, write() memerlukan nilai byte sedangkan sudut yang dihasilkan oleh DNN adalah nilai float32, jadi Anda harus mengonversi data sudut untuk mengirimkannya ke HiFive1. Terakhir, setelah semua frame diproses, koneksi serial dapat ditutup dengan menjalankan fungsi serial close():

ser1.close() ser2.close()

Lampiran


Pemetaan GPIO dari Pi 4.

Pinout Raspberry Pi 4

Raspberry Pi 4 tidak hanya penuh dengan fitur perangkat keras baru, tetapi di balik kap mesin ada beberapa fungsi GPIO tambahan untuk membuat hidup sedikit lebih mudah, memungkinkan pengguna untuk memperluas periferal mereka ke proyek mereka tanpa memerlukan perangkat keras tambahan Terutama ada banyak tambahan Antarmuka I2C, UART, dan SPI yang dapat digunakan di Raspberry Pi 4.

Pinout GPIO

Anda dapat menemukan daftar lengkap pin GPIO di Raspberry PI 4 itu sendiri, cukup buka baris perintah dan ketik pinout .

Di bawah ini adalah daftar semua fitur pinout tambahan Raspberry Pi 4 yang baru:

GPIO – Pin Output Input Tujuan Umum

Pin digital ini dapat diprogram untuk menerima input digital atau mengeluarkan sinyal digital. Raspberry Pi menggunakan logika 3V3 pada setiap pin GPIO, yang berarti bahwa 3V3 adalah digital 1 (ON) dan 0V adalah digital 0 (OFF). Oleh karena itu Anda dapat menghubungkan dan komponen digital ke Raspberry Pi dan memberikan sinyal 3V3 (ON) padanya atau menerima sinyal digital 3V3 dengan ketentuan arus tidak lebih dari 16mA.

I2C – Sirkuit Inter-Terintegrasi

Ini adalah jenis komunikasi antar perangkat yang cukup umum, ia bekerja dengan memiliki master dan slave. Master dalam hal ini adalah Raspberry Pi itu sendiri dan perangkat slave adalah periferal perangkat keras yang biasanya memperluas fungsionalitas proyek Anda. Apa yang hebat tentang I2C adalah Anda dapat menghubungkan ratusan perangkat hingga master yang sama menggunakan antarmuka dua kabel yang sama, asalkan setiap perangkat memiliki alamat I2C yang berbeda. Anda dapat mengakses antarmuka dan melihat perangkat mana yang terhubung dengan menggunakan perintah linux berikut:

sudo i2cdetect -y 1

Di mana "1" adalah antarmuka utama. Raspberry Pi 4 memiliki total 6.

SPI – Antarmuka Periferal Serial

SPI adalah jenis lain dari protokol komunikasi untuk berkomunikasi antar perangkat. Ini juga menggunakan pengaturan master/slave tetapi terutama digunakan dalam jarak pendek antara pengontrol utama (master) dan perangkat periferal (slave) seperti sensor. SPI biasanya menggunakan 3-kabel untuk berkomunikasi dengan Raspberry Pi; SCLK, MOSI dan MISO. Sebelum menggunakan SPI, Anda harus mengaktifkannya di dalam menu konfigurasi Raspberry Pi:

UART – Penerima/Pemancar Asinkron Universal

Tidak seperti I2c dan SPI, UART bukanlah sebuah protokol. UART (Serial) adalah sirkuit fisik yang dirancang untuk mengirim dan menerima data serial. UART tidak memerlukan sinyal clock, oleh karena itu mengapa UART tidak sinkron. Ini meminimalkan kabel yang diperlukan untuk mengirim dan menerima data tetapi juga memerlukan beberapa data tambahan untuk dikirim dengan paket untuk pengecekan kesalahan seperti bit mulai dan bit berhenti. Biasanya berkaitan dengan Raspberry Pi UART digunakan dalam pengaturan tanpa kepala, yang berarti tidak ada GUI atau antarmuka lainnya. Sebagai gantinya, Anda dapat menghubungkan Raspberry Pi ke Desktop/Laptop atau perangkat lain dan berkomunikasi dengannya melalui UART menggunakan antarmuka baris perintah. Metode ini ditujukan untuk pengguna yang lebih mahir karena memerlukan sedikit lebih banyak pengetahuan tentang cara menyiapkannya.

Aplikasi lain, yang khas di antara pengguna Raspberry Pi adalah menghubungkan papan Arduino UNO ke Raspberry Pi, karena Pi memiliki fungsionalitas analog yang terbatas.


Proses manufaktur

  1. Pengantar Komunikasi Digital
  2. Aliran Data
  3. Komunikasi Data Optik
  4. Pertimbangan praktis - Komunikasi Digital
  5. Jangkauan Komunikasi Nirkabel
  6. Komunikasi MQTT Antara NodeMCU dan Raspberry Pi 3 B+
  7. Integrasi Data Sensor dengan Mikroprosesor Raspberry Pi
  8. Komunikasi Arduino I2C dengan Raspi 2 WIOT
  9. Komunikasi M2M atau Mesin ke Mesin, apa itu?
  10. Amplifier Unik Dapat Mengubah Komunikasi Optik