Arduino XMAS Hitcounter: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino XMAS Hitcounter: 6 ขั้นตอน (พร้อมรูปภาพ)
Anonim
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter
Arduino XMAS Hitcounter

คริสต์มาสกำลังใกล้เข้ามา ดังนั้นนี่คือการสนับสนุนของฉันที่จะทำให้คุณอารมณ์ดี มันเป็นบล็อกฮิตที่สั่นกระดิ่ง อย่างแท้จริง. มันทำให้คุณยิ้มได้ทุกครั้งที่มีคนมาที่บล็อกของคุณ

ประกอบด้วยบอร์ด Arduino กระดิ่ง เซอร์โว และโค้ดสองสามบรรทัดใน c, python และ php ชิ้นส่วนส่วนใหญ่ค่อนข้างธรรมดาและควรหาได้ง่าย

ขั้นตอนที่ 1: เครื่องมือและวัสดุ

เครื่องมือและวัสดุ
เครื่องมือและวัสดุ

แล้วอะไรคือสิ่งที่จำเป็น?

  • บอร์ด Arduino. ฉันได้ Arduino Diecimila จาก Adafruits ในระหว่างนี้ มีโคลนราคาถูกและสะดวกจริงๆ เช่น บอร์ดกระดูกที่เปลือยเปล่าจริงๆ จาก Modern Devices โดยเฉพาะอย่างยิ่งหากคุณต้องการใช้กับเขียงหั่นขนม
  • เซอร์โวมอเตอร์ เซอร์โวใด ๆ จะทำ ฉันเอาอันเก่าที่ใช้ในงานอดิเรกเก่าของฉัน
  • กระดิ่ง. ควรเป็นอันที่เล็กพอที่จะเขย่าด้วยเซอร์โว
  • คลิปหนีบกระดาษสองอัน อันใหญ่ไว้ถือกริ่ง อันเล็กไว้สร้างแอคทูเอเตอร์เพื่อตีกริ่ง
  • สายเชื่อมต่อเซอร์โวกับ Arduino
  • เว็บไซต์ อันที่จริงไม่จำเป็นต้องเป็นเว็บไซต์หรือบล็อก ที่จริงทุกอย่างที่นับได้ก็จะได้ผล
  • PC หรือ Mac เพื่อเชื่อมต่อบอร์ด Arduino กับบล็อกหรือเว็บไซต์

คุณอาจต้องใช้หัวแร้งหากไม่สามารถต่อสายไฟเข้ากับ Arduino ได้โดยตรง

ขั้นตอนที่ 2: การประกอบฮาร์ดแวร์

การประกอบฮาร์ดแวร์
การประกอบฮาร์ดแวร์
การประกอบฮาร์ดแวร์
การประกอบฮาร์ดแวร์
การประกอบฮาร์ดแวร์
การประกอบฮาร์ดแวร์
การประกอบฮาร์ดแวร์
การประกอบฮาร์ดแวร์

ระฆังถือโดยคลิปหนีบกระดาษที่แข็งแรง คลิปหนีบกระดาษขนาดเล็กใช้ทำเป็นแขนยึดกับเซอร์โวมอเตอร์

โปรดทราบว่าคุณต้องการงอคลิปหนีบกระดาษที่ถือกระดิ่งในลักษณะที่สั่นเล็กน้อยอยู่แล้วจะทำให้เกิดเสียงดังขึ้น

ขั้นตอนที่ 3: แผนผัง

แผนผัง
แผนผัง

ไม่มีแผนผังที่แท้จริง เพียงต่อเซอร์โวมอเตอร์เข้ากับ Arduino เซอร์โวมีสามสาย:

  • สีเหลืองหรือสีส้ม: สัญญาณ
  • สีแดง: VCC
  • สีน้ำตาล: GND

สีแดงและสีน้ำตาลติดอยู่กับหมุดตามของ Arduino (5V และ GND) อันสีส้มเชื่อมต่อกับพิน 2 มันจะส่งสัญญาณเซอร์โวไปในทิศทางใด คุณอาจต้องการบัดกรีขั้วต่อขนาดเล็กเข้ากับสายไฟหากสายไฟไม่พอดีกับ Arduino หรือเซอร์โวโดยตรง

ขั้นตอนที่ 4: การเขียนโปรแกรม Arduino

การเขียนโปรแกรม Arduino
การเขียนโปรแกรม Arduino

Arduino หากคุณยังใหม่กับ Arduino มันคือบอร์ดขนาดเล็กที่ประกอบเข้ากับไมโครคอนโทรลเลอร์ AVR อย่างสมบูรณ์ เหมาะสำหรับการแฮ็กและโต้ตอบกับสภาพแวดล้อมของคุณ หลายสิ่งที่ยากสำหรับไมโครคอนโทรลเลอร์นั้นค่อนข้างง่ายสำหรับ Arduino ข้อดีบางประการ:

  • ไม่จำเป็นต้องใช้อุปกรณ์การเขียนโปรแกรมแยกต่างหาก (โปรแกรมเมอร์)
  • มาพร้อมกับสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE)
  • ทำงานบนทุกแพลตฟอร์ม Windows, Mac, Linux
  • เชื่อมต่อกับพีซีของคุณอย่างง่ายดายด้วย USB
  • ฮาร์ดแวร์เป็นโอเพ่นซอร์ส (แต่ชื่อ Arduino ไม่ใช่)
  • มีชุมชนที่ดี

ดูข้อมูลเพิ่มเติมได้ที่เว็บไซต์ทางการของ Arduino อย่าลืมตรวจสอบ Arduino ของ John สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการเริ่มต้นใช้งาน Arduino ซอฟต์แวร์ทำอะไรได้บ้าง ซอฟต์แวร์ชิ้นเล็ก ๆ ที่อัปโหลดไปยัง Arduino จะควบคุมเซอร์โว ได้รับไบต์เดียวผ่านการเชื่อมต่อแบบอนุกรมผ่านสาย USB หากได้รับค่า 5 แขนเซอร์โวจะเคลื่อนไปข้างหน้าและข้างหลังห้าครั้ง ดังนั้นค่าสูงสุดที่จะส่งคือ 255. Program the Ardiuno ดังนั้นฉันคิดว่าคุณได้ดาวน์โหลดและติดตั้ง Arduino IDE ล่าสุดจาก Arduino.cc สำหรับตอนนี้เป็นเวอร์ชัน 0010 Alpha หากต้องการขับเซอร์โวให้สบายขึ้น คุณต้องดาวน์โหลดไลบรารี่ คุณสามารถหาได้จาก Arduino Playground เปิดเครื่องรูดและใส่โฟลเดอร์ใน …/arduino-0010/hardware/libraries/

  • ต่อ Arduino กับพีซีของคุณด้วยสาย USB
  • เปิด IDE และเริ่มร่างใหม่ Sketch คือ Arduino พูดสำหรับโปรแกรม เลือกไฟล์ -> ใหม่
  • เลือกอุปกรณ์อนุกรมที่เหมาะสม (เครื่องมือ -> พอร์ตอนุกรม) ขึ้นอยู่กับสภาพแวดล้อมของคุณ สำหรับฉันมันคือ /dev/tty.usbserial-A4001JAh
  • ดาวน์โหลดไฟล์ต้นฉบับที่แนบมาแล้ววางลงในแบบร่างใหม่ กดปุ่มบันทึก
  • กดปุ่มยืนยัน ซึ่งจะรวบรวมภาพสเก็ตช์ของคุณเป็นไฟล์ฐานสิบหกที่สามารถถ่ายโอนไปยัง Arduino ของคุณได้
  • กดปุ่มอัปโหลดเพื่อถ่ายโอนภาพร่างของคุณไปยัง Arduino

กำลังทดสอบ ตอนนี้ hitcounter ของคุณพร้อมสำหรับการดำเนินการบางอย่างแล้ว มาดูกันว่าจะได้ผลไหม

  • กดปุ่มมอนิเตอร์แบบอนุกรม
  • เลือกกล่องข้อความข้างปุ่มส่ง
  • กดปุ่มแท็บแล้วส่ง
  • ถึงตอนนี้แขนเซอร์โวควรเดินหน้าและถอยหลัง

วุ้ย. นั่นเป็นส่วนที่ยากที่สุด สำหรับตอนนี้ คุณสามารถส่งไบต์ไปยัง Arduino และเซอร์โวเวฟมาที่คุณ ถัดมาคือการหาสิ่งที่คุณต้องการเรียกกระดิ่ง เราเกือบจะเสร็จแล้ว

ขั้นตอนที่ 5: ทำให้เป็น Hitcounter

ในการทำให้เป็น Hitcounter สำหรับเว็บไซต์ของคุณ เราต้องการโค้ดขนาดเล็กสองส่วน หนึ่งสองสร้างและดูแลตัวนับและวินาทีเพื่อดึงค่าของตัวนับและส่งไปยัง Arduino

หมายเหตุ: หากคุณไม่คุ้นเคยกับ Python หรือ PHP สคริปต์สามารถย้ายไปยังภาษาการเขียนโปรแกรมที่คุณชื่นชอบได้อย่างง่ายดายตัวนับ นี่คือสคริปต์ PHP ขนาดเล็กที่อ่านค่าจากไฟล์ (hitcounter.txt) เพิ่มขึ้นและเขียน มันกลับไปที่ไฟล์. นั่นคือทั้งหมดที่จำเป็น ไฟล์นี้สามารถบันทึกเป็น counter.php บนเซิร์ฟเวอร์ของคุณเป็นต้น จากนั้นคุณสามารถเริ่มการนับโดยเว็บเบราว์เซอร์ของคุณชี้ไปที่ https://www.youdomain.com/counter.php ฉันรวมข้อมูลโค้ดนี้ในบล็อก WordPress ของฉัน $hits = ไฟล์($count_my_page); $hit = ตัดแต่ง($hits[0]); $hit++; $fp = fopen($count_my_page, "w"); fputs($fp, "$hit"); fclose($fp); ก้อง $hit; ?>รหัสกาว ข้อมูลโค้ดต่อไปนี้ใช้เพื่อดึงตัวนับ ฉันใช้ Python แต่ทุกอย่างน่าจะใช้ได้ มันเปิดการเชื่อมต่อ HTTP และดึงข้อมูล hitcounter.txt หากค่าเปลี่ยนไปตั้งแต่การดึงข้อมูลครั้งล่าสุด ค่าต่างจะถูกคำนวณและผลักไปที่ Arduino สิ่งนี้จะทำทุก ๆ สิบวินาทีจนกว่าคุณจะขัดจังหวะสคริปต์ด้วย crtl-c ปรับ myUrl และการเชื่อมต่อแบบอนุกรมด้านล่างตามความต้องการของคุณ # # ดึงตัวนับ # เวลานำเข้านำเข้า urllib นำเข้าซีเรียล # การเชื่อมต่ออนุกรม usb กับ arduino ser = serial. Serial ('/dev/tty.usbserial-A4001JAh', 9600) myUrl = 'https://tinkerlog.com/hitcounter.txt ' last_counter = urllib.urlopen(myUrl).read() while (True): _ counter = urllib.urlopen(myUrl).read() _ delta = int(counter) - int(last_counter) _ print "ตัวนับ: %s, delta: %s" % (ตัวนับ, delta) _ ser.write(chr(ord(chr(delta)))) _ last_counter = counter _ time.sleep(10) ฉันไม่สามารถอัปโหลดไฟล์ที่มีนามสกุล php ได้ ดังนั้นคุณ ต้องเปลี่ยนชื่อ counterphp.txt เป็น counter.php หาก Arduino ของคุณยังคงเชื่อมต่ออยู่กับพีซี ให้เริ่มสคริปต์ Python เพื่อดึง Hitcounter ของคุณ..>python counter.py และคุณควรเห็นผลลัพธ์ของตัวนับ หากคุณชี้เบราว์เซอร์ไปที่ URL ของ counter.php และกดรีโหลด คุณควรได้ยินเสียง Hitcounter ของคุณดัง ใช่ ตอนนี้เราทำเสร็จแล้ว ถึงเวลาเอนหลังและสนุกกับงานของเรา

ขั้นตอนที่ 6: บทสรุป

บทสรุป
บทสรุป

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

หวังว่าคุณจะสนุกกับมัน