จริงๆกะว่าจะเอา code มาลงให้อะ แต่ด้วยความที่มันอยู่ที่แล็บ ก็เลย.... ขี้เกียจ ช่างมัน ก็เอาเป็นว่าเรามาพูดเรื่องอื่นเกี่ยวกับ wheel encoder ดีกว่า ซึ่งก็คือการจะนับว่ามี wheel encoder count ของแต่ละล้อเท่าไหร่ เพื่อเอาไว้ใช้กับระบบ error correction ที่เราจะพูดถึงกันวันหลัง
การนับ wheel encoder count ทำได้หลักๆก็ 2 วิธี ง่ายๆคือนับที่ hardware กับ นับที่ software
โดยที่เราใช้คือการนับด้วย hadrware ด้วยเหตุผลที่ว่ามัน accurate กว่า โดยเฉพาะถ้าหุ่นยนต์ที่จะสร้างจะต้อง service interrupt routine บ่อย เพราะถ้าเกิด delay ขึ้นมา ก็จะมีปัญหาในการนับได้ แต่ข้อเสียก็คือต้องระวังปัญหา overflow เพราะเนื่องจากการนับใน hardware นั้นจะมีข้อจำกัดตรงที่ว่า hardware ให้เรานับได้ถึงแค่ไหน ซึ่งส่วนใหญ่ก็ไม่น่าเกิน 16 bit ซึ่งก็... ซึ่งก็เยอะดี แต่เรื่องของเรื่องคืน hardware จะ support รึป่าว... ยิ่ง hardware บางตัวให้แค่ 8 bit ก็เตรียมใจต้องเขียน code เพราะ code ที่จะต้องเขียนก็ต้องระวังส่วนนี้ด้วย ต้องคอย reset ไม่ให้เกิดการ overflow ขึ้น
ส่วนข้อดีในการใช้ software นับก็คือตัดปัญหาเรื่อง overflow ไป อาจจะ assign counter เป็น unsigned long ซึ่งก็แทบจะไม่เป็นปัญหาเลย ส่วนข้อเสียก็คืออย่างที่บอกคืออาจจะนับผิดพลาดได้ ถ้าต้อง service interrupt routine เยอะๆ
เอาล่ะ... เกริ่นกันมาแล้วก็มาเข้าเรื่องกันคราวหน้าละกัน ง่วงแล้ว (หาเรื่องอู้)
edit @ 2005/04/11 23:15:14
การนับ wheel encoder count ทำได้หลักๆก็ 2 วิธี ง่ายๆคือนับที่ hardware กับ นับที่ software
โดยที่เราใช้คือการนับด้วย hadrware ด้วยเหตุผลที่ว่ามัน accurate กว่า โดยเฉพาะถ้าหุ่นยนต์ที่จะสร้างจะต้อง service interrupt routine บ่อย เพราะถ้าเกิด delay ขึ้นมา ก็จะมีปัญหาในการนับได้ แต่ข้อเสียก็คือต้องระวังปัญหา overflow เพราะเนื่องจากการนับใน hardware นั้นจะมีข้อจำกัดตรงที่ว่า hardware ให้เรานับได้ถึงแค่ไหน ซึ่งส่วนใหญ่ก็ไม่น่าเกิน 16 bit ซึ่งก็... ซึ่งก็เยอะดี แต่เรื่องของเรื่องคืน hardware จะ support รึป่าว... ยิ่ง hardware บางตัวให้แค่ 8 bit ก็เตรียมใจต้องเขียน code เพราะ code ที่จะต้องเขียนก็ต้องระวังส่วนนี้ด้วย ต้องคอย reset ไม่ให้เกิดการ overflow ขึ้น
ส่วนข้อดีในการใช้ software นับก็คือตัดปัญหาเรื่อง overflow ไป อาจจะ assign counter เป็น unsigned long ซึ่งก็แทบจะไม่เป็นปัญหาเลย ส่วนข้อเสียก็คืออย่างที่บอกคืออาจจะนับผิดพลาดได้ ถ้าต้อง service interrupt routine เยอะๆ
เอาล่ะ... เกริ่นกันมาแล้วก็มาเข้าเรื่องกันคราวหน้าละกัน ง่วงแล้ว (หาเรื่องอู้)
edit @ 2005/04/11 23:15:14