Sepertinya saya tidak dapat menerima data ke monitor serial ArduinoStudio di ubuntu 14.04 [ditutup]


11

Saya menggunakan Arduino Starter Kit jadi saya punya R3 Uno dan melalui contoh saya mencoba membaca data suhu dari controller saya di Arduino Studio.

Intinya masalah saya bisa dikurangi menjadi

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

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

Yang saya harapkan untuk terus mencetak "barang" pada monitor serial.

(Dalam praktiknya saya menjalankan kode persis ini tetapi semua pembacaan suhu yang terjadi terasa tidak relevan dengan masalah saya, saya hanya menyebutkannya karena saya dapat mengamati bahwa mye LED menyala ketika suhu naik sehingga saya tahu kode itu diunggah dan berjalan di Duo).

Saya tidak melihat kesalahan apa pun di konsol studio, dan jika saya terhubung menggunakan gtktermatau screensaya dapat melihat data dikirim sehingga masalahnya tampaknya terisolasi ke monitor seri AndroidStudio itu sendiri.

Saya menjalankan Ubuntu 14.04 dan saya sudah terhubung melalui USB /dev/ttyACM3.

Saya mencoba berlari

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

seperti yang disarankan di sini dan saya juga mencoba dengan baud 115200, berhati-hati juga mengubah nilai dalam setupfungsi saya .

Saya juga berlari

chmod a + rw / dev / ttyACM3

Tapi saya masih belum melihat kesalahan atau output. Bagaimana saya melanjutkan untuk men-debug masalah ini?

Berlari ls -l /dev/ttyACM*memberi

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

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

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

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


1
Tes GtkTerm atau Putty.
Mikael Patel

@MikaelPatel Terima kasih, itu seharusnya membantu saya mengisolasi masalah setidaknya :)
ivarni

1
Apa output dari "ls-l / dev / ttyACM *"?
Avamander

2
Coba masukkan string "stuff" ke dalam tanda kutip ganda alih-alih tanda kutip tunggal.
Avamander

1
Saya memberikan suara untuk menutup pertanyaan lama yang tidak terselesaikan ini karena penanya melaporkan dalam komentar bahwa "Saya tidak memiliki arduino itu sendiri atau komputer yang saya gunakan lagi" yang berarti bahwa tidak mungkin untuk menyelesaikan masalah ini secara meyakinkan.
Chris Stratton

Jawaban:


0

Secara default, pada sistem linux tanpa aturan pengikatan udev khusus untuk mengubah nama perangkat menjadi sesuatu yang tidak standar, driver FTDI harus memetakan usb ke port serial pada / dev / ttyUSB * dan bukan ke / dev / ttbACM *. Saya menduga bahwa Anda hanya mencari di tempat yang salah. Saya pikir itu default ke / dev / ttyUSB * untuk usb ke serial dongle:

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

Untuk memastikan Anda mencari dalam file perangkat yang benar, jalankan "sudo dmesg -C" priot untuk menghubungkan Arduino, dan kemudian hanya 'sudo dmesg "untuk melihat di mana usb ke serial converter terpasang. Anda akan melihat pesan seperti ini: konverter ch341-uart sekarang dilampirkan ke ttyUSB0 di mana ch341-uart digantikan oleh apa yang dimiliki arduino Anda (kemungkinan besar FT232'ish)
louigi600

Ini mungkin tidak berlaku. Pos mengklaim menggunakan Uno R3, yang tidak memiliki FTDI tetapi memiliki implementasi serial USB khusus dalam ATmega16u2 yang akan dipetakan sebagai perangkat ttyACM bukan ttyUSB satu - yang hanya terjadi di papan menggunakan solusi serial USB lainnya, seperti Arduino yang lebih tua dan berbagai macam klon dan kompatibel.
Chris Stratton

Ok tapi masih melakukan hal dmesg akan memberi tahu Anda yang merupakan perangkat yang benar bahwa linux memberikan ke arduino .... itu tidak akan menampilkan ch340 atau FT * .... tetapi masih akan melaporkan apa file karakter khusus yang ditugaskan di / dev.
louigi600
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.