ดูเหมือนว่าฉันไม่สามารถรับข้อมูลไปยัง ArduinoStudio บนจอมอนิเตอร์ Ubuntu ได้ที่ 14.04


11

ฉันใช้ Arduino Starter Kit ดังนั้นฉันจึงมี Uno R3 และผ่านตัวอย่างที่ฉันพยายามอ่านข้อมูลอุณหภูมิจากคอนโทรลเลอร์ของฉันใน Arduino Studio

ในสาระสำคัญปัญหาของฉันสามารถลดลงไป

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

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

ซึ่งฉันคาดว่าจะพิมพ์ "สิ่ง" บนหน้าจออนุกรมต่อไป

(ในทางปฏิบัติผมทำงานนี้รหัสที่แน่นอน แต่ทั้งหมดอุณหภูมิอ่านไปในความรู้สึกที่ไม่เกี่ยวข้องกับปัญหาของฉันฉันเพียงแค่การกล่าวขวัญมันเพราะฉันสามารถสังเกตเห็นว่าไฟ LED Mye สว่างขึ้นเมื่ออุณหภูมิสูงขึ้นเพื่อให้ฉันรู้รหัสจะถูกอัปโหลด และทำงานบน Duo)

ฉันไม่เห็นข้อผิดพลาดใด ๆ ในคอนโซลสตูดิโอและถ้าฉันเชื่อมต่อโดยใช้gtktermหรือscreenฉันสามารถดูข้อมูลที่ถูกส่งไปได้

ผมใช้ Ubuntu 14.04 และฉันได้เชื่อมต่อผ่าน USB /dev/ttyACM3บน

ฉันพยายามวิ่ง

stty -F / dev / ttyACM3 cs8 9600 จุดบอด

ตามที่แนะนำไว้ที่นี่และฉันก็ลองด้วย baud 115200 ดูแลด้วยเพื่อเปลี่ยนค่าในsetupฟังก์ชั่นของฉัน

ฉันยังวิ่ง

chmod a + rw / dev / ttyACM3

แต่ฉันยังไม่เห็นข้อผิดพลาดหรือผลลัพธ์ ฉันจะแก้ไขข้อบกพร่องนี้ได้อย่างไร

วิ่งls -l /dev/ttyACM*ให้

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

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

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

crw-rw-rw- 1 รูต dialout 166, 3 feb 20 14:30 น. / dev / ttyACM3


1
ทดสอบ GtkTerm หรือ PuTTY
Mikael Patel

@MikaelPatel ขอบคุณที่จะช่วยให้ผมแยกปัญหาอย่างน้อย :)
ivarni

1
เอาต์พุตของ "ls -l / dev / ttyACM *" คืออะไร
Avamander

2
ลองใส่สตริง "stuff" ลงในเครื่องหมายคำพูดคู่แทนการใส่เครื่องหมายคำพูดเดี่ยว
Avamander

1
ฉันลงคะแนนให้ปิดคำถามเก่าที่ยังไม่ได้แก้ไขเพราะผู้ถามรายงานความคิดเห็นว่า "ฉันไม่ได้เป็นเจ้าของอาร์ดิโนเองหรือคอมพิวเตอร์ที่ฉันใช้อยู่อีกต่อไป"ซึ่งหมายความว่าเป็นไปไม่ได้ที่จะแก้ไขปัญหานี้โดยสรุป
Chris Stratton

คำตอบ:


0

ตามค่าเริ่มต้นบนระบบ linux ที่ไม่มีกฎการผูก udev เฉพาะเพื่อเปลี่ยนชื่ออุปกรณ์เป็นสิ่งที่ไม่ได้มาตรฐานไดรเวอร์ FTDI ควรแมป usb เข้ากับพอร์ตอนุกรมบน / dev / ttyUSB * และไม่ใช่ / dev / ttbACM * ฉันสงสัยว่าคุณกำลังดูผิดที่ ฉันคิดว่ามันเป็นค่าเริ่มต้นที่ / dev / ttyUSB * สำหรับ usb ไปยังดองเกิลอนุกรม:

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

เพื่อให้แน่ใจว่าคุณกำลังมองหาไฟล์อุปกรณ์ที่ถูกต้องให้เรียกใช้ "sudo dmesg -C" เพื่อเชื่อมต่อกับ Arduino และต่อมาก็แค่ 'sudo dmesg "เพื่อดูว่ามีการติดตั้ง usb กับซีเรียลคอนเวอร์เตอร์อยู่หรือไม่คุณควรเห็น ข้อความเช่นนี้: ตัวแปลง ch341-uart ตอนนี้เชื่อมต่อกับ ttyUSB0 ซึ่งแทนที่ ch341-uart ด้วยสิ่งที่ arduino ของคุณมี (FT232'ish น่าจะเป็นไปได้มากที่สุด)
louigi600

นี่อาจไม่เกี่ยวข้อง โพสต์อ้างว่าใช้ Uno R3 ซึ่งไม่มี FTDI แต่มีการใช้งาน USB แบบกำหนดเองใน ATmega16u2 ซึ่งจะแมปเป็นอุปกรณ์ ttyACM ไม่ใช่ ttyUSB อันเดียวที่เกิดขึ้นบนบอร์ดที่ใช้โซลูชั่นอนุกรม USB อื่น ๆ เช่น Arduinos รุ่นเก่าและโคลนและสารพัน
Chris Stratton

ตกลง แต่ยังคงทำสิ่งที่ dmesg จะบอกคุณซึ่งเป็นอุปกรณ์ที่ถูกต้องที่ linux กำหนดให้กับ arduino .... มันจะไม่แสดง ch340 หรือ FT * .... แต่มันจะยังรายงานสิ่งที่ไฟล์พิเศษของตัวละครที่ได้รับมอบหมาย ใน / dev
louigi600
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.