Ich versuche, einen Maxbotix-Ultraschall-Entfernungsmesser (LV-EZ0) mit einem Raspberry Pi 3 B+ einzurichten.
Ich habe alle Tipps ausprobiert, die ich finden konnte:
Deaktivieren Sie die serielle Schnittstelle für die Shell, lassen Sie sie jedoch für die Port-Hardware aktiviert
Ich habe dafür gesorgt, dass diese Zeilen vorhanden sind, oder ich habe sie selbst hinzugefügt:
enable_uart=1
dtoverlay=disable-bt (also tried dtoverlay=pi3-miniuart-bt)
# services
Stopped / Disabled bluetooth, serial-getty@ttyAMA0
Ich habe es auch versucht: sudo cat /dev/serial0 > catReading.txt
in einem ssh-Fenster und sudo echo -en "test\n" > /dev/serial0
in einem anderen, aber catReading.txt bleibt leer, weil ich ein "Permission denied" bekomme, um etwas auf serial0 zu schreiben.
sudo dmesg | grep tty => [ 0.000901] Konsole [tty1] aktiviert [ 1.023127] 3f201000.serial: ttyAMA0 bei MMIO 0x3f201000 (irq = 81, base_baud = 0) ist ein PL011 rev2
ls -l /dev/* =>
lrwxrwxrwx 1 root root 7 Jan 31 16:57 serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Jan 31 16:57 serial1 -> ttyS0
cat /boot/cmdline.txt =>
console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Ich habe nach oben geschaut, um zu sehen, ob es eine Möglichkeit gibt, einen PWM-Eingang auf dem Raspi 3 zu lesen, aber es ist anscheinend nicht möglich, es sei denn, ich füge zusätzliche Hardware hinzu.
Irgendwelche Vorschläge von dort?
Zunächst einmal ist der TX-Pin des Sensors ein Sendeausgang, daher muss er mit dem RasPi RX-Pin verbunden werden, der ein Empfangseingang ist - Das Verbinden von TX mit TX ist normalerweise falsch. Aber in diesem Fall ist das nicht so einfach, also tun Sie das jetzt noch nicht.
Die TX-Ausgangsspannungspegel des Sensors sind die gleichen wie die Versorgungsspannung, sodass 5-V-Logikpegel verwendet werden. Der RasPi-RX-Pin toleriert keine 5-V-Logikpegel, er muss 3,3-V-Logikpegel verwenden, daher ist eine gewisse Konvertierung erforderlich. Glücklicherweise ist der Ausgang möglicherweise so schwach, dass der RasPi RX-Pin ihn tolerieren kann, aber das ist definitiv nicht gut, um 5-V-Signale an Dinge zu treiben, die 3,3-V-Signale erwarten.
Schließlich ist der TX-Ausgang des Sensors tatsächlich direkt mit RS232-Spannungspegelempfängern kompatibel, was bedeutet, dass er invertiert werden muss, bevor er an einen UART ohne RS232-Spannungsempfänger wie RasPi angeschlossen wird. Aus diesem Grund erhalten Sie keine korrekten Zeichen.
Lösungen bestehen darin, einen USB-RS232-Adapter an RasPi anzuschließen oder einen Wechselrichter mit Spannungspegelumwandlung dazwischen zu schalten. Zum Beispiel ist ein 74LVC04 ein Inverter, er kann mit 3,3 V Versorgungsspannung verwendet werden, um den RasPi RX-Eingang mit 3,3 V Logikpegel anzusteuern, und er kann 5 V Logikpegel an Eingängen tolerieren.
Dies sind jedoch nicht die einzigen Lösungen. Der Sensor kann mit einer Versorgungsspannung von 3,3 V verwendet werden, sodass Sie den Sensor und den Wechselrichter sowohl bei 3,3 V verwenden können, sodass jeder Wechselrichter verwendet werden kann, der mit 3,3 V betrieben wird, z. B. 74HC04. Sie könnten auch eine RS232-auf-3,3-V-TTL/CMOS-Pegel-Empfängerplatine erhalten, die mit 3,3 V läuft, um die Inversion und Pegelumwandlung durchzuführen.
Transistor
Garys