Open matde-je opened 2 days ago
[LM393 Velocity Sensor for Jetson Nano in forum] (https://forums.developer.nvidia.com/t/lm393-velocity-sensor-for-jetson-nano/84279) https://forums.developer.nvidia.com/t/lm393-velocity-sensor-for-jetson-nano/84279
Este guia detalha como conectar e configurar o sensor SEN-Speed LM393 com o Jetson Nano para medir a velocidade de rotação utilizando o disco encoder.
O sensor LM393 detecta a rotação do disco encoder e envia pulsos digitais correspondentes ao número de interrupções ópticas. Esses pulsos podem ser capturados pelo Jetson Nano para calcular a velocidade em pulsos por segundo ou RPM (rotações por minuto).
Conecte os pinos do sensor LM393 ao cabeçalho GPIO J41 do Jetson Nano conforme abaixo:
Pino do Sensor | Pino no Jetson Nano (J41) | Descrição |
---|---|---|
VCC | 5V (pino 2 ou 4) | Alimentação do sensor |
GND | GND (pino 6, 9, etc.) | Terra |
DO | GPIO (ex.: pino 18 / GPIO 12) | Saída digital do sensor |
Nota: Certifique-se de que o sensor esteja alimentado corretamente (geralmente 5V). Verifique o número de ranhuras no disco encoder para ajustar os cálculos de RPM, se necessário.
No Jetson Nano, use a biblioteca Jetson.GPIO para acessar os GPIOs:
pip3 install Jetson.GPIO
Conecte os fios do sensor ao Jetson Nano conforme descrito no esquema. Execute o script Python no Jetson Nano:
python3 sensor_speed.py
Gire o disco encoder e observe os valores de velocidade sendo exibidos no terminal.
import Jetson.GPIO as GPIO
import time
# Configurações do GPIO
SENSOR_PIN = 12 # GPIO 12 (pino 18 no cabeçalho J41)
GPIO.setmode(GPIO.BOARD) # Usa o número físico dos pinos
GPIO.setup(SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Configura o pino como entrada
# Variáveis para cálculo de velocidade
pulse_count = 0
start_time = time.time()
# Callback para contar os pulsos
def pulse_callback(channel):
global pulse_count
pulse_count += 1
# Configura a interrupção para capturar bordas de subida
GPIO.add_event_detect(SENSOR_PIN, GPIO.RISING, callback=pulse_callback)
try:
while True:
time.sleep(1) # Aguarda 1 segundo
elapsed_time = time.time() - start_time
speed = pulse_count / elapsed_time # Pulsos por segundo
print(f"Velocidade: {speed:.2f} pulsos/segundo")
# Reinicia as variáveis
pulse_count = 0
start_time = time.time()
except KeyboardInterrupt:
print("Encerrando o programa...")
finally:
GPIO.cleanup() # Limpa as configurações do GPIO
https://jetsonhacks.com/nvidia-jetson-nano-j41-header-pinout/ pin map of the jetson nano. On the board there are also markings
On how the sensor works: This example is using arduino: https://www.youtube.com/watch?v=-IvUi9947Kg
Does the jetson nano communicate with the speed sensor to get the speed? If yes, then how can we output that speed in our terminal? And therefore there's no need to use Arduino.