สารบัญ:
- ขั้นตอนที่ 1: วัสดุ:
- ขั้นตอนที่ 2: ไดอะแกรมบล็อกระบบ:
- ขั้นตอนที่ 3: การทำงานของระบบ:
- ขั้นตอนที่ 4: ด้านกลศาสตร์
- ขั้นตอนที่ 5: การอ่านแรงดันไฟฟ้า:
- ขั้นตอนที่ 6: การเขียนโปรแกรม Arduino:
- ขั้นตอนที่ 7: การเขียนโปรแกรม Raspberry Pi 3:
- ขั้นตอนที่ 8: โครงการไฟฟ้า:
- ขั้นตอนที่ 9: ผลลัพธ์:
วีดีโอ: การสร้างแรงดันไฟฟ้าด้วยจักรยาน Ergometer: 9 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
รายละเอียดเพิ่มเติมของโครงการประกอบด้วยการประกอบ "เกม" โดยมีวัตถุประสงค์เพื่อเหยียบจักรยานยนต์ที่มีเครื่องวัดความเร็วลมที่เชื่อมต่อกับเครื่องกำเนิดไฟฟ้าและโคมไฟที่เปิดใช้งานเมื่อความเร็วรอบเครื่องยนต์เพิ่มขึ้น ซึ่งเกิดขึ้นจากการปั่นด้วยจักรยาน ระบบนี้ใช้การอ่านผ่านพอร์ตแอนะล็อกของ Arduino Mega ซึ่งสร้างแรงดันไฟฟ้าทันที จากนั้นส่งข้อมูลนี้ไปยัง Raspberry Pi 3 ผ่านการสื่อสารแบบอนุกรม RX-TX และการเปิดใช้งานหลอดไฟผ่านรีเลย์ในเวลาต่อมา
ขั้นตอนที่ 1: วัสดุ:
- 1 ราสเบอร์รี่ Pi 3;
- 1 Arduino เมกะ 2560;
- 1 รีเลย์ชิลด์พร้อม 10 รีเลย์ 12 V;
- 10 หลอดไส้ 127 V;
- 1 จักรยาน Ergometer;
- 1 เครื่องใช้ไฟฟ้า (Generator) 12 V;
- ตัวต้านทาน (1x1kΩ, 2x10kΩ);
- 1 ตัวเก็บประจุด้วยไฟฟ้า 10 µF;
- 1 ซีเนอร์ไดโอด 5.3 V;
- สายเคเบิล 1.5 มม. (แดง ดำ น้ำตาล);
- 1 หอ MDF พร้อมรองรับ 10 หลอด
ขั้นตอนที่ 2: ไดอะแกรมบล็อกระบบ:
ขั้นตอนที่ 3: การทำงานของระบบ:
ระบบนี้อิงตามการเปลี่ยนแปลงของพลังงานจลน์ที่เกิดขึ้นเมื่อขี่จักรยานเป็นพลังงานไฟฟ้าซึ่งมีหน้าที่ในการสั่งงานรีเลย์ที่จะเปิดไฟ
แรงดันไฟฟ้าที่สร้างโดยเครื่องกำเนิดไฟฟ้านั้นอ่านโดยพินอะนาล็อกของ Arduino และส่งผ่าน RX-TX ไปยัง Raspberry Pi การเปิดใช้งานรีเลย์เป็นสัดส่วนกับแรงดันไฟฟ้าที่สร้างขึ้น - ยิ่งแรงดันไฟฟ้าสูงขึ้น รีเลย์ก็จะยิ่งทำงานมากขึ้นและหลอดไฟจะสว่างขึ้น
ขั้นตอนที่ 4: ด้านกลศาสตร์
ในการเชื่อมต่อเครื่องกำเนิดไฟฟ้ากระแสตรงเข้ากับจักรยานด้วยกลไก ระบบสายพานต้องถูกแทนที่ด้วยระบบที่ใช้กับจักรยานทั่วไป (ประกอบด้วยเม็ดมะยม โซ่ และเฟือง) แผ่นโลหะเชื่อมเข้ากับโครงจักรยานเพื่อให้ยึดเครื่องยนต์ด้วยสกรู หลังจากนั้นปีกนกถูกเชื่อมเข้ากับเพลาเครื่องกำเนิดไฟฟ้าเพื่อให้สามารถวางโซ่ได้โดยเชื่อมต่อระบบเหยียบกับเครื่องกำเนิดไฟฟ้า
ขั้นตอนที่ 5: การอ่านแรงดันไฟฟ้า:
ในการอ่านแรงดันไฟฟ้าของเครื่องกำเนิดไฟฟ้าโดยใช้ Arduino จำเป็นต้องเชื่อมต่อขั้วบวกของเครื่องไฟฟ้ากับพิน A0 ของคอนโทรลเลอร์และขั้วลบกับ GND เพื่อหลีกเลี่ยงไม่ให้แรงดันไฟฟ้าสูงสุดของเครื่องกำเนิดไฟฟ้ามากกว่า 5 V ของ พิน Arduino, ตัวกรองแรงดันไฟที่ใช้ตัวเก็บประจุ 10 µF, ตัวต้านทาน 1 kΩ และไดโอดซีเนอร์ 5.3 V ถูกสร้างขึ้นและเชื่อมต่อระหว่างคอนโทรลเลอร์กับเครื่องกำเนิดไฟฟ้า เฟิร์มแวร์ที่โหลดใน Arduino นั้นง่ายมากและประกอบด้วยการอ่านพอร์ตอะนาล็อกเท่านั้น คูณค่าที่อ่านด้วยค่าคงที่ 0.0048828125 (5/1024 นั่นคือแรงดันไฟฟ้า GPIO ของ Arduino หารด้วยจำนวนบิตของพอร์ตอะนาล็อก) และส่ง ตัวแปรเป็น Serial – รหัสจะมีอยู่ในบทความ
ขั้นตอนการเปิดใช้งานการสื่อสาร RX-TX ใน Raspberry Pi นั้นซับซ้อนกว่าเล็กน้อย และคุณต้องทำตามขั้นตอนที่อธิบายไว้ในลิงก์ โดยสังเขป คุณต้องแก้ไขไฟล์ชื่อ “inittab” – ซึ่งอยู่ใน “/etc/inittab” – แสดงความคิดเห็นในบรรทัด “T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100” (หากไฟล์นั้นไม่ใช่ ก่อตั้งขึ้นในระบบปฏิบัติการของ Raspberry คุณต้องป้อนคำสั่ง: “sudo leafpad /boot/config.txt” และต่อท้ายบรรทัด “enable_uart=1” ต่อท้ายไฟล์) เมื่อเสร็จแล้ว คุณต้องเปิด LX Terminal อีกครั้งและปิดใช้งาน Serial ด้วยคำสั่ง "sudo systemctl stop [email protected]" และ "sudo systemctl disable [email protected]" หลังจากนั้นคุณต้องรันคำสั่ง "sudo leafpad /boot/cmdline.txt" ให้ลบบรรทัด "console = serial0, 115200" บันทึกไฟล์และรีสตาร์ทอุปกรณ์ เพื่อให้การสื่อสาร RX-TX เป็นไปได้ ต้องติดตั้งไลบรารีอนุกรมบน Raspberry Pi ด้วยคำสั่ง "sudo apt-get install -f python-serial" และนำเข้าไลบรารีลงในโค้ดโดยแทรกบรรทัด "import serial", เริ่มต้นอนุกรมโดยใส่บรรทัด "ser = serial. Serial (" / dev / ttyS0 ", 9600)" และอ่านค่าแรงดันไฟฟ้าที่ส่งโดย Arduino โดยใช้คำสั่ง “ser.readline()” – รหัสเต็มที่ใช้ ใน Raspberry จะวางจำหน่ายในตอนท้ายของบทความ
ตามขั้นตอนที่อธิบายไว้ข้างต้น ขั้นตอนการอ่านและส่งแรงดันไฟฟ้าจะเสร็จสมบูรณ์
ขั้นตอนที่ 6: การเขียนโปรแกรม Arduino:
ตามที่ระบุไว้ก่อนหน้านี้ รหัสที่รับผิดชอบในการอ่านแรงดันไฟฟ้าที่สร้างขึ้นเมื่อปั่นจักรยานนั้นง่ายมาก
ประการแรก จำเป็นต้องเลือกพิน A0 เป็นตัวอ่านแรงดันไฟฟ้า
ในฟังก์ชัน "การตั้งค่าเป็นโมฆะ ()" คุณต้องตั้งค่าพิน A0 เป็น INPUT ด้วยคำสั่ง "pinMode(เซ็นเซอร์, INPUT)" และเลือกความเร็วในการส่งพอร์ตอนุกรมโดยใช้คำสั่ง "Serial.begin(9600)"
ใน "void loop ()" ฟังก์ชัน "Serial.flush ()" ถูกใช้เพื่อล้างบัฟเฟอร์ทุกครั้งที่ยุติการส่งข้อมูลผ่านซีเรียล การอ่านค่าแรงดันไฟฟ้าดำเนินการโดยฟังก์ชัน "analogRead (เซ็นเซอร์)" – จำไว้ว่าจำเป็นต้องแปลงค่าที่อ่านโดยพอร์ตอะนาล็อกเป็นโวลต์ – กระบวนการที่อ้างถึงในส่วน "แรงดันการอ่าน" ของบทความ
นอกจากนี้ ในฟังก์ชัน "void loop ()" จำเป็นต้องแปลงตัวแปร x จาก float เป็น string เนื่องจากเป็นวิธีเดียวในการส่งตัวแปรผ่าน RX-TX ขั้นตอนสุดท้ายในฟังก์ชันวนรอบคือการพิมพ์สตริงในพอร์ตอนุกรมเพื่อให้สามารถส่งไปยัง Raspberry - สำหรับสิ่งนี้ คุณต้องใช้ฟังก์ชัน "Serial.println (y)" มีการเพิ่มบรรทัด "delay (100)" ลงในโค้ดเท่านั้นเพื่อให้ส่งตัวแปรในช่วงเวลา 100 มิลลิวินาที - หากไม่ปฏิบัติตามเวลานี้ Serial overload จะเกิดขึ้นทำให้เกิดการขัดข้องในโปรแกรม
voltage_read.ino
เซ็นเซอร์ลอย = A0; |
voidsetup() { |
pinMode(เซ็นเซอร์, INPUT); |
Serial.begin(9600); |
} |
โมฆะลูป () { |
Serial.flush(); |
float x=analogRead(เซ็นเซอร์)*0.0048828125*16.67; |
สตริง y=""; |
y+=x; |
Serial.println(y); |
ล่าช้า (100); |
} |
ดู rawvoltage_read.ino โฮสต์ด้วย ❤ โดย GitHub
ขั้นตอนที่ 7: การเขียนโปรแกรม Raspberry Pi 3:
lamps_bike.py
import os #import the os library (ใช้เพื่อล้างหน้าจอเมื่อจำเป็น) |
นำเข้า RPi. GPIOas gpio #import ไลบรารีที่ใช้ในการควบคุม GPIO. ของ Raspnerry |
นำเข้าไลบรารีซีเรียล #import ที่รับผิดชอบด้านการสื่อสารแบบอนุกรม |
เวลานำเข้า #นำเข้าห้องสมุด ที่ทำให้สามารถใช้ฟังก์ชั่นการหน่วงเวลาได้ |
นำเข้ากระบวนการย่อย #นำเข้าไลบรารีที่รับผิดชอบในการเล่นเพลง |
#เริ่มซีรี่ย์ |
ser = serial. Serial("/dev/ttyS0", 9600) #define ชื่ออุปกรณ์และอัตราบอด |
#หน้าจอใส |
clear = lambda: os.system('ชัดเจน') |
#เซ็ตพินสำหรับคอนโทรลรีเลย์ |
gpio.setmode(gpio.บอร์ด) |
gpio.setup(11, gpio. OUT) #หลอดไฟ10 |
gpio.setup(12, gpio. OUT) #หลอดไฟ 9 |
gpio.setup(13, gpio. OUT) #โคมไฟ8 |
gpio.setup(15, gpio. OUT) #หลอดไฟ7 |
gpio.setup(16, gpio. OUT) #โคมไฟ6 |
gpio.setup(18, gpio. OUT) #หลอดไฟ5 |
gpio.setup(19, gpio. OUT) #หลอดไฟ4 |
gpio.setup(21, gpio. OUT) #โคมไฟ3 |
gpio.setup(22, gpio. OUT) #โคมไฟ2 |
gpio.setup(23, gpio. OUT) #หลอดไฟ 1 |
#เริ่มบันทึก |
name=["ไม่มี"]*10 |
แรงดันไฟฟ้า=[0.00]*10 |
#อ่านบันทึกไฟล์ |
f =open('บันทึก', 'r') |
สำหรับ i inrange(10): #the 10 คะแนนที่ดีที่สุดปรากฏบนรายการ |
ชื่อ=f.readline() |
ชื่อ=ชื่อ[:len(ชื่อ)-1] |
แรงดันไฟฟ้า=f.readline() |
แรงดันไฟฟ้า=ลอย(แรงดันไฟฟ้า[:len(แรงดันไฟฟ้า)-1]) |
f.close() |
แจ่มใส() |
#ตั้งค่าแรงดันไฟสูงสุด |
สูงสุด=50.00 |
#ปิดไฟ |
สำหรับฉันอยู่ในช่วง (11, 24, 1): |
ถ้า i!=14and i!=17and i!=20: |
gpio.output(i, gpio. HIGH) #set to HIGH รีเลย์จะปิด |
#เริ่ม |
ในขณะที่จริง: |
#หน้าจอเริ่มต้น |
พิมพ์"บันทึก:\n" |
สำหรับฉันอยู่ในช่วง(10): |
พิมพ์ชื่อ, ":", แรงดันไฟฟ้า, "V" |
current_name=raw_input("เขียนชื่อของคุณเพื่อเริ่มต้น: ") |
แจ่มใส() |
#เปลี่ยนค่าสูงสุด |
ถ้า current_name =="max": |
max=input("เขียนแรงดันสูงสุด: (ทศนิยม 2 ตำแหน่ง)") |
แจ่มใส() |
อื่น: |
#เริ่มเตือน |
สำหรับฉันอยู่ในช่วง (11, 24, 1): # การวนซ้ำเริ่มต้นใน PIN 11 และหยุดใน PIN 24 |
if i!=14and i!=17and i!=20: #PIN 14 and 20 เป็นพิน GND และ 20 เป็นพิน 3.3 V |
gpio.output(i, gpio. LOW) #เปิดหลอดไฟ |
เวลานอน(0.5) |
k=10 |
สำหรับฉันอยู่ในช่วง (23, 10, -1): |
แจ่มใส() |
ถ้า i!=14and i!=17and i!=20: |
subprocess. Popen(['aplay', 'Audios/'+str(k)+'.wav']) |
เวลานอน(0.03) |
แจ่มใส() |
print"Prepare!\n", k |
เวลานอน(1) |
k-=1 |
gpio.output(i, gpio. HIGH) #ปิดไฟ (ทีละดวง) |
subprocess. Popen(['aplay', 'Audios/go.wav']) #เล่นเพลงเริ่มต้น |
เวลานอน(0.03) |
แจ่มใส() |
พิมพ์ "ไป!" |
เวลานอน(1) |
แจ่มใส() |
#อ่านค่าแรงดัน |
current_voltage=0.00 |
แรงดันไฟ 1=0.00 |
สำหรับฉันอยู่ในช่วง (200): |
ser.flushInput() |
ก่อนหน้า=แรงดันไฟฟ้า1 |
voltage1=float(ser.readline()) #collects ข้อมูลของ Arduino ที่ถ่ายโอนโดย RX-TX |
แจ่มใส() |
แรงดันการพิมพ์1, "V" |
ถ้าVoltage1>current_voltage: |
current_voltage=voltage1 |
# ขึ้นอยู่กับแรงดันไฟฟ้าที่สร้างขึ้น หลอดไฟจะสว่างขึ้น |
ถ้า voltage1<max/10: |
สำหรับฉันอยู่ในช่วง (11, 24, 1): |
ถ้า i!=14and i!=17and i!=20: |
gpio.output(i, gpio. HIGH) |
ถ้า voltage1>=max/10: |
gpio.output(11, gpio. LOW) |
สำหรับฉันอยู่ในช่วง (12, 24, 1): |
ถ้า i!=14and i!=17and i!=20: |
gpio.output(i, gpio. HIGH) |
ถ้า voltage1>=2*max/10: |
สำหรับฉันอยู่ในช่วง (11, 13, 1): |
gpio.output(i, gpio. LOW) |
สำหรับฉันอยู่ในช่วง (13, 24, 1): |
ถ้า i!=14and i!=17and i!=20: |
gpio.output(i, gpio. HIGH) |
ถ้า voltage1>=3*max/10: |
สำหรับฉันอยู่ในช่วง (11, 14, 1): |
gpio.output(i, gpio. LOW) |
สำหรับฉันอยู่ในช่วง (15, 24, 1): |
ถ้าฉัน!=17และ ฉัน!=20: |
gpio.output(i, gpio. HIGH) |
ถ้า voltage1>=4*max/10: |
สำหรับฉันอยู่ในช่วง (11, 16, 1): |
ถ้าฉัน!=14: |
gpio.output(i, gpio. LOW) |
สำหรับฉันอยู่ในช่วง (16, 24, 1): |
ถ้าฉัน!=17และ ฉัน!=20: |
gpio.output(i, gpio. HIGH) |
ถ้า voltage1>=5*max/10: |
สำหรับฉันอยู่ในช่วง (11, 17, 1): |
ถ้าฉัน!=14: |
gpio.output(i, gpio. LOW) |
สำหรับฉันอยู่ในช่วง (18, 24, 1): |
ถ้าฉัน!=20: |
gpio.output(i, gpio. HIGH) |
ถ้า voltage1>=6*max/10: |
สำหรับฉันอยู่ในช่วง (11, 19, 1): |
ถ้าฉัน!=14และ ฉัน!=17: |
gpio.output(i, gpio. LOW) |
สำหรับฉันอยู่ในช่วง(19, 24, 1): |
ถ้าฉัน!=20: |
gpio.output(i, gpio. HIGH) |
ถ้า voltage1>=7*max/10: |
สำหรับฉันอยู่ในช่วง (11, 20, 1): |
ถ้าฉัน!=14และ ฉัน!=17: |
gpio.output(i, gpio. LOW) |
สำหรับฉันอยู่ในช่วง (21, 24, 1): |
gpio.output(i, gpio. HIGH) |
ถ้า voltage1>=8*max/10: |
สำหรับฉันอยู่ในช่วง (11, 22, 1): |
ถ้า i!=14and i!=17and i!=20: |
gpio.output(i, gpio. LOW) |
สำหรับฉันอยู่ในช่วง (22, 24, 1): |
gpio.output(i, gpio. HIGH) |
ถ้า voltage1>=9*max/10: |
สำหรับฉันอยู่ในช่วง (11, 23, 1): |
ถ้า i!=14and i!=17and i!=20: |
gpio.output(i, gpio. LOW) |
gpio.output(23, gpio.สูง) |
ถ้า voltage1>=max: |
สำหรับฉันอยู่ในช่วง (11, 24, 1): |
ถ้า i!=14and i!=17and i!=20: |
gpio.output(i, gpio. LOW) |
ถ้าแรงดันไฟฟ้า1 |
หยุดพัก |
#ปิดไฟ |
สำหรับฉันอยู่ในช่วง (11, 24, 1): |
ถ้า i!=14and i!=17and i!=20: |
gpio.output(i, gpio. HIGH) |
#เพลงแห่งชัยชนะ |
ถ้า current_voltage>=max: |
subprocess. Popen(['aplay', 'Audios/rocky.wav']) |
เวลานอน(0.03) |
แจ่มใส() |
print"ดีมาก คุณชนะ!"% (u'\u00c9', u'\u00ca', u'\u00c2') |
สำหรับฉันอยู่ในช่วง(10): |
สำหรับ j inrange (11, 24, 1): |
ถ้า j!=14and j!=17and j!=20: |
gpio.output(j, gpio. LOW) |
เวลานอน (0.05) |
สำหรับ j inrange (11, 24, 1): |
ถ้า j!=14and j!=17and j!=20: |
gpio.output(j, gpio. HIGH) |
เวลานอน (0.05) |
เวลานอน(0.5) |
subprocess. Popen(['aplay', 'Audios/end.wav']) |
เวลานอน(0.03) |
แจ่มใส() |
พิมพ์"จบเกม…\n", current_voltage, "V" |
#บันทึก |
เวลานอน(1.2) |
ถึง=0 |
สำหรับฉันอยู่ในช่วง(10): |
ถ้า current_voltage > แรงดันไฟฟ้า: |
ถึง+1 |
temp_voltage=แรงดันไฟฟ้า |
แรงดันไฟฟ้า=current_voltage |
current_voltage=temp_voltage |
temp_name=name |
ชื่อ=current_name |
current_name=temp_name |
ถ้าถึง >0: |
subprocess. Popen(['aplay', 'Audios/record.wav']) |
เวลานอน(0.03) |
แจ่มใส() |
f =open('บันทึก', 'w') |
สำหรับฉันอยู่ในช่วง(10): |
f.write(ชื่อ) |
f.write("\n") |
f.write(str(แรงดันไฟฟ้า)) |
f.write("\n") |
f.close() |
แจ่มใส() |
ดู rawlamps_bike.py โฮสต์ด้วย ❤ โดย GitHub
ขั้นตอนที่ 8: โครงการไฟฟ้า:
Arduino และ Raspberry Pi 3 ใช้พลังงานจากแหล่งจ่าย 5V ที่มีกระแสไฟ 3A
วงจรไฟฟ้าเริ่มต้นด้วยการเชื่อมต่อเครื่องกำเนิดไฟฟ้ากระแสตรง (ควบคู่ไปกับจักรยาน) กับ Arduino ผ่านตัวกรองแรงดันไฟที่ประกอบด้วยไดโอดซีเนอร์ 5.3V ตัวเก็บประจุ 10μF และตัวต้านทาน 1kΩ - อินพุตตัวกรองเชื่อมต่อกับ ขั้วต่อเครื่องกำเนิดไฟฟ้าและเอาต์พุตเชื่อมต่อกับพอร์ต A0 และ GND ของคอนโทรลเลอร์
Arduino เชื่อมต่อกับ Raspberry ผ่านการสื่อสาร RX-TX - ดำเนินการผ่านตัวแบ่งตัวต้านทานโดยใช้ตัวต้านทาน10kΩ (จำเป็นโดยพอร์ตของคอนโทรลเลอร์ที่ทำงานที่แรงดันไฟฟ้าต่างกัน)
GPIO ของ Raspberry Pi เชื่อมต่อกับรีเลย์ที่รับผิดชอบในการเปิดหลอดไฟ "COM" ของรีเลย์ทั้งหมดเชื่อมต่อถึงกันและเชื่อมต่อกับเฟส (กริดไฟฟ้ากระแสสลับ) และ "N. O" (ปกติเปิด) ของรีเลย์แต่ละตัวเชื่อมต่อกับหลอดไฟแต่ละดวง และความเป็นกลางของกริดไฟฟ้ากระแสสลับเชื่อมต่อกับหลอดไฟทั้งหมด ดังนั้น เมื่อ GPIO ที่รับผิดชอบสำหรับรีเลย์แต่ละตัวถูกเปิดใช้งาน รีเลย์จะเปลี่ยนเป็นเฟสของเครือข่าย AC และเปิดหลอดไฟที่เกี่ยวข้อง
ขั้นตอนที่ 9: ผลลัพธ์:
หลังจากการประกอบขั้นสุดท้ายของโครงการ ได้รับการตรวจสอบแล้วว่าทำงานได้ตามที่คาดไว้ – ตามความเร็วที่ผู้ใช้เหยียบจักรยาน แรงดันไฟฟ้าถูกสร้างขึ้นและไฟส่องสว่างมากขึ้น
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
จอแสดงผล Ergometer บน Arduino อย่างง่ายพร้อมคำติชมที่แตกต่าง: 7 ขั้นตอน (พร้อมรูปภาพ)
จอแสดงผล Ergometer ที่ใช้ Arduino อย่างง่ายพร้อมผลตอบรับที่แตกต่าง: การออกกำลังกายแบบคาร์ดิโอนั้นน่าเบื่อ โดยเฉพาะเมื่อออกกำลังกายในที่ร่ม โครงการที่มีอยู่หลายโครงการพยายามบรรเทาปัญหานี้ด้วยการทำสิ่งเจ๋งๆ เช่น การเชื่อมต่อเครื่องวัดความเร็วลมกับคอนโซลเกม หรือแม้แต่การจำลองการขี่จักรยานจริงใน VR น่าตื่นเต้นอย่างที่
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-