Nie mogę odbierać danych do monitora szeregowego ArduinoStudio na Ubuntu 14.04 [zamknięte]


11

Używam Arduino Starter Kit, więc mam Uno R3 i przeglądam przykłady, próbuję odczytać dane temperatury z mojego kontrolera w Arduino Studio.

Zasadniczo mój problem można sprowadzić do

void setup() {
    Serial.begin(9600);
}

void loop() {
    Serial.print("stuff");
}

Którego spodziewałbym się nadal drukować „rzeczy” na monitorze szeregowym.

(W praktyce uruchamiam ten dokładny kod, ale cały odczyt temperatury wydaje się nieistotny dla mojego problemu, po prostu wspominam o nim, ponieważ widzę, że moje diody LED zapalają się, gdy temperatura wzrośnie, więc wiem, że kod został przesłany i działa na Duo).

Nie widzę żadnych błędów w konsoli studyjnej, a jeśli połączę się za pomocą gtktermlub screenwidzę wysyłane dane, problem wydaje się być odizolowany od samego monitora szeregowego AndroidStudio.

Używam Ubuntu 14.04 i podłączyłem się przez USB na /dev/ttyACM3.

Próbowałem biec

stty -F / dev / ttyACM3 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

jak zasugerowano tutaj, a także próbowałem z baud 115200, dbając również o zmianę wartości w mojej setupfunkcji.

Ja także pobiegłem

chmod a + rw / dev / ttyACM3

Ale nadal nie widzę żadnych błędów ani wyników. Jak przejść do debugowania tego problemu?

Bieganie ls -l /dev/ttyACM*daje

crw-rw ---- 1 root dialout 166, 0 lut. 20 14:22 / dev / ttyACM0

crw-rw ---- 1 root dialout 166, 1 lut. 20 14:22 / dev / ttyACM1

crw-rw ---- 1 root dialout 166, 2 lut. 20 14:22 / dev / ttyACM2

crw-rw-rw- 1 root dialout 166, 3 lut. 20 14:30 / dev / ttyACM3


1
Przetestuj GtkTerm lub PuTTY.
Mikael Patel,

@MikaelPatel Dzięki, to powinno mi pomóc przynajmniej w zidentyfikowaniu problemu :)
ivarni

1
Jaka jest wydajność „ls -l / dev / ttyACM *”?
Avamander,

2
Spróbuj umieścić ciąg „rzeczy” w podwójnych cudzysłowach zamiast pojedynczych cudzysłowów.
Avamander,

1
Głosuję za zamknięciem tego starego nierozwiązanego pytania, ponieważ pytający informuje w komentarzach, że „Nie posiadam ani samego arduino, ani komputera, którego już używałem”, co oznacza, że ​​nigdy nie będzie możliwe ostateczne rozwiązanie tego problemu.
Chris Stratton,

Odpowiedzi:


0

Domyślnie w systemie Linux bez określonych reguł wiązania udev w celu zmiany nazwy urządzenia na coś niestandardowego sterownik FTDI powinien mapować USB na port szeregowy na / dev / ttyUSB *, a nie na / dev / ttbACM *. Podejrzewam, że po prostu patrzyłeś w niewłaściwe miejsce. Myślę, że domyślnie jest to / dev / ttyUSB * dla dowolnego klucza USB na szeregowego:

usb-serial.c:   usb_serial_tty_driver->name = "ttyUSB";

Aby upewnić się, że szukasz właściwego pliku urządzenia, uruchom „sudo dmesg -C” priot, aby podłączyć Arduino, a następnie po prostu „sudo dmesg”, aby zobaczyć, gdzie podłączony jest konwerter USB na szeregowy. wiadomość podobna do tej: konwerter ch341-uart jest teraz podłączony do ttyUSB0, gdzie ch341-uart jest zastąpiony tym, co ma twoje arduino (najprawdopodobniej FT232'ish)
louigi600 27.04.17

Prawdopodobnie nie dotyczy to. Post twierdzi, że używa Uno R3, który nie ma FTDI, ale raczej ma niestandardową implementację szeregową USB w ATmega16u2, która będzie mapowana jako urządzenie ttyACM, a nie ttyUSB - które występują tylko na płytkach wykorzystujących inne rozwiązania szeregowe USB, jak starsze Arduinos i różne klony i kompatybilne.
Chris Stratton,

Ok, ale nadal wykonywanie dmesg powie ci, które jest prawidłowe urządzenie, które linux przypisuje do arduino .... nie pokaże ch340 ani FT * .... ale nadal będzie raportować, jaki plik specjalny ma przypisany znak w / dev.
louigi600,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.