กุมภาพันธ์ 2, 2016

การใช้งานโมดูล Con CAN ร่วมกับ RevPi Connect S และ RevPi Connect SE

บทความนี้สอนการใช้งานโมดูล Con CAN ของ RevPi Connect S และ RevPi Connect SE แต่ก่อนอื่นเราต้องทำการต่อโมดูล Con CAN เข้ากับ RevPi Connect แล้วจ่ายไฟให้กับระบบ นอกจากนี้เรายังต้องทราบไอพีแอดเดรสของ RevPi Connect อีกด้วย หลังจากนั้นทำตามขั้นตอนดังต่อไปนี้บนคอมพิวเตอร์ที่อยู่ในเน็ทเวิร์คเดียวกับ RevPi Connect

  1. เปิดเว็บเบราเซอร์แล้วไปที่ไอพีแอดเดรสของ RevPi Connect
  2. ล๊อกอินด้วยยูสเซอร์ admin ส่วนพาสเวิร์ดให้ดูจากสติ๊กเกอร์ด้านข้าง RevPi Connect
  3. คลิ๊ก Start PiCtory
  4. ลาก RevPi Connect ไปวางบน Virtual DIN rail แล้วลากโมดูล Con CAN ไปวางไว้ด้านขวาของ RevPi Connect
  5. ทำการบันทึกการตั้งค่า
  6. รีบูท RevPi Connect แล้วล๊อกอินอีกครั้ง ตอนนี้เราจะสามารถจะติดต่อกับโมดูล Con CAN ด้วยชื่อ can0 ได้แล้ว
  7. ทำการเชื่อมต่อไปยัง RevPi Connect ผ่านโปรโตคอล SSH แบบรีโมท
  8. ทำการตั้งค่าบิทเรทของโมดูล Con CAN โดยบิทเรทควรจะสอดคล้องกับความยาวของเครือข่าย CAN ตารางด้านล่างแสดงความยาวสูงสุดของแต่ละบิทเรท เราสามารถตั้งค่าบิทเรทด้วยคำสั่ง sudo ip link set can0 type can bitrate 1000000

  1. ใช้คำสั่ง sudo ip link set can0 up เพื่อสั่งให้โมดูล Con CAN เริ่มทำงาน
  2. RevPi Connect ได้ทำการติดตั้ง can-utils ไว้ เราสามารถใช้ตัวอย่างคำสั่งด้านล่างในการติดต่อผ่านเครือข่าย CAN ได้
  • ส่งข้อมูลแพคเกจเดียว: cansend can0 123#1122334455667788
  • ส่งข้อมูลแบบสุ่มวนลูปไปเรื่อย ๆ: cangen can0 -g 0 -i -x
  • อ่านข้อมูลบนเครือข่าย CAN: candump can0
  • บันทึกการสื่อสารบนเครือข่าย CAN ไว้ดูบนโปรแกรม WireShark: sudo tcpdump -i can0 -w out.pcap
  • ตรวจความผิดพลาดที่เกิดขึ้นระหว่างส่งข้อมูล: ip -details -statistics link show can0
  1. หลังจากใช้งานเสร็จแล้ว เราสามารถใช้คำสั่ง exit เพื่อออกจากการเชื่อมต่อไปยัง RevPi Connect
  2. นอกจากนี้ RevPi Connect ยังทำการติดตั้งไลบรารี่ python-can เพื่อให้เราสามารถควบคุมโมดูล Con CAN ด้วย Python โดยสามารถดูตัวอย่างการเขียนโปรแกรมในเพจของไลบรารี่ได้เลย ทั้งนี้เนื่องจากเราใช้งานระบบปฏิบัติการลีนุกซ์ เราต้องใช้ os.system ใน Python เพื่อเรียกคำสั่งต่อไปนี้ในการเริ่มใช้งาน CAN
    – sudo ip link set can0 type can bitrate [baud rate in bit/s]
    – sudo ip link set can0 txqueuelen 1000
    – sudo ip link set can0 up
    และใช้ os.system เรียกคำสั่ง sudo ip link set can0 down เพื่อหยุดใช้งาน CAN นอกจากนี้เรายังควรติดตั้งไลบรารี่ cantools เพื่อแปลงข้อมูล CAN ไปเป็นค่าสัญญาณ (Signal)

ในกรณีที่เราต้องการต่อ termination resistor 120 โอห์ม เราสามารถต่อขา 1 เข้ากับขา 2 และขา 3 เข้ากับขา 4 บนคอนเนคเตอร์ x2 ได้โดยไม่ต้องใช้ตัวต้านทานภายนอก

หวังว่าบทความนี้จะให้ความรู้ที่จำเป็นในการใช้งานโมดูล Con CAN ของ RevPi Connect หากผู้อ่านต้องการทราบข้อมูลเพิ่มเติมสามารถติดต่อทีมงาน Techsquare ได้ครับ

บทความที่เกี่ยวข้อง

การใช้งาน RevPi ผ่านโปรโตคอล SSH แบบรีโมท

เอกสารอ้างอิงไลบรารี่ python-can

error: Content is protected...