Mundarija:
- 1 -qadam: SmartBin uskunalari
- 2 -qadam: Malinali quti va LED paneli ishlab chiqarish
- 3 -qadam: Qopqoq qismi
- 4 -qadam: dasturiy ta'minot qismi va ma'lumotlarni yig'ish
Video: SmartBin: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Loyihaning asosiy maqsadi - hech bo'lmaganda bitta Raspberry Pi ishlatadigan elektron qurilma yaratish. Jamoa 5 ta bo'lajak mexanik muhandis va bitta avtomatika muhandisidan iborat. Bizning loyihamiz axlat qutisi oldidagi markazda joylashgan harakat detektori ostida oyoq harakati bilan avtomatik ravishda ochiladigan va yopiladigan axlat qutisini yasashdan iborat. Ma'lumotni veb -saytga yuborish uchun Wi -Fi USB -tayog'i ishlatiladi. Bu axlat qutisi "SmartBin" deb nomlangan. Yuqoridagi kulgili video bizning innovatsion SmartBin -ni taqdim etadi.
Ushbu ajoyib SmartBin loyihasini amalga oshirish uchun bir nechta vositalar kerak edi:
- Bir metr
- Kuchli elim
- Yopishqoq lenta
- Yog'och arra
- Tornavida
- Burg'ulash mashinasi
- Qisqich
- Pichoq
1 -qadam: SmartBin uskunalari
SmartBin yashil, to'q sariq va qizil LED chiroqlardan iborat bo'lib, ular axlat qutisining chap tomonidagi armatura ustiga qo'yilgan bo'lib, u qanchalik to'ldirilganligini ko'rsatadi. Bu chiroqlar aniq ko'rinadi va axlat qutisini almashtirish zarur bo'lganda foydalanuvchini ogohlantiradi. Amaldagi dasturlash tili - Python. Idishning to'ldirish darajasi quyidagi veb -saytga yuboriladi:
Bu erda ishlatilgan elementlar, lekin siz muqobil echimni osongina topishingiz mumkin:
- 1 quti ("burilish qopqog'i" qutisi)
- 1 Axlat qutisini ochish uchun servomotor
- 1 Raspberry Pi 2
- Raspberry Pi va servomotorni ta'minlash uchun 2 ta quvvat manbalari (5V mobil telefon zaryadlovchi va 6V quvvat manbai)
- 1 Axlat qutisini to'ldirish darajasini o'lchash uchun ultratovushli sensor
- To'ldirish darajasini ko'rsatish uchun ba'zi LEDlar (4 yashil, 2 to'q sariq va 1 qizil)
- 1 Harakatni aniqlash uchun ultratovushli harakat detektori
- 1 16 Gb SD-karta
- Elektr rezistorlar (10.000 Ohm, 2000 Ohm va 1000 Ohm)
- Veb -saytga simsiz uzatishni yoqish uchun 1 ta Wi -Fi usb tayog'i.
- 1 Non paneli va ba'zi malina kabellari
Ishlab chiqarishning taxminiy narxi - 80 evro.
2 -qadam: Malinali quti va LED paneli ishlab chiqarish
Malina qutisini ishlab chiqarish uchun yog'och arra ishlating. Toza ko'rinishi uchun qutining har tomonini perchinlar bilan mahkamlang. Nomidan ko'rinib turibdiki, bu quti nafaqat Raspberry Pi ni o'z ichiga oladi, balki uni pastki qismiga qo'yadigan harakat sensori ham o'z ichiga oladi. Quti qurilgach, uni axlat qutisi bilan bir xil rangda bo'yab qo'ying. Ushbu qutini yaratish uchun 3D bosib chiqarish texnologiyasidan foydalanish mumkin.
LED barini ishlab chiqarish uchun, LED chiroqlarini o'rnatishga ruxsat berish uchun teshiklarni burg'ilaydigan elektr kanalidan foydalaning. LED paneli ham bo'yalgan bo'lishi kerak. Hamma narsa tayyor bo'lganda, LEDlarni kanalga o'rnating va elektr aloqasini ulang. Har bir LED kabelini yopishqoq lenta bilan to'g'ri raqamlashga e'tibor bering. Bu simlarni ulash paytida har bir LEDni aniqlashga yordam beradi.
Nihoyat, qutini va LED panelini axlat qutisining old qismiga ulang.
3 -qadam: Qopqoq qismi
Qutining qopqog'iga kelsak, birinchi navbatda servomotorni qopqoqqa yopishtirish kerak. Leverajni kengaytirish oldindan amalga oshirilishi kerak. Qo'l ilgari qo'lda ishlangan to'xtash joyiga tegadi. Ultrasonik sensorni to'g'ri holatda ushlab turish uchun vintli qutini qopqog'iga mahkamlang va teshik qiling. Qopqoqdagi kabellarni lenta bilan to'g'ri biriktirganingizga ishonch hosil qiling.
4 -qadam: dasturiy ta'minot qismi va ma'lumotlarni yig'ish
Dasturiy qismga kelsak, biz python dasturlash tilidan foydalanganmiz. Dastur Raspberry Pi yoqilgan SD-kartada saqlanadi. Ulanish sxemasi yuqorida keltirilgan. Gpio pinlari tasviri barcha malina turlari uchun quyidagi havolada mavjud:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Harakat detektorini almashtirish uchun ultratovushli datchikdan foydalanish mumkin, faqat kodda "if loop" ni yaratish kerak.
Yuqorida aytib o'tilganidek, axlat qutisi to'ldirilganligi haqidagi ma'lumotlar wix.com saytida yaratilgan veb -saytga uzatiladi. Bu veb -saytda siz guruh a'zolari, apparat va dasturiy ta'minot taqdimotlarini to'playdigan turli xil yorliqlarni topishingiz mumkin … Qiziqarli tab - bu axlat miqdori haqidagi ma'lumotlarni to'g'ridan -to'g'ri SmartBin -dan to'playdigan va ma'lumotlar bilan grafik tuzadigan "Ma'lumotlar bazasi" yorlig'i.. Grafikda to'ldirish darajasining evolyutsiyasi ko'rsatilgan. Saytdan ma'lumotlarni ko'rish yoki yuklab olish mumkin. Quyidagi havola biz ishlatgan veb -sayt bo'lib, sizga google varaqlarida python bilan qanday o'qish va yozishni ko'rsatib beradi:
www.makeuseof.com/tag/read-write-google-sh…
Kodning "ishga tushirish qismi" haqida terminalga yozing: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Keyin ochilgan skript oxirida quyidagi ikkita kod qatorini yozing: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Aurorunni saqlash uchun: C trl + O ni bosing, keyin: Enter ni bosing, C trl + X ni bosing.
Oxirgi kod qatori sifatida yozing: sudo reboot
Bundan tashqari, loyiha uchun ishlatiladigan to'liq python kodli qo'shimchani yuklab olishingiz mumkin. Ikkala kod ham bir vaqtning o'zida ishlaydi!
Bu erda main.py kodi:
RPi. GPIO -ni GPIOimport sifatida import qilish vaqtini import qilish csv -ni import qilish
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (noto'g'ri)
kapturP = 7
servo = 17
GPIO. sozlash (servo, GPIO. OUT)
GPIO. sozlash (capteurP, GPIO. IN)
pwm = GPIO. PWM (17, 50)
GPIO. sozlash (5, GPIO. OUT)
GPIO.setup (6, GPIO. OUT) GPIO.setup (13, GPIO. OUT) GPIO.setup (19, GPIO. OUT) GPIO.setup (20, GPIO. OUT) GPIO.setup (21, GPIO. OUT) GPIO. sozlash (26, GPIO. OUT)
Trig = 23
Eko = 24
GPIO. sozlash (Trig, GPIO. OUT)
GPIO. sozlash (Echo, GPIO. IN)
GPIO.setwarnings (noto'g'ri)
GPIO.output (5, noto'g'ri)
GPIO.output (6, False) GPIO.utput (13, False) GPIO.output (19, False) GPIO.output (20, False) GPIO.output (21, False)
GPIO.output (Trig, False)
vaqt sozlamalari = time.time ()
masofa = 100 xotira = 0 vaqt. uyqu (2) pwm.boshlanish (12,5)
rost bo'lsa:
timetac = time.time () if GPIO.input (capteurP) and timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) xotira = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0.5), agar timetac-timeset> 15 yoki xotira> 0.4: if memory> 0.4: pwm. ChangeDutyCycle (2.5) time.sleep (1) for x for range (0, 1): # GPIO.output (Trig), Haqiqiy) vaqt.sleep (0.01) GPIO.output (Trig, False)
GPIO.input (Echo) == 0 va timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
GPIO.input (Echo) == 1 bo'lsa:
finImpulsion = time.time () if timetac-timeset <17: distance1 = round ((finImpulsion-debutImpulsion) * 340 * 100/2, 1) masofa2 = agar (masofa1-masofa2) <1 va (masofa2-masofa1) 0,4: dis = dumaloq ((60 masofali)*5/6, 1) csvfile sifatida ochiq ('capteur.csv', 'w') bilan: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '%Y-%m-%d%H:%M:%S') chop etish ('Vaqt: {0} Sonlar soni: {1}'. format (time_str, dis)) yozuvchi. yozuvchi ([time_str, dis]) xotira = -0.1, agar masofa <52.5: GPIO.output (5, True) boshqa: GPIO.output (5, False) agar masofa <45: GPIO. chiqish (6, To'g'ri) bo'lsa: GPIO.output (6, False) agar masofa <37.5: GPIO.output (13, True) boshqa: GPIO.output (13, False) agar masofa <30: GPIO. chiqish (19, To'g'ri) boshqa: GPIO. chiqish (19, False) agar masofa <22.5: GPIO.output (20, True) boshqa: GPIO.output (20, False) <15: GPIO.output (21, True) boshqa: GPIO.output (21, False) agar masofa <7.5: GPIO.output (26, True) boshqa: GPIO.output (26, False)
Bu erda csvcontrol.py kodi. Yaratilgan ".json" faylini main.py katalogiga joylashtirishni unutmang. ". Json" fayli Google API yordamida yaratilgan. Rasmlarda skrinshot mavjud.
import datetimeimport vaqt import csv import gspread
dan oauth2client.service_account import ServiceAccountCredentials
vaqtdan boshlab uyqu importini kuzatib borish
timec2 = 'lol'
while True: time.sleep (5) loc = ('capteur.csv') with open (loc) with csvfile: readCSV = csv.reader (csvfile, delimiter = ',') readCSV: satr uchun satr [0]) timec = qator [0] bosib chiqarish (qator [1]) masofa = satr [1] masofa = suzish (str (masofa)) agar timec2! = timec: timec2 = timec chop etish ('Vaqt: {0} Soni: { 1} 'formati (vaqt, masofa))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ haydash "]
hisobga olish ma'lumotlari = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (hisobga olish ma'lumotlari) wks = gc.open ("grafik"). varaq1 wks = wks.append_row ((vaqt, masofa))
Tavsiya:
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadam dvigateli: 3 qadam
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadamli dvigatel: Siz hech qachon mini-loyihaga aylanishingiz kerak degan yomon fikrga keldingizmi? Xo'sh, men AD9833 to'g'ridan -to'g'ri raqamli sintez (DDS) moduli yordamida musiqa yaratishga qaratilgan Arduino Due uchun chizgan eskiz bilan o'ynab yurardim … va bir paytlar men o'yladim
Arduino uchun qadam tezligini boshqarish menyusi: 6 qadam
Arduino uchun qadam tezligini boshqarish menyusi: Bu SpeedStepper kutubxonasi qadam dvigatelining tezligini nazorat qilish uchun AccelStepper kutubxonasining qayta yozilishi. SpeedStepper kutubxonasi sizga belgilangan dvigatel tezligini o'zgartirishga imkon beradi, so'ngra xuddi shu algoritm yordamida yangi belgilangan tezlikka tezlashadi/sekinlashadi
Qanday qilib qadam taymerini yasash mumkin?: 3 qadam (rasmlar bilan)
Qanday qilib qadam taymerini yasash mumkin ?: Men ko'plab sport turlarida yaxshi qatnashardim: yurish, yugurish, velosiped haydash, badminton o'ynash va hokazo. Men tez orada sayohat qilishni yaxshi ko'raman. Xo'sh, qorin qornimga qarang …… Xo'sh, baribir, men mashg'ulotlarni qaytadan boshlashga qaror qildim. Qanday uskunani tayyorlashim kerak?
Arduino UNO bilan qadam motor: 3 qadam
Arduino UNO bilan qadam dvigateli: Bosqichli motorlar - bu alohida bosqichlarda harakatlanadigan shahar motorlari. Ularda "fazalar" deb nomlangan guruhlarga bo'lingan bir nechta rulon bor. Har bir fazani ketma -ket quvvatlantirganda, dvigatel birma -bir aylanadi, zinapoyali dvigatellar juda foydali
SmartBin: 8 qadam
SmartBin: Este va eacute; bir vaqtning o'zida hech qanday ma'lumot yo'q, shuning uchun hech qanday ma'lumot yo'q