Wcześniej używałem moich Arduinos do programowania innych urządzeń poprzez połączenie szeregowe poprzez podłączenie Arduino do mojego komputera, uziemienie RES i połączenie pinów TX i RX na każdym urządzeniu. To pozwala mi ominąć układ ATmega328 i wysłać dane bezpośrednio do urządzenia podłączonego do Arduino.
Dzisiaj postanowiłem zainstalować Ubuntu Server na bezgłowym Raspberry Pi, używając konsoli szeregowej za pośrednictwem dwóch połączonych ze sobą Arduinos. Zanim zacząłem instalować system, postanowiłem wypróbować ten pomysł na moim laptopie - uziemiłem styki RES na obu, połączyłem ich styki uziemienia, TX i RX ze sobą (RX do TX i odwrotnie) i podłączyłem oba do osobnego Port USB (bez koncentratorów, wewnętrznie lub zewnętrznie). Następnie uruchomiłem Picocom dla obu urządzeń w osobnych terminalach:
sudo picocom -b 38400 /dev/ttyUSB0
sudo picocom -b 38400 /dev/ttyUSB1
i próbował wysłać wiadomość z jednego urządzenia do drugiego, ale pomimo tego, że dioda TX na nadajniku i RX na urządzeniu odbierającym migają, żadne dane nie są wyświetlane w pikocom.
Pobiegłem, dmesg | grep tty
aby potwierdzić, że urządzenia są podłączone i zgodnie z oczekiwaniami otrzymuję następujące dane wyjściowe:
[15085.910703] usb 1-1.2: ch341-uart converter now attached to ttyUSB0
[15086.258910] usb 1-1.3: ch341-uart converter now attached to ttyUSB1
bez komunikatów o błędach.
Nie jest to również problem z picocomem, ponieważ próbowałem już minicom i screena, a echo <message> | sudo tee /dev/ttyUSB0
wszystko to bezskutecznie.
Czy coś mi umyka? Czy to w ogóle możliwe?
EDYCJA: Próbowałem usunąć drugie Arduino, używając takiego obwodu:
Ale, jak wcześniej, lampki RX i TX migają, ale na monitorze szeregowym nic się nie wyświetla
źródło