Jeffrey Cross
Jeffrey Cross

ไฟ LED กระพริบด้วย Beagle Board

หนึ่งในสิ่งที่ดึงฉันเข้าสู่ Beagle Board คือมันมีส่วนต่อประสานเซ็นเซอร์ที่เข้าถึงได้ง่ายติดอยู่ตรงส่วนหัวของส่วนขยาย สิ่งที่คุณต้องทำก็คือบัดกรีบนตัวเชื่อมต่อบางชนิด (ฉันไปที่หัวผู้หญิงแบบ Arduino-esque ดังแสดงในภาพด้านบน)

เมื่อคุณทำเช่นนั้นแล้วการหาว่าจะทำอย่างไรกับพวกเขา สิ่งที่ทำให้ฉันประหลาดใจเกี่ยวกับ Beagle Board คือวิธีที่คุณพูดกับพินเหล่านี้ Linux รองรับอินเทอร์เฟซเซ็นเซอร์ยอดนิยมทั้งหมด: อินพุต / เอาต์พุต (GPIO) เอนกประสงค์, วงจรรวม (I2C), และอินเตอร์เฟส Peripheral Interface (SPI)

ฉันถูกล่อลวงให้เสียบ Beagle Board เข้ากับเซ็นเซอร์หลายตัวที่ฉันวางไว้ แต่ถูกขัดขวางโดยความจริงที่ว่า Beagle Board ใช้การส่งสัญญาณ 1.8 โวลต์ (ฉันจะแก้ไขปัญหานั้นในโพสต์ในอนาคต) ในการเริ่มต้นฉันแค่อยากจะกะพริบไฟ LED ซึ่งหมายความว่าฉันต้องคิดวิธีใช้ GPIO กับ Linux บน Beagle Board

ฉันเช็คเอาท์ตารางที่ 17 ในคู่มืออ้างอิงระบบ Beagle Board เพื่อดูว่าฟิสิคัลพินใดตรงกับพอร์ต GPIO ใด ฉันต้องการพินที่อยู่ใกล้กับพินกราวน์ตัวหนึ่ง (27 และ 28) ที่ส่วนหัวของส่วนขยายดังนั้นฉันจึงไปที่ GPIO_168 (พิน 24)

สิ่งหนึ่งที่ฉันยังไม่ชัดเจนคือความหมายของตัวเลือก (A, B, C และ D) ในตารางที่ 17 ดูเหมือนว่าเมื่อฉันขอพอร์ต GPIO ฉันไม่เข้าใจปัญหาดังนั้นฉันจึงเดา ที่ระบบปฏิบัติการกำลังดูแล "การตั้งค่า mux control register ใน OMAP3530"

ดังนั้นฉันรู้ว่า GPIO_168 นั้นสอดคล้องกับพิน 24 แต่ฉันไม่รู้ว่าจะไปได้อย่างไร ฉันเจอเอกสารลินุกซ์บางอย่างใน AVRFreaks Wiki ที่สะกดให้ฉันทั้งหมด: ตามที่คุณเห็นในตัวอย่างทั้งหมดที่คุณต้องทำคือใช้เปลือก Linux เพื่อเขียนคำสั่งบางไฟล์ไปยังไฟล์หลอกใน sys / ไดเรกทอรี ($ PORT คือหมายเลขพอร์ต):

คำสั่ง ผล
echo $ PORT> / sys / class / gpio / export เปิดพอร์ต GPIO เพื่อเขียน
echo $ PORT> / sys / class / gpio / unexport ปล่อยพอร์ต GPIO
echo“ สูง”> / sys / class / gpio $ PORT / ทิศทาง ใช้พอร์ตสูง
echo“ low”> / sys / class / gpio $ PORT / ทิศทาง ใช้พอร์ตต่ำ

หากต้องการลองใช้ Beagle Board คุณจะต้องผ่านการฝึกสอน Beagle Board เพื่อให้สามารถใช้งาน Angstrom Linux ได้ เมื่อคุณทำสิ่งนี้แล้วคุณจะมี Linux ที่ทำงานบน Beagle Board และคุณจะสามารถโต้ตอบกับมันโดยใช้พอร์ตอนุกรม (ตัวอย่างเช่น minicom บน Linux หน้าจอบน Mac OS X หรือ HyperTerminal หรือ PuTTY บน Windows) และพิมพ์คำสั่งลงไป

ดังนั้นเข้าสู่ระบบ Beagle Board ของคุณในฐานะ root และเข้าสู่โปรแกรมต่อไปนี้เป็นไฟล์ที่เรียกว่า strobe_gpio:

เครื่องมือแก้ไข vi มาพร้อมกับ Beagle Board เพื่อให้คุณพิมพ์ได้ vi strobe_gpioพิมพ์ i (เพื่อเข้าสู่โหมดแทรก) จากนั้นวางโปรแกรมในถัดไปกด Escape (เพื่อกลับไปที่โหมดคำสั่ง) และพิมพ์ ZZ เพื่อบันทึกไฟล์ สิ่งนี้จะทำให้คุณกลับไปที่ Linux shell (มีบทเรียนเกี่ยวกับ vi มากมายในจักรวาลถ้าสิ่งนี้พิสูจน์ได้ว่าเป็นปัญหา)

ถัดไปพิมพ์ chmod 755 strobe_gpio. จากนั้นใส่ LED ตามที่แสดง (ปลายสั้นเข้าสู่ขา 28 ยาวสิ้นสุดลงในขา 24) ในรูปภาพที่ด้านบนของโพสต์นี้ ลองคำสั่ง ./strobe_gpio 168 และคุณควรเห็นไฟ LED กะพริบ

นี่ไม่ใช่การสาธิตประสิทธิภาพของ Beagle Board อย่างเต็มประสิทธิภาพ แต่เป็นขั้นตอนแรกในการพูดคุยกับเซ็นเซอร์และไมโครคอนโทรลเลอร์อื่น ๆ

อัปเดต: Boireau Laurent ได้โพสต์ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานใน Beagle Board Google Group พร้อมกับข้อเสนอแนะที่ชุมชนสร้าง "ไซต์เริ่มต้นด้วยตัวอย่างที่เรียบง่ายหรือซับซ้อนกว่านี้พร้อมเชลล์สคริปต์และโปรแกรม C ขนาดเล็กสาธิต ' ความสามารถของโลกสวัสดีและการโต้ตอบพื้นฐานกับ LED, ปุ่ม, ตัวจับเวลา, การขัดจังหวะ, อนุกรม, SPI, I2C, PWM, เชื่อมต่อเว็บแคมโดยใช้ NEON หรือ DSP " ฉันพบว่าไซต์ดังกล่าวมีประโยชน์อย่างไม่น่าเชื่อ!

หุ้น

แสดงความคิดเห็น