Proses manufaktur
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
| ||||
|
Beberapa hal tentang LiDAR
LIDAR (Light Detection and Ranging) adalah sistem penginderaan jauh optik yang dapat mengukur jarak suatu target dengan menyinarinya dengan cahaya. Teknologi LIDAR digunakan dalam Robotika untuk persepsi lingkungan serta klasifikasi objek. Kemampuan teknologi LIDAR untuk menyediakan peta ketinggian 2D dari medan, jarak presisi tinggi ke tanah, dan kecepatan pendekatan dapat memungkinkan pendaratan yang aman dari kendaraan robot dan berawak dengan tingkat presisi yang tinggi.
LIDAR terdiri dari pemancar yang menerangi target dengan sinar laser, dan penerima yang mampu mendeteksi komponen cahaya yang pada dasarnya koaksial dengan sinar yang ditransmisikan. Sensor penerima menghitung jarak, berdasarkan waktu yang dibutuhkan cahaya untuk mencapai target dan kembali. Mekanisme mekanis dengan cermin menyapu berkas cahaya untuk menutupi pemandangan yang diperlukan dalam bidang atau bahkan dalam tiga dimensi, menggunakan cermin anggukan yang berputar.
Salah satu cara untuk mengukur waktu penerbangan untuk berkas cahaya adalah dengan menggunakan laser berdenyut dan kemudian mengukur waktu yang telah berlalu secara langsung. Elektronik yang mampu menyelesaikan picoseconds diperlukan dalam perangkat semacam itu dan karena itu harganya sangat mahal. Metode lain adalah mengukur pergeseran fasa cahaya yang dipantulkan.
Laser inframerah collimated digunakan untuk pengukuran pergeseran fasa. Untuk permukaan, memiliki kekasaran lebih besar dari panjang gelombang cahaya datang, refleksi difus akan terjadi. Komponen sinar infra merah akan kembali hampir sejajar dengan pancaran sinar benda.
Sensor mengukur pergeseran fasa antara sinyal yang ditransmisikan dan dipantulkan. Gambar menunjukkan bagaimana teknik ini dapat digunakan untuk mengukur jarak. Panjang gelombang sinyal modulasi mematuhi persamaan:
c =f
di mana c adalah kecepatan cahaya dan f frekuensi modulasi dan panjang gelombang modulasi yang diketahui.
Jarak total D' yang ditempuh oleh cahaya yang dipancarkan adalah:
D' =B + 2A =B + (θ * ) / 2π
dimana A adalah jarak yang diukur. B adalah jarak dari unit pengukuran fase. Jarak yang diperlukan D, antara beam splitter dan target, oleh karena itu diberikan oleh
D =* / 4π
di mana adalah perbedaan fasa yang diukur secara elektronik antara berkas cahaya yang ditransmisikan dan dipantulkan.
Dapat ditunjukkan bahwa rentang berbanding terbalik dengan kuadrat amplitudo sinyal yang diterima, yang secara langsung memengaruhi akurasi sensor.
(disalin dari http://home.roboticlab.eu/en/examples/sensor/lidar).
Sebagai bagian dari proyek tahun terakhir saya, saya memerlukan peta 2D sekitar untuk kendaraan otonom saya, jadi saya memilih LiDAR karena sangat cepat dan akurat. Tidak seperti sonar yang memantulkan gelombang ultrasonik, 'kerucut' penginderaan sangat sempit.
VL6180x atau Vl53l0x adalah sensor optik dari STMicroelectronics .VL53L0x jauh lebih presisi dan tidak memiliki masalah linieritas atau 'pencitraan ganda' di mana Anda tidak dapat mengetahui apakah suatu objek sangat jauh atau sangat dekat.
Sensor waktu terbang ini sebenarnya digunakan di ponsel kita untuk mengatur fokus kamera.
Diagram Sirkuit
Instal perpustakaan Adafruit
Kode Arduino
#include #include "Adafruit_VL6180X.h"#include Adafruit_VL6180X vl =Adafruit_VL6180X();Servo myservo;float pos =0;const float Pi =3.14159; void setup() { myservo.attach (9); Serial.begin(115200); while (!Serial) { delay(1); }jika (! vl.begin()) { while (1); } }void loop() { untuk (pos =0; pos <=180; pos +=.5) { myservo.write(pos); rentang uint8_t =vl.readRange(); Serial.println(String(rentang)+"p"+String(pos*Pi/180)+"p"+String(pos)); penundaan (10); } /*untuk (pos =180; pos>=0; pos -=.5) { myservo.write(pos); rentang uint8_t =vl.readRange(); { Serial.println(String(rentang)+"p"+String(pos*Pi/180)+"p"+String(pos)); delay(10);} }*/ myservo.write(0); delay(2000);}
Memproses kode (rujuk proyek radar lain jika Anda membutuhkan antarmuka radar yang baik) ubah nomor port Arduino (misalnya "COM 3") sebelum menjalankan.
import processing.serial.*;Serial myPort;String val;int range,i=0;float pos;void setup(){ size(550.500); String portName ="COMx";//x=nomor port arduino Anda myPort =Serial baru(ini, namaport, 115200); background(255);}void draw(){ if ( myPort.available()> 0) { val =myPort.readStringUntil('\n'); if(val!=null) { String[] nums=split(val,"p");//membagi data yang diterima diurutkan dengan 'p' if(nums.length==3) { range=int(nums[0 ]); //string ke konversi integer pos=float(nums[1]); i=int(angka[2]); if(i==180){ latar belakang(255); } } }}translate(25,-50);line(250.500.250-2*(range*cos(pos)),500-2*(range*sin(pos))); }
Kecepatan sensor dibatasi hingga 10Hz dan respons servo buruk pada kecepatan tinggi. Jika ada yang berencana membuat LIDAR kecepatan tinggi gunakan motor stepper atau motor DC dengan sistem umpan balik. gunakan slip ring untuk rotasi terus menerus (https://www.adafruit.com/product/736).
Setiap pertanyaan, saran dipersilahkan!
#include#include "Adafruit_VL6180X.h"#include Adafruit_VL6180X vl =Adafruit_VL6180X();Servo myservo;float pos =0;const float Pi =3.14159; void setup() { myservo.attach (9); Serial.begin(115200); while (!Serial) { delay(1); } if (! vl.begin()) { while (1); } }void loop() { untuk (pos =0; pos <=180; pos +=.5) { myservo.write(pos); rentang uint8_t =vl.readRange(); Serial.println(String(rentang)+"p"+String(pos*Pi/180)+"p"+String(pos)); penundaan (10); } /*untuk (pos =180; pos>=0; pos -=.5) { myservo.write(pos); rentang uint8_t =vl.readRange(); { Serial.println(String(rentang)+"p"+String(pos*Pi/180)+"p"+String(pos)); penundaan (10); } }*/ myservo.write(0); delay(1000);}
import processing.serial.*;Serial myPort;String val;int range,i=0;float pos;void setup(){ size(550.500); frameRate(36); String portName ="COMx";//x=nomor port arduino Anda myPort =Serial baru(ini, portName, 115200); latar belakang (255); }void draw(){ if ( myPort.available()> 0) { val =myPort.readStringUntil('\n'); if(val!=null) { String[] nums=split(val,"p");//membagi data yang diterima diurutkan dengan 'p' if(nums.length==3) { range=int(nums[0 ]); //string ke konversi integer pos=float(nums[1]); i=int(angka[2]); if(i==180){ latar belakang(255); } } } }translate(25,-50);line(250.500.250-2*(range*cos(pos)),500-2*(range*sin(pos))); }
Proses manufaktur
Komponen dan persediaan Arduino UNO × 1 LED (generik) × 1 Kabel jumper (generik) × 4 Resistor 1 Mega Ohm × 1 Aluminium foil atau Koin × 1 Aplikasi dan layanan online Arduino IDE Tentang proyek ini Pada project ini saya me
Komponen dan persediaan Arduino UNO Arduino Nano juga dapat digunakan. Arduino Mega mungkin berguna untuk mendorong lebih banyak piksel LED. × 1 Raspberry Pi 3 Model B × 1 strip NeoPixel Strip LED WS8212 apa pun dapat digunakan. × 1 Aplikasi dan layanan online
Komponen dan persediaan Arduino UNO × 1 PHPoC Shield 2 untuk Arduino × 1 Papan Relai 4-port PHPoC × 1 Bola lampu × 1 Tentang proyek ini Mengontrol melalui web telah menjadi norma akhir-akhir ini. Dalam proyek sederhana ini, saya akan menunjukkan ca
Komponen dan persediaan Arduino UNO Semua jenis Uno dapat digunakan. Saya memiliki Geekcreit Uno yang berfungsi dengan baik. × 1 Breadboard (generik) × 1 Kabel jumper (generik) Diperlukan Pria/Pria × 1 LED (generik) Anda membutuhkan lampu merah, hijau, dan biru