การจำลองอุปกรณ์ 1 เส้น


10

สิ่งที่ฉันต้องการทำคือทำให้ ATTiny IC กลายเป็นทาสบนบัส 1 สายพร้อม S / N ของตัวเองและรายการคำสั่งสำหรับฟังก์ชั่นเฉพาะ

สิ่งที่ฉันอยากรู้คือถ้าฉันสามารถใช้ห้องสมุดสายเดียวจากเว็บไซต์ arduino เพื่อส่งข้อมูลเป็นทาส

ตัวอย่างเช่นคุณสามารถมีทาสได้ในห้องเดียวที่มีเซ็นเซอร์หลายประเภทซึ่งจะรายงานต่อนายเกี่ยวกับข้อมูลที่ร้องขอหรือผู้ควบคุมสามารถบอกให้ควบคุมสิ่งที่คล้ายกับผ้าม่าน

คำถาม ฉันต้องตรวจสอบรถประจำทางและตอบสนองต่อคำขอจากต้นแบบและคำนึงถึงวิธีที่เซ็นเซอร์ปกติจะส่งข้อมูลหรือไม่ ฉันควรใช้ทาสในความถี่ใดเพื่อให้ได้ฟังก์ชันการทำงานที่ดีที่สุด

ฉันจะไม่ใช้พลังงานกาฝากเป็นบันทึก



@ Gerben - ฉันพบว่าก่อนหน้านี้ในการค้นหา ไขมันต่ำผ่านมัน แต่ฉันกังวลเพราะมีข้อผิดพลาดบางอย่างแม้ว่าจะถูกแก้ไขแล้ว แต่ฉันไม่ทราบความน่าเชื่อถือ นอกจากนี้ยังค้นหาการออกแบบศัตรูโดยใช้ทาสที่กำหนดเองไม่ได้ดูเหมือนเป็นเรื่องธรรมดาดังนั้นคำถามข้างต้น
RSM

ดูเหมือนว่าห้องสมุดสนับสนุน ฉันคิดว่านี่เป็นห้องสมุดเฉพาะ ความเร็วดูเหมือนจะอยู่ที่ประมาณ 15kbps ฉันคิดว่าความเร็วของ CPU นั้นไม่สำคัญ แต่ขึ้นอยู่กับไลบรารี หากไม่ใช่แบตเตอรี่ให้ใช้ที่ 8mhz หรือ 16mhz และควรจะใช้ได้
Gerben

@ Gerben ฉันจะทดสอบห้องสมุดเพื่อดูว่ามันทำงานอย่างไร สิ่งหนึ่งที่ฉันยังไม่เข้าใจคือทำไมมันจึงแปลกสำหรับบางสิ่งบางอย่างที่จะไม่ใช้ทาสลวดหนึ่ง
RSM

@RSM คุณควรตรวจสอบห้องสมุดนี้github.com/MarkusLange/OneWireSlave
Ryu_hayabusa

คำตอบ:


3

เท่าที่ฉันรู้ไลบรารีแบบลวด 1 เส้นที่คุณเชื่อมโยงในคำถามของคุณจะอนุญาตให้ทำหน้าที่เป็นเจ้านายเท่านั้นไม่ใช่ทาส

ฉันเพิ่งเปิดห้องสมุดเพื่อเปลี่ยนบอร์ด Arduino เป็นทาส 1 สายที่นี่: https://github.com/neuoy/OneWireArduinoSlave (แก้ไข: ย้ายที่นี่https://gitea.youb.fr/youen/OneWireArduinoSlave ) ฉันใช้มันในระบบอัตโนมัติในบ้านที่กำหนดเองของฉันและมันทำงานได้อย่างไร้ที่ติในการตั้งค่าของฉัน (DS9490R ต้นแบบ 1 สายเชื่อมต่อกับแล็ปท็อปผ่าน USB และยังให้พลังงานกับ Arduino ซึ่งเป็น Arduino Uno) ไลบรารีจัดการรายละเอียดในระดับต่ำ: จับคู่ rom, ส่งและรับ byte (ซึ่งจริง ๆ แล้วค่อนข้างยากที่จะทำให้ถูกต้องซึ่งส่วนใหญ่เป็นไปไม่ได้หากไม่มีตัววิเคราะห์เชิงตรรกะ) ส่วนที่เหลือขึ้นอยู่กับคุณ

มันถูกนำมาใช้อย่างสมบูรณ์กับการขัดจังหวะการสื่อสารทั้งหมดจะดำเนินการในพื้นหลังคุณสามารถรันโค้ดอื่น ๆ ตามปกติในแบบคู่ขนานและได้รับแจ้งโดยการโทรกลับเมื่อได้รับไบต์ ฯลฯ การส่งไบต์ไปยังต้นแบบยังไม่ตรงกัน

ฉันยังรู้ว่ามีห้องสมุดอย่างน้อยหนึ่งแห่งอยู่ที่https://github.com/MarkusLange/OneWireSlaveตามที่ได้แสดงความคิดเห็นไว้ข้างต้นโดย Ryu_hayabusa มันใช้งานไม่ได้สำหรับฉัน (ไม่ทราบว่าเป็นเพราะการตั้งค่าฮาร์ดแวร์ของฉันหรือด้วยเหตุผลอื่น) แต่มันใช้งานได้ดีกับผู้อื่นดังนั้นควรลองดูด้วย ดูเหมือนว่าไลบรารีนี้ไม่ได้ถูกนำไปใช้กับการขัดจังหวะดังนั้นโปรแกรมของคุณจะถูกบล็อกในขณะที่รอกิจกรรมหลัก (ซึ่งเป็นที่ยอมรับอย่างสมบูรณ์ในหลาย ๆ สถานการณ์)


พื้นที่เก็บข้อมูลดูเหมือนจะย้ายไปที่gitea.youb.fr/youen/OneWireArduinoSlave
Jonas Berlin

1
@JonasBerlin แน่นอนฉันได้ย้ายพื้นที่เก็บข้อมูลแล้ว (เพิ่งแก้ไขคำตอบเพื่อแสดงว่า) ฉันปล่อยให้ลิงก์เก่าเป็นข้อมูลสำรองในกรณีและเป็นข้อมูลอ้างอิงเพื่อค้นหาคนอื่น ๆ ที่ใช้ GitHub
คุณ

ควรคัดลอกปัญหาหรือไม่
Jonas Berlin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.