Sasakyan ng Detektor ng Bilis ng Sasakyan para sa Pulisya ng Trapiko

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa post na ito ay magtatayo kami ng isang circuit na maaaring sukatin ang bilis ng anumang sasakyan sa mga kalsada at highway. Ang iminungkahing circuit ay pinananatiling nakatigil sa isang lugar kung saan hinihinalang sobrang bilis ng mga sasakyan. Kung ang anumang sasakyan ay lampas sa limitasyon sa bilis, agad na nagbabala ang circuit. Hahanapin namin ang code, circuit diagram at lohika kung paano sinusukat ang bilis ng sasakyan.

Layunin

Sa paglipas ng pagmamaneho ay nagdudulot ng 75% mga aksidente sa kalsada ayon sa hindi sinasadyang ulat ng kamatayan 2015 sa India, napakalaking bilang iyon. Karamihan sa mga pulisya sa trapiko ay sinusubukan na makulong ang mga motorista na mapanganib na magmaneho ng kanilang sasakyan na lampas sa limitasyon sa bilis ng lungsod.



Hindi sa tuwing maaaring mapahinto ng isang pulisya sa trapiko ang isang sobrang bilis ng sasakyan at singilin sila. Kaya't ang isang aparato na tinatawag na speed camera ay naka-install kung saan ang mga motorista ay pinaghihinalaan na higit sa bilis tulad ng madalas na mga lugar na madaling kapitan ng aksidente, mga interseksyon atbp.

Kami ay magtatayo ng isang bagay na katulad ng bilis ng camera, ngunit sa isang pinasimple na paraan, na mai-install sa loob ng isang campus tulad ng mga parke sa paaralan, kolehiyo o IT o bilang isang kasiya-siyang proyekto.



Ang iminungkahing proyekto ay binubuo ng 16 x 2 LCD display upang maipakita ang bilis ng bawat sasakyan na dumadaan sa dalawang laser beams na nakalagay sa pagitan ng eksaktong 10 metro upang sukatin ang bilis ng sasakyan habang pinaputol ang mga laser beam.

Ang isang buzzer ay beep kapag ang isang sasakyan ay naipasa na nagpapahiwatig na ang isang sasakyan ay napansin at ang bilis ng bawat sasakyan ay ipapakita sa LCD display. Kapag ang isang sasakyan ay lampas sa limitasyon ng bilis ang buzzer ay patuloy na beep at ang bilis ng sasakyan ay ipapakita sa display.

TANDAAN: Ang bilis ng sasakyan ay ipapakita sa LCD anuman ang sasakyan ay papunta sa bilis o sa ilalim ng bilis.

Ngayon tingnan natin ang lohika sa likod ng circuit para sa bilis ng pagsukat.

Alam nating lahat ang isang simpleng pormula na tinatawag na formula ng bilis - distansya - oras.
Bilis = Distansya / Oras.

• Bilis ng metro bawat segundo,
• Distansya sa metro,
• Oras sa segundo.

Upang malaman ang bilis, kailangan nating malaman ang distansya na sabihin na 'x' na naglakbay sa pamamagitan ng isang sasakyan at oras na ginugol upang masakop ang distansya na 'x'.

Upang magawa ito, nagse-set up kami ng dalawang mga laser beam at dalawang LDR na may 10 metro ang distansya sa sumusunod na paraan:

sukat ng bilis ng sasakyan sa trapiko

Alam namin na ang distansya ay 10 metro na naayos, ngayon kailangan nating malaman ang oras sa equation.

Ang oras ay kakalkulahin ng Arduino, kapag ang sasakyan ay makagambala sa 'pagsisimula ng laser', nagsisimula ang timer at kapag ang sasakyan ay makagambala sa 'end laser' huminto ang timer at ilapat ang mga halaga sa equation na Arduino ay makakahanap ng bilis ng sasakyan.

Mangyaring tandaan na ang bilis ng sasakyan ay makikita lamang sa isang direksyon hal. Simulan ang laser upang ihinto ang laser, upang makita ang sasakyan sa ibang direksyon ang isa pang parehong pag-setup ay dapat na ilagay sa kabaligtaran ng direksyon. Kaya, mainam ito para sa mga lugar tulad ng paaralan, collage atbp kung saan mayroon silang mga IN at OUT gate.

Tingnan natin ang diagram ng eskematiko:

Koneksyon sa pagitan ng Arduino at display:

LCD display bilis ng sasakyan

Mayroong sa itaas ng circuit ay nagpapaliwanag sa sarili at ikonekta lamang ang mga kable ayon sa circuit. Ayusin ang 10K potentiometer para sa pag-aayos ng pagkakaiba sa display.

Karagdagang Mga Detalye ng Mga Kable:

Ang bilis ng distansya ng pagsukat ng distansya ng sasakyan ay naka-set up

Ang circuit sa itaas ay binubuo ng Arduino, 4 push button, dalawang 10K pull down resistors (huwag baguhin ang halaga ng resistors), dalawang LDR at isang buzzer. Ang pag-andar ng 4 na mga pindutan ng push ay ipapaliwanag sa ilang sandali. Tingnan natin ngayon kung paano i-mount nang maayos ang LDR.

LDR mouting para sa pagtuklas ng bilis ng sasakyan

Dapat na sakop ako ng LDR mula sa sikat ng araw nang maayos, ang laser beam lamang ang dapat na hampasin ang LDR. Tiyaking ang iyong laser module ay sapat na malakas upang gumana sa isang maliwanag na sikat ng araw.
Maaari kang gumamit ng isang pipa ng PVC para sa layunin sa itaas at pinturahan ito ng itim sa loob ng tubo huwag kalimutang takpan ang harap na bahagi, gamitin ang iyong pagkamalikhain upang magawa ito.

Code ng Programa:

// ----------- Developed by R.GIRISH ---------//
#include
#include
const int rs = 7
const int en = 6
const int d4 = 5
const int d5 = 4
const int d6 = 3
const int d7 = 2
LiquidCrystal lcd(rs, en, d4, d5, d6, d7)
const int up = A0
const int down = A1
const int Set = A2
const int change = A3
const int start = 8
const int End = 9
const int buzzer = 10
const float km_h = 3.6
int distance = 10 // In meters.
int variable = 0
int count = 0
int address = 0
int value = 100
int speed_address = 1
int speed_value = 0
int i = 0
float ms = 0
float Seconds = 0
float Speed = 0
boolean buzz = false
boolean laser = false
boolean x = false
boolean y = false
void setup()
{
pinMode(start, INPUT)
pinMode(End, INPUT)
pinMode(up, INPUT)
pinMode(down, INPUT)
pinMode(Set, INPUT)
pinMode(change, INPUT)
pinMode(buzzer, OUTPUT)
digitalWrite(change, HIGH)
digitalWrite(up, HIGH)
digitalWrite(down, HIGH)
digitalWrite(Set, HIGH)
digitalWrite(buzzer, LOW)
lcd.begin(16, 2)
lcd.clear()
lcd.setCursor(0, 0)
lcd.print(F(' Vehicle Speed'))
lcd.setCursor(0, 1)
lcd.print(F(' detector'))
delay(1500)
if (EEPROM.read(address) != value)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Set Speed Limit')
lcd.setCursor(0, 1)
lcd.print('km/h:')
lcd.setCursor(6, 1)
lcd.print(count)
while (x == false)
{
if (digitalRead(up) == LOW)
{
lcd.setCursor(6, 1)
count = count + 1
lcd.print(count)
delay(200)
}
if (digitalRead(down) == LOW)
{
lcd.setCursor(6, 1)
count = count - 1
lcd.print(count)
delay(200)
}
if (digitalRead(Set) == LOW)
{
speed_value = count
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Speed Limit is')
lcd.setCursor(0, 1)
lcd.print('set to ')
lcd.print(speed_value)
lcd.print(' km/h')
EEPROM.write(speed_address, speed_value)
delay(2000)
x = true
}
}
EEPROM.write(address, value)
}
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Testing Laser')
lcd.setCursor(0, 1)
lcd.print('Alignment....')
delay(1500)
while (laser == false)
{
if (digitalRead(start) == HIGH && digitalRead(End) == HIGH)
{
laser = true
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Laser Alignment')
lcd.setCursor(0, 1)
lcd.print('Status: OK')
delay(1500)
}
while (digitalRead(start) == LOW && digitalRead(End) == LOW)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Both Lasers are')
lcd.setCursor(0, 1)
lcd.print('not Aligned')
delay(1000)
}
while (digitalRead(start) == LOW)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Start Laser not')
lcd.setCursor(0, 1)
lcd.print('Aligned')
delay(1000)
}
while (digitalRead(End) == LOW)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('End Laser not')
lcd.setCursor(0, 1)
lcd.print('Aligned')
delay(1000)
}
}
lcd.clear()
}
void loop()
{
if (digitalRead(change) == LOW)
{
change_limit()
}
if (digitalRead(start) == LOW)
{
variable = 1
buzz = true
while (variable == 1)
{
ms = ms + 1
delay(1)
if (digitalRead(End) == LOW)
{
variable = 0
}
}
Seconds = ms / 1000
ms = 0
}
if (Speed {
y = true
}
Speed = distance / Seconds
Speed = Speed * km_h
if (isinf(Speed))
{
lcd.setCursor(0, 0)
lcd.print('Speed:0.00')
lcd.print(' km/h ')
}
else
{
lcd.setCursor(0, 0)
lcd.print('Speed:')
lcd.print(Speed)
lcd.print('km/h ')
lcd.setCursor(0, 1)
lcd.print(' ')
if (buzz == true)
{
buzz = false
digitalWrite(buzzer, HIGH)
delay(100)
digitalWrite(buzzer, LOW)
}
if (Speed > EEPROM.read(speed_address))
{
lcd.setCursor(0, 0)
lcd.print('Speed:')
lcd.print(Speed)
lcd.print('km/h ')
lcd.setCursor(0, 1)
lcd.print('Overspeed Alert!')
if (y == true)
{
y = false
for (i = 0 i <45 i++)
{
digitalWrite(buzzer, HIGH)
delay(50)
digitalWrite(buzzer, LOW)
delay(50)
}
}
}
}
}
void change_limit()
{
x = false
count = EEPROM.read(speed_address)
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Set Speed Limit')
lcd.setCursor(0, 1)
lcd.print('km/h:')
lcd.setCursor(6, 1)
lcd.print(count)
while (x == false)
{
if (digitalRead(up) == LOW)
{
lcd.setCursor(6, 1)
count = count + 1
lcd.print(count)
delay(200)
}
if (digitalRead(down) == LOW)
{
lcd.setCursor(6, 1)
count = count - 1
lcd.print(count)
delay(200)
}
if (digitalRead(Set) == LOW)
{
speed_value = count
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Speed Limit is')
lcd.setCursor(0, 1)
lcd.print('set to ')
lcd.print(speed_value)
lcd.print(' km/h')
EEPROM.write(speed_address, speed_value)
delay(2000)
x = true
lcd.clear()
}
}
}
// ----------- Developed by R.GIRISH ---------//

Tingnan natin ngayon kung paano patakbuhin ang circuit na ito:

• Kumpletuhin ang iyong circuit at i-upload ang code.
• Ang distansya sa pagitan ng dalawang mga laser / LDR ay dapat na eksaktong 10 metro, walang mas mababa o wala nang iba, Kung hindi man ay makakalkula ang pagkalkula (ipinakita sa unang diagram).
• Ang distansya sa pagitan ng laser at LDR maaari mong pipiliin at pangyayari.
• Susuriin ng circuit ang laser misalignment sa LDR, kung mayroon man, mangyaring itama ito alinsunod sa impormasyong ipinakita sa LCD.
• Sa una hilingin sa iyo ng circuit na magpasok ng isang halaga ng limitasyon ng bilis sa km / h lampas kung saan ang mga alerto ng circuit, sa pamamagitan ng pagpindot sa itaas (S1) at pababa (S2) maaari mong baguhin ang numero sa display at pindutin ang set (S3), ito ang halaga ay mai-save.
• Upang baguhin ang limitasyong ito sa bilis, pindutin ang pindutan ng S4 at maaari kang magtakda ng isang bagong limitasyon sa bilis.
• Ngayon kumuha ng isang motor bike drive sa 30 km / h at makagambala sa mga laser beam, dapat ipakita sa iyo ng circuit ang isang bilang na malapit sa 30 km / h.
• Tapos ka na at handa na ang iyong circuit upang maihatid ang kaligtasan ng iyong campus.

Prototype ng may-akda:

prototype ng bilis ng pagtuklas ng bilis ng sasakyan

Kung mayroong anumang mga katanungan tungkol sa trapiko na ito ng detektor ng bilis ng sasakyan ng pulisya, mangyaring magtanong sa seksyon ng komento, maaari kang makakuha ng isang mabilis na tugon.




Nakaraan: PIR Sensor Datasheet, Mga Detalye ng Pinout, Gumagawa Susunod: Remote Control Tester Circuit