Агуулгын хүснэгт:
- Алхам 1: Материал:
- Алхам 2: Системийн блокуудын диаграм:
- Алхам 3: Системийн ажиллагаа:
- Алхам 4: Механикийн талууд
- Алхам 5: Хүчдэлийн уншилт:
- Алхам 6: Arduino програмчлал:
- Алхам 7: Raspberry Pi 3 програмчлал:
- Алхам 8: Цахилгаан схем:
- Алхам 9: Үр дүн:
Видео: Эргометрийн дугуйгаар хүчдэл үүсгэх: 9 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Төслийн боловсруулалт нь дугуйн дөрөөгөөр явагддаг хөдөлгүүрийн хурд нэмэгдэхийн хэрээр идэвхждэг чийдэнгийн цамхаг, генераторт холбогдсон эргометр дугуйгаар дөрөө хийх зорилготой "тоглоом" угсрахаас бүрдсэн байв. Энэхүү систем нь Arduino Mega-ийн аналог портоор дамжуулж шууд хүчдэл үүсгэж, дараа нь энэхүү өгөгдлийг RX-TX цуваа холболтоор Raspberry Pi 3 руу дамжуулж, дараа нь релейгээр чийдэнг идэвхжүүлэхэд үндэслэсэн болно.
Алхам 1: Материал:
- 1 Raspberry Pi 3;
- 1 Arduino Mega 2560;
- 10 реле бүхий 1 буухиа бамбай 12 В;
- 10 улайсдаг чийдэн 127 В;
- 1 эргометр дугуй;
- 1 Цахилгаан машин (Генератор) 12 В;
- Эсэргүүцэл (1x1kΩ, 2x10kΩ);
- 1 электролитийн конденсатор 10 μF;
- 1 Zener диод 5.3 В;
- 1.5 мм кабель (улаан, хар, хүрэн);
- 10 чийдэнгийн дэмжлэгтэй БСХС -ийн 1 цамхаг.
Алхам 2: Системийн блокуудын диаграм:
Алхам 3: Системийн ажиллагаа:
Энэхүү систем нь дугуй унах үед бий болсон кинетик энергийг цахилгаан эрчим хүч болгон хувиргахад суурилдаг бөгөөд энэ нь лампыг асаах реле идэвхжүүлэх үүрэгтэй юм.
Генераторын үүсгэсэн хүчдэлийг Arduino-ийн аналог зүүгээр уншиж RX-TX-ээр Raspberry Pi руу илгээдэг. Релейг идэвхжүүлэх нь үүсгэсэн хүчдэлтэй пропорциональ байна - хүчдэл өндөр байх тусам илүү их реле асах бөгөөд илүү их чийдэн асах болно.
Алхам 4: Механикийн талууд
Тогтмол гүйдлийн генераторыг унадаг дугуйтай хослуулахын тулд туузны системийг ердийн унадаг дугуй (титэм, гинж, бүлүүрээс бүрдсэн) системээр солих шаардлагатай байв. Хөдөлгүүрийг боолтоор бэхлэхийн тулд дугуйн хүрээнд металл хавтанг гагнажээ. Үүний дараа бүлүүрийг генераторын босоо ам руу гагнаж, гинжийг байрлуулж, дөрөө системийг генератортой холбосон.
Алхам 5: Хүчдэлийн уншилт:
Генераторын хүчдэлийг Arduino ашиглан уншихын тулд цахилгаан машины эерэг туйлыг хянагчийн A0 зүү, сөрөг туйлыг GND -тэй холбох шаардлагатай байдаг. Arduino тээглүүр, 10 μF конденсатор, 1 кОм эсэргүүцэл, 5.3 В -ийн Zener диод ашигладаг хүчдэлийн шүүлтүүрийг хянагч ба генераторын хооронд холбосон. Arduino -д ачаалагдсан програм хангамж нь маш энгийн бөгөөд зөвхөн аналог портыг уншихаас гадна уншсан утгыг 0.0048828125 (5/1024, өөрөөр хэлбэл Arduino -ийн GPIO хүчдэлийг аналог портын битийн тоонд хувааж) үржүүлж, Цуваа руу хувьсах - кодыг нийтлэлд ашиглах боломжтой болно.
Raspberry Pi дээр RX-TX холболтыг идэвхжүүлэх журам нь арай илүү төвөгтэй бөгөөд та линк дээр тайлбарласан процедурыг дагаж мөрдөх ёстой. Товчхондоо, "/etc/inittab" хэсэгт байрлах "inittab" нэртэй файлыг засах хэрэгтэй бөгөөд "T0: 23: respawn:/sbin/getty -L ttyAMA0 115200 vt100" гэсэн мөрийг тайлбарлана уу (хэрэв файл нь тийм биш бол). Raspberry -ийн OS дээр байгуулагдсан тул та "sudo leafpad /boot/config.txt" гэсэн командыг оруулаад файлын төгсгөлд "enable_uart = 1" гэсэн мөрийг хавсаргана уу). Үүнийг хийсний дараа та LX терминалыг дахин нээж, "sudo systemctl stop [email protected]" ба "sudo systemctl [email protected]ийг идэвхгүй болгох" командыг ашиглан цувралыг идэвхгүй болгох ёстой. Үүний дараа та "sudo leafpad /boot/cmdline.txt" тушаалыг гүйцэтгэж, "console = serial0, 115200" гэсэн мөрийг устгаад файлыг хадгалаад төхөөрөмжийг дахин эхлүүлэх хэрэгтэй. RX-TX холболт хийх боломжтой байхын тулд Raspberry Pi дээр "sudo apt-get install -f python-serial" командыг ашиглан Цуваа номын санг суулгаж, "цуваа импортлох" мөрийг оруулах замаар номын санг код руу импортлох ёстой., "ser = serial. Serial (" / dev / ttyS0 ", 9600)" гэсэн мөрийг оруулаад цувралыг эхлүүлж, "ser.readline ()" тушаалыг ашиглан Arduino -аас илгээсэн хүчдэлийн уншилтыг ашиглана. Raspberry -г нийтлэлийн төгсгөлд ашиглах боломжтой болно.
Дээр тайлбарласан процедурын дагуу унших, дамжуулах хүчдэлийн алхам дууссан.
Алхам 6: Arduino програмчлал:
Өмнө дурьдсанчлан дугуй унах үед үүссэн хүчдэлийг унших үүрэгтэй код нь маш энгийн.
Нэгдүгээрт, хүчдэлийг унших үүрэгтэй A0 зүүг сонгох шаардлагатай.
"Void setup ()" функц дээр та "pinMode (мэдрэгч, INPUT)" командыг ашиглан A0 зүүг INPUT болгож, "Serial.begin (9600)" командыг ашиглан цуваа порт дамжуулах хурдыг сонгох хэрэгтэй.
"Void loop ()" хэсэгт "Serial.flush ()" функц нь цуваагаар мэдээлэл илгээхээ зогсоох бүрдээ буферийг цэвэрлэхэд ашиглагддаг; Хүчдэлийн уншилтыг "analogRead (мэдрэгч)" функцээр гүйцэтгэдэг - аналог портын уншсан утгыг вольт болгон хөрвүүлэх шаардлагатай гэдгийг санаж, өгүүллийн "унших хүчдэл" хэсэгт дурдсан болно.
Түүнчлэн, "void loop ()" функцэд R хувьсагчийг RX-TX-ээр илгээх цорын ганц арга зам учраас х хувьсагчийг float-аас string рүү хөрвүүлэх шаардлагатай байдаг. Давталтын функцын хамгийн сүүлийн алхам бол цуваа порт дахь мөрийг хэвлэх бөгөөд ингэснээр Raspberry руу илгээгдэх болно - үүний тулд та "Serial.println (y)" функцийг ашиглах ёстой. "Саатал (100)" гэсэн мөрийг зөвхөн кодыг нэмж оруулсан бөгөөд ингэснээр хувьсагчийг 100 мс -ийн интервалтайгаар илгээнэ. Хэрэв энэ хугацааг үл тоомсорловол Цувралын хэт ачаалал үүсч, програмд алдаа гарч болзошгүй юм.
хүчдэл_ унших.ino
хөвөх мэдрэгч = A0; |
voidsetup () { |
pinMode (мэдрэгч, оролт); |
Цуваа эхлэх (9600); |
} |
voidloop () { |
Serial.flush (); |
float x = analogRead (sensor)*0.0048828125*16.67; |
String y = ""; |
y+= x; |
Serial.println (y); |
саатал (100); |
} |
GitHub -аас ❤ зохион байгуулсан rawvoltage_read.ino -г үзэх
Алхам 7: Raspberry Pi 3 програмчлал:
lamp_bike.py
import os #import os os library (шаардлагатай үед дэлгэцийг цэвэрлэхэд ашигладаг) |
Raspiry -ийн GPIO -г хянахад ашигладаг RPi. GPIOas gpio #import номын санг импортлох |
цуваа холболтыг хариуцдаг импортын цуваа #импортын номын сан |
хойшлуулах функцийг ашиглах боломжтой болгодог импортын цаг #импортын номын сан |
импортлох дэд процесс #импортын номын сан нь дуунуудыг тоглуулах үүрэгтэй |
#цувралыг эхлүүлэх |
ser = serial. Serial ("/dev/ttyS0", 9600) #төхөөрөмжийн нэр болон дамжуулах хурдыг тодорхойлох |
#цэвэр дэлгэц |
clear = lambda: os.system ('тодорхой') |
#реле хянах зориулалттай тээглүүр |
gpio.setmode (gpio. BOARD) |
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 |
#бичлэгийг эхлүүлэх |
нэр = ["Байхгүй"]*10 |
хүчдэл = [0.00]*10 |
#бүртгэлийн файлыг уншина уу |
f = нээлттэй ('бичлэг', 'r') |
for i inrange (10): #шилдэг 10 оноо жагсаалтад гарч ирэв |
нэр = f.readline () |
нэр = нэр [: len (нэр )-1] |
хүчдэл = f.readline () |
хүчдэл = хөвөх (хүчдэл [: len (хүчдэл )-1]) |
f.clos () |
тодорхой () |
#хамгийн их хүчдэлийг тохируулна |
хамгийн их = 50.00 |
#чийдэнгээ унтраа |
for i inrange (11, 24, 1): |
хэрэв би! = 14 ба би! = 17 ба би! = 20: |
gpio.output (i, gpio. HIGH) #HIGH болгож, реле унтарсан |
#эхлүүлэх |
whileTrue: |
#анхны дэлгэц |
"Бичлэгүүд: / n" хэвлэх |
Миний хувьд (10): |
хэвлэх нэр , ":", хүчдэл , "V" |
current_name = raw_input ("Эхлэхийн тулд нэрээ бичнэ үү:") |
тодорхой () |
#Хамгийн их утгыг өөрчлөх |
хэрэв current_name == "max" бол: |
max = оролт ("Хамгийн их хүчдэлийг бичнэ үү: (2 аравтын орон)") |
тодорхой () |
өөр: |
#эхлэх анхааруулга |
for i inrange (11, 24, 1): #давталт нь ПИН 11 -ээс эхэлж, ПИН 24 -т зогсоно |
хэрэв i! = 14 ба i! = 17 ба i! = 20: #PIN 14 ба 20 нь GND зүү, 20 нь 3.3 В зүү юм |
gpio.output (i, gpio. LOW) #чийдэнг асаах |
цаг унтах (0.5) |
k = 10 |
i inrange (23, 10, -1): |
тодорхой () |
хэрэв би! = 14 ба би! = 17 ба би! = 20: |
дэд процесс. Нээлттэй (['aplay', 'Audios/'+str (k)+'. wav']) |
цаг унтах (0.03) |
тодорхой () |
"Бэлтгээрэй! / n" хэвлэх, k |
цаг унтах (1) |
k- = 1 |
gpio.output (i, gpio. HIGH) #чийдэнг унтраана (нэг нэгээр нь) |
subprocess. Popen (['aplay', 'Audios/go.wav']) #эхлэх хөгжмийг тоглуулдаг |
цаг унтах (0.03) |
тодорхой () |
"Яв!" гэж хэвлэх |
цаг унтах (1) |
тодорхой () |
#хүчдэл унших |
одоогийн_хүчдэл = 0.00 |
хүчдэл1 = 0.00 |
Миний хувьд (200): |
ser.flushInput () |
өмнөх = хүчдэл1 |
хүчдэл1 = хөвөх (ser.readline ()) #RX-TX-ээр дамжуулсан Arduino-ийн өгөгдлийг цуглуулдаг |
тодорхой () |
хэвлэх хүчдэл1, "V" |
хэрэв хүчдэл1> одоогийн_хүчдэл: |
одоогийн_хүчдэл = хүчдэл1 |
# үүсгэсэн хүчдэлээс хамааран илүү олон чийдэн асдаг. |
хэрэв хүчдэл1 <хамгийн их/10: |
for inrange (11, 24, 1): |
хэрэв би! = 14 ба би! = 17 ба би! = 20: |
gpio.output (i, gpio. HIGH) |
хэрэв хүчдэл1> = хамгийн их/10: |
gpio.output (11, gpio. LOW) |
i inrange (12, 24, 1): |
хэрэв би! = 14 ба би! = 17 ба би! = 20: |
gpio.output (i, gpio. HIGH) |
хэрэв хүчдэл1> = 2*хамгийн их/10: |
for i inrange (11, 13, 1): |
gpio.output (i, gpio. LOW) |
for i inrange (13, 24, 1): |
хэрэв би! = 14 ба би! = 17 ба би! = 20: |
gpio.output (i, gpio. HIGH) |
хэрэв хүчдэл1> = 3*хамгийн их/10: |
for inrange (11, 14, 1): |
gpio.output (i, gpio. LOW) |
for inrange (15, 24, 1): |
хэрэв би! = 17 ба би! = 20: |
gpio.output (i, gpio. HIGH) |
хэрэв хүчдэл1> = 4*хамгийн их/10: |
for i inrange (11, 16, 1): |
хэрэв би! = 14: |
gpio.output (i, gpio. LOW) |
i inrange (16, 24, 1): |
хэрэв би! = 17 ба би! = 20: |
gpio.output (i, gpio. HIGH) |
хэрэв хүчдэл1> = 5*хамгийн их/10: |
for i inrange (11, 17, 1): |
хэрэв би! = 14: |
gpio.output (i, gpio. LOW) |
for inrange (18, 24, 1): |
хэрэв би! = 20: |
gpio.output (i, gpio. HIGH) |
хэрэв хүчдэл1> = 6*хамгийн их/10: |
for i inrange (11, 19, 1): |
хэрэв би! = 14 ба би! = 17: |
gpio.output (i, gpio. LOW) |
for i inrange (19, 24, 1): |
хэрэв би! = 20: |
gpio.output (i, gpio. HIGH) |
хэрэв хүчдэл1> = 7*хамгийн их/10: |
for i inrange (11, 20, 1): |
хэрэв би! = 14 ба би! = 17: |
gpio.output (i, gpio. LOW) |
for i inrange (21, 24, 1): |
gpio.output (i, gpio. HIGH) |
хэрэв хүчдэл1> = 8*хамгийн их/10: |
for i inrange (11, 22, 1): |
хэрэв би! = 14 ба би! = 17 ба би! = 20: |
gpio.output (i, gpio. LOW) |
for inrange (22, 24, 1): |
gpio.output (i, gpio. HIGH) |
хэрэв хүчдэл1> = 9*хамгийн их/10: |
for i inrange (11, 23, 1): |
хэрэв би! = 14 ба би! = 17 ба би! = 20: |
gpio.output (i, gpio. LOW) |
gpio.output (23, gpio. HIGH) |
хэрэв хүчдэл1> = хамгийн их: |
for i inrange (11, 24, 1): |
хэрэв би! = 14 ба би! = 17 ба би! = 20: |
gpio.output (i, gpio. LOW) |
хэрэв хүчдэл1 |
завсарлага |
#чийдэнгээ унтраа |
for inrange (11, 24, 1): |
хэрэв би! = 14 ба би! = 17 ба би! = 20: |
gpio.output (i, gpio. HIGH) |
#ялалтын хөгжим |
хэрэв current_voltage> = max: |
дэд процесс. Нээлттэй (['aplay', 'Audios/rocky.wav']) |
цаг унтах (0.03) |
тодорхой () |
"МАШ САЙН, ТА ЯЛАА!"% (u '\u00c9', u '\u00ca', u '\u00c2') хэвлэх |
Миний хувьд (10): |
j inrange -ийн хувьд (11, 24, 1): |
Хэрэв j! = 14 ба j! = 17 ба j! = 20 бол: |
gpio.output (j, gpio. LOW) |
цаг унтах (0.05) |
j inrange -ийн хувьд (11, 24, 1): |
Хэрэв j! = 14 ба j! = 17 ба j! = 20 бол: |
gpio.output (j, gpio. HIGH) |
цаг унтах (0.05) |
цаг унтах (0.5) |
дэд процесс. Нээлттэй (['aplay', 'Audios/end.wav']) |
цаг унтах (0.03) |
тодорхой () |
"Тоглоомыг дуусгах… / n", одоогийн_хүчдэл, "V" гэж хэвлэх |
#бичлэгүүд |
цаг унтах (1.2) |
= 0 хүрсэн |
Миний хувьд (10): |
хэрэв одоогийн_хүчдэл> хүчдэл : |
+= 1 хүрсэн |
temp_voltage = хүчдэл |
хүчдэл = одоогийн хүчдэл |
одоогийн_хүчдэл = температурын_хүчдэл |
temp_name = нэр |
нэр = одоогийн_ нэр |
current_name = temp_name |
хэрэв> 0 хүрсэн бол: |
дэд процесс. Нээлттэй (['aplay', 'Audios/record.wav']) |
цаг унтах (0.03) |
тодорхой () |
f = нээлттэй ('бичлэг', 'w') |
Миний хувьд (10): |
f. бичих (нэр ) |
f. бичих ("\ n") |
f. бичих (str (хүчдэл )) |
f. бичих ("\ n") |
f. ойрхон () |
тодорхой () |
GitHub -аас ❤ -аар зохион байгуулагдсан rawlamps_bike.py -г үзэх
Алхам 8: Цахилгаан схем:
Arduino болон Raspberry Pi 3 нь 3А гүйдэлтэй 5V эх үүсвэрээр тэжээгддэг.
Цахилгаан хэлхээ нь DC генераторыг (унадаг дугуйнд холбосон) 5.3V Zener диод, 10μF конденсатор ба 1 кОм резистороос бүрдсэн хүчдэлийн шүүлтүүрээр дамжуулан Arduino руу холбохоос эхэлдэг. генераторын терминал ба гаралт нь хянагчийн A0 порт ба GND -тэй холбогддог.
Arduino нь RX-TX холболтоор Raspberry-тэй холбогддог-эсэргүүцэл хуваагчаар 10 кОм эсэргүүцэл ашиглан гүйцэтгэдэг (өөр өөр хүчдэлд ажилладаг хянагчдын портууд шаардлагатай).
Raspberry Pi -ийн GPIO нь чийдэн асаах үүрэгтэй релетэй холбогддог. Бүх релений "COM" нь хоорондоо холбогдсон бөгөөд фазад (AC сүлжээ) холбогдсон бөгөөд реле бүрийн "N. O" (ихэвчлэн нээлттэй) гэрэл тус бүрт холбогдсон бөгөөд хувьсах гүйдлийн сүлжээний саармаг нь бүх чийдэнтэй холбогдсон байв. Тиймээс реле тус бүрийг хариуцах GPIO идэвхжсэн үед реле нь AC сүлжээний фаз руу шилжиж, холбогдох дэнлүүгээ асаана.
Алхам 9: Үр дүн:
Төслийн эцсийн угсралтын дараа хүлээгдэж байсны дагуу ажилласан нь батлагдсан - хэрэглэгчийн дугуйгаар гишгэсэн хурдны дагуу илүү их хүчдэл үүсч, илүү олон чийдэн асдаг.
Зөвлөмж болгож буй:
Олон сувгийн Wifi хүчдэл ба гүйдлийн тоолуур: 11 алхам (зурагтай)
Олон сувгийн Wifi хүчдэл ба гүйдлийн тоолуур: Талхлах үед ихэвчлэн хэлхээний өөр өөр хэсгүүдийг нэг дор хянах шаардлагатай болдог. Мультиметр датчикийг нэг газраас нөгөөд наалдуулахгүйн тулд би олон сувгийн хүчдэл ба гүйдлийн тоолуур зохион бүтээхийг хүссэн юм. Ina260 самбар
Дугуйгаар ажилладаг, робот дүүжин гар чийдэн: 6 алхам
Дугуйгаар ажилладаг, роботын дүүжин гар чийдэн: Танд хэрэгтэй болно: Багаж хэрэгсэл: -Утас таслагч -Галт тэрэг -Ратчет эсвэл эрэг чангалах түлхүүр -Цахилгаан өрөм -Лазер таслагч (заавал биш) -Халуун цавуу бууны электроник: -2x хобби servo мотор -Arduino/RaspberryPi/Elegoo хэрэгсэл-Breadboard-Joystick модуль эсвэл 2 потенциометрийн хангамж/бусад материал
Хүчдэл зохицуулагчтай ESP8266-01-ийн талхны самбарт ээлтэй самбар: 6 алхам (зурагтай)
Хүчдэл зохицуулагчтай ESP8266-01-ийн талхны самбарт ээлтэй самбар: Бүх хүмүүст сайн байна уу! чамайг сайн байгаа гэж найдаж байна. Энэхүү гарын авлагад би ESP8266-01 модульд тохируулсан талхны хавтангийн ээлтэй адаптерийг хүчдэлийн зохистой зохицуулалт, ESP-ийн флаш горимыг идэвхжүүлдэг онцлог шинж чанаруудыг ашиглан хэрхэн хийснийг харуулах болно
Унадаг дугуйгаар ажилладаг утасны цэнэглэгч: 6 алхам (зурагтай)
Унадаг дугуйгаар ажилладаг утасны цэнэглэгч: Энэ бол дугуйн хөдөлгүүртэй утасны цэнэглэгч бөгөөд хямд, 3D хэвлэх боломжтой, хийхэд хялбар, суулгахад хялбар бөгөөд утасны цэнэглэгч нь бүх нийтийнх юм. Хэрэв та дугуйгаа их унадаг, утсаа цэнэглэх шаардлагатай бол энэ нь ашигтай зүйл юм. Цэнэглэгчийг зохион бүтээсэн бөгөөд
UNO R3, HC-05, L293D моторын хамгаалалтыг ашиглан Arduino 4 дугуйгаар хөтөлдөг Bluetooth RC машин: Кодлох болон Android програмтай: 8 алхам
UNO R3, HC-05, L293D моторын бамбарыг ашиглан кодлох болон андройд аппликэйшн ашиглан Arduino 4 дугуйгаар хөтөлдөг Bluetooth RC машин: Өнөөдөр би HC 05, L293 моторын бамбай ашиглан 4 дугуйгаар хөтөлдөг bluetooth RC машиныг хэрхэн хийх талаар танд хэлэх болно. 4 DC мотор, кодчилол, машиныг удирдах андроид програмтай. Ашигласан бүрэлдэхүүн хэсэг: -1-Arduino UNO R32-Bluetooth HC-053-Motorshield L293