-
Notifications
You must be signed in to change notification settings - Fork 66
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
420 additions
and
371 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,36 @@ | ||
# Sensor Ultrassônico HC-SR04 | ||
|
||
Esta é uma implementação de uso do periférico [HC-SR04](https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf), o qual é um sensor ultrassônica. O funcionamento dele é descrito conforme apresentado no diagrama abaixo. Primeiro é enviado um pulso de *trigger* de 10 us. Posteriormente é recebido um sinal de *echo*, em que sua largura é proporcional à distância do sensor a um objeto específico. | ||
|
||
<p align="center"> | ||
<img width="80%" height="50%" src="Figures/DiagramaTempo.png"> | ||
</p> | ||
|
||
Para isso, gerou-se uma [máquina de estados](HCSR04.vhd), representada na figura abaixo. | ||
<p align="center"> | ||
<img width="80%" height="30%" src="Figures/FSM.png"> | ||
</p> | ||
|
||
- Esta é uma implementação de uso do periférico [HC-SR04](https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf), o qual é um sensor ultrassônica. O funcionamento dele é descrito conforme apresentado no diagrama abaixo. Primeiro é enviado um pulso de trigger de 10 us. Posteriormente é recebido um sinal de echo, em que sua largura é proporcional à distância do sensor a um objeto específico. | ||
|
||
<kbd>DIAGRAMA DE TEMPO</kbd> | ||
|
||
- Para isso, gerou-se uma máquina de estados, representada na figura abaixo. | ||
|
||
<kbd>MAQUINA DE ESTADOS</kbd> | ||
|
||
## Simulação | ||
Para a simulação, gerou-se dois arquivos de teste. Um sem o arquivo de memória [testbench2.vhd](testbench2.vhd) , onde é possível visualizar a mudança dos estados e o contador de pulsos do sinal de entrada *echo*. O outro arquivo é com o uso da arquitetura RiscV [testbench.vhd](testbench.vhd). | ||
|
||
|
||
- Para a simulação, gerou-se dois arquivos de teste. O arquivo [testbench2.vhd](/peripherals/hcsr04_ultrassonic_sensor) , sendo possível visualizar a mudança dos estados e o contador de pulsos do sinal de entrada echo. | ||
|
||
## Montagem do circuito | ||
Este sensor necessita de tensão de entrada de 5V para seu funcionamento adequado. Por isso, para a montagem do circuito, utilizou-se um conversor de nível lógico de 5V a 3V3 bidirecional, conforme apresentado abaixo. | ||
|
||
Os pinos *echo* e *trigger* são conectados aos pinos do `ARDUINO_IO 0` e `1`, respectivamente. | ||
|
||
<p align="center"> | ||
<img width="100%" height="50%" src="Figures/Montagem_Circuito.png"> | ||
</p> | ||
|
||
- Este sensor necessita de tensão de entrada de 5V para seu funcionamento adequado. Por isso, para a montagem do circuito, utilizou-se um conversor de nível lógico de 5V a 3V3 bidirecional, conforme apresentado abaixo. | ||
- Os pinos echo e trigger são conectados aos pinos do ARDUINO_IO 0 e 1, respectivamente. | ||
<kbd>MONTAGEM DO CIRCUITO<kbd> | ||
|
||
## Resultados da síntese | ||
A figura abaixo foi retirado com o auxílio de um analisador lógico. Nesta, pode ser visto o sinal de *trigger* de 10 us e o sinal de *echo* gerado pelo sensor. | ||
<p align="center"> | ||
<img width="100%" height="50%" src="Figures/Analisador.png"> | ||
</p> | ||
|
||
Para melhor visualização dos resultados na placa, foram utilizados [os displays 7 segmentos](../disp7seg/display_dec.vhd). A saída é equivalente à quantidade de ciclos de 10 us, a qual aumenta com o aumento da distância do objeto. | ||
|
||
- A figura abaixo foi retirado com o auxílio de um analisador lógico. Nesta, pode ser visto o sinal de trigger de 10 us e o sinal de echo gerado pelo sensor. | ||
<kbd>SIMULAÇÃO<kbd> | ||
|
||
## Teste Prático | ||
### Distância de 05 cm. | ||
<kbd><kbd> | ||
|
||
### Distância de 15 cm. | ||
<kbd><kbd> | ||
|
||
### Disposição Trig & Echo | ||
<kbd><kbd> | ||
|
||
## ToDo | ||
Na síntese, observou-se que após um determinado tempo, ele parava de realizar a contagem e necessitava de *reset*. Por isso, posteriormente é necessário analisar o sinal de *echo* no osciloscópio para verificar uma possível perda de descida deste sinal. | ||
- Na síntese, observou-se que após um determinado tempo, ele parava de realizar a contagem e necessitava de reset. Por isso, posteriormente é necessário analisar o sinal de echo no osciloscópio para verificar uma possível perda de descida deste sinal. Sendo assim, o *Trigger* funciona num período de 10us sendo o período de 60ms do sistema, antes disso o sistema está em *Idle*, após o período de Trigger o sistema está enable e o sinal *Echo* está disponível para captação do sinal para validação do sensor, como pode ser visto na figura a seguir o sistema. | ||
|
||
|
||
## Referências | ||
* [HC-SR04 Datasheet](https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf) | ||
|
||
|
||
|
Oops, something went wrong.