本センサはST’s
VL53L0Xレザー距離測定システムを搭載されるキャリア/ブレイクアウト基板で、最大測定距離は 2 mに達します。VL53L0Xは赤外線パルスの飛行時間測定原理を使って、測定のターゲットの表面や色の影響せず、測距機能を実現しますて、測定値はデジタル I²Cインターフェースで読み込めます。本基板にの2.8Vリニアレギュレータとレベルシフタが入力電圧2.6V-5.5Vで作動するのは可能になります。0.1のピン間隔もブレッドボードや0.1のパーフボードに使用しやすくなります。
VL53L0X飛行時間型「ToF」距離測定センサーはVL53L0Xに基づいて、より高速、高精度、高測定距離のセンサーです。
VL53L0Xは新世代の飛行時間距離測定モジュールです。従来の伝統技術と違い、現在市場で最も小さいToF測距センサで、ターゲットの反射率を問わず、精確で距離を測定でき、最大測定値が2mに達するため、新たな測距性能の基準を設定して、また新たなアプリケーションの可能性を拓きます。
VL53L0XはSPAD(Single Photon Avalanche Diode単一光子アバランシェ・ダイオード)検出器のアレイを集積し、ST’s二世代のFlightSenseTM特許技術を採用しています。
VL53L0Xの5.6×10-7m VCSEL (VerticalCavity Surface-Emitting Laser垂直共振器面発光レーザー)はアイセーフ・クラス1のため人眼にとって完全に不可視の光線で、内部の光学干渉フィルと合わせて、より遠い距離、よりよい環境光イミュニティや光学クロストークが実現できます。
ハードウェアの概要
まず、処理している VL53L1X sensor の特徴を見ましょう。それでボードの特性が把握できます。
特性 | 範囲 |
---|---|
動作電圧 | 2.6V-3.5V |
消費電力 | 20mW @10Hz |
測定範囲 | ~0.04m 4m |
インターフェースタイプ | I²C (TWI) |
光源 | クラス 1、5.6×10-7 VCSEL |
I2C アドレス | 0x29 |
視野角度 | 15° – 27° |
読み取り率 | 50Hz |
PIN | 説明 |
---|---|
VDD | 安定化2.8Vの電源を出力し、おおよそ150mAで外部コンポーネントに給電できます(もし内部のレギュレータをバイパスしたい場合、本ピンを2.8V入力端子として使って、VINを断路にしてください)。 |
VIN | 2.6V-5.5Vの主電源連続です。SCLとSDAのレベルシフタはI2Cラインをこのレベルに引き上げます。 |
GND | 電源の接地(0V)連続に充てます。I2C制御装置も必ず本ボードと同じ接地端子を共用してください。 |
SDA | レベルシフトI2Cデータライン、Hi―VIN LOW-0V。 |
SCL | レベルシフトI2Cクロックライン、Hi―VIN LOW-0V。 |
XSHUT | アクティブローシャットの入力端子。ボードではVDD と繋がって、デフォルトでセンサーを作動させます。端子をLOWにさせたらセンサーがハードウェアスタンバイモードになります。端子はレベルシフタ機能がありません。 |
GPIO1 | コーディングで出力を中断することが可能で、このピンはレベルシフトをしません。 |
上記の回路図で基板に採用したコンポがVL53L0がさらに使いやすくなるのが分かりました。基板が2.6 V ー5.5 Vで供給できレベルシフタもVINと同じロジックでI²Cと通信できます。回路図はダウンロードできます downloadable PDF (110k pdf)。
入門課程では、私たちは一緒にVL53L0Xセンサとarduinoの連続方法を勉強しましょう。VL53L0XはI2Cセンサのため、多数のマイクロコントローラと同じ二つのデータ/クロックラインを使えて、アドレス衝突がなければ、他のセンサとピンもシェアできます。VL53L0Xは飛行時間(ToF)距離センサのため、他のセンサと違って、小さい不可視レザー光源とマッチングセンサを内蔵しています。では、早速始めましょう。
下記のように
センサーデータを読み取るならAdafruit_VL53L0XLibraryをインストール必要があります。最も簡単な方法はArduino IDEでManageLibraries…を開きます。
Adafruit VL53L0X を検索して Install/インストールをクリックします。
下記のように File->Examples->Adafruit_VL53L0X->vl53l0x を開いてからセンサーと連続しているArduinoにアップロードします。
そう !それから115200の速度でターミナルを開いて、テストを始めましょう。
手を上下に動いてセンサーのデータを読み取ります。何も検知されない場合に、読み取り値オーバーと表示することを注意してください。
I2Cで個々のデバイスは1つのアドレスがあるしかありません。各I2Cデバイスは唯一のアドレスがあることを確報してください。VL53L0Xのデフォルトアドレスは 0x29 ですが、ソフトウェアではこれを変更することもできます。
新しいアドレスを設置する方法が二つあります。1つは初期化中にlox.begin()をlox.begin(0x30)に変更させていきます。それに
いつでもlox.begin(0x30)を設定するのもよろしいです。
アドレスの再設定は簡単ですが、各センサーをシャットダウン状態にしなければなりません。各センサーのシャットダウンは XSHUT
ピンとマイクロコントローラーピンを連続することで実現できたから、 上記のような擬似コードが実行できます。
注意:アドレスは常設ではなく、電源を入れるたびに上記の操作を繰り返す必要があります。
The real time traffic light controller is a complex piece of equipment which consists of power cabinet, main controller or processor, relays, control panel with switches or keys, communication ports etc.
In this lesson, we will go over how to build a traffic light circuit with an arduino microcontroller.
The use of personal vehicles is very common now a days and a result, the number of vehicles on the roads are exponentially increasing. Roads without any supervision or guidance can lead in to traffic congestions and accidents.
Traffic Lights or Traffic Signals are signalling devices that are used to control the flow of traffic. Generally, they are positioned at junctions, intersections, ‘X’ roads, pedestrian crossings etc. and alternate the priority of who has to wait and who has to go.
The traffic lights will provide instructions to the users (drivers and pedestrians) by displaying lights of standard color. The three colors used in traffic lights are Red, Yellow and Green.
In this project, an Arduino based Traffic Light Controller system is designed. It is a simple implementation of traffic lights system but can be extended to a real time system with programmable timings, pedestrian lighting etc. There is a green LED, which represents the green light. A yellow LED, which represents the yellow light. And a red LED, which represents the red light.
We will show all the hardware connections and the software needed to make this circuit work.
Build the circuit as below:
In this experiment, we use a 7-segment display to count down and set two groups of traffic lights to represent two directions, let’s say, north-south (TF1) and east-west (TF2), as shown in the above picture.
After above operations are completed, connect the Arduino board to your computer using the USB cable. The green power LED (labelled PWR) should go on.Open the Graphical Programming software Mixly and follow the next operations:
Setup baud rate and define datArray[] to store the to-be-display number.
Set a function State 1(), to light up a red LED(Pin 5).
Display the number from 9 to 1 on the 7-segment Display, and light up the Green2 LED (Pin 4), set T_CP( Pin 12) Low and hold low for transmitting, then pull it to save the data.
Turn off the Green LED (Pin 4), and display the number 3 to 1 on the display, then turn on Yellow 2 LED (Pin 3). Next, dim LED Yellow 2 and Red 1( Pin 5).
Next comes the State2() The blocks of State2() is just similar and you can study by yourself.
Execute function State 1() and State2().
A few seconds after the upload finishes, you can see what is similar to the traffic light now. First, the 7-segment display counts down from 9s, and the red light in the TF1 and the green one in the TF2 light up. Then it counts down from 3, and the green LED in the TF2 goes out when the yellow lights up, with the TF1 red light still on. 3s later, the 7-segment counts down from 9s again. Meanwhile, the red light in the TF2 and the green in the TF1 light up. After 9s, it counts down from 3s, when the yellow light in the TF1 lights up and the red in the TF2 keeps on. And this repeats over and over again, as a traffic light would.
Although it is not the ideal implementation for real life scenarios, it gives an idea of the process behind the traffic light control system.
Note: The project implemented here doesn’t include the pedestrian crossing and pedestrian signaling in to consideration.
Once you know how the software operates, you can change the values to make the LEDs be on or off for any period of time. For example, instead of being on for 9 seconds, you can easily change it to 15 seconds or 30 seconds. You could make the yellow LED be on just for 1 second or 2 seconds.