فهرست مطالب:
- مرحله 1: اجزای مورد نیاز
- مرحله 2: ساختار بدن
- مرحله 3: سیم کشی و کدگذاری
- مرحله 4: Raspberry Pi و تشخیص تصویر
- مرحله 5: LCD و بلندگو
- مرحله 6: مراحل نهایی
تصویری: NAIN 1.0 - ربات انسان نما اولیه با استفاده از آردوینو: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
Nain 1.0 اساساً 5 ماژول قابل جدا شدن خواهد داشت-
1) بازو - که می تواند از طریق سرویس ها کنترل شود.
2) چرخ - که با موتورهای DC قابل کنترل است.
3) پا - ناین قادر به تغییر بین چرخ ها یا پاها برای حرکت است.
4) سر - سر آن را می توان برای تکان های مختلف کنترل کرد.
5) ماژول دوربین- که می تواند برای دسترسی به تشخیص چهره به هم متصل شود.
همراه با این NAIN قادر به صحبت و تعامل با کاربران خواهد بود و می تواند زمان را با ساعت داخلی خود به شما نشان دهد. دارای کنترل بی سیم با استفاده از Wi-Fi /بلوتوث است.
مرحله 1: اجزای مورد نیاز
- سروو موتورز -4
- آردوینو مگا - 1
- تمشک پای - 1
- دوربین USB -1
- بلندگو -1
- موتورهای DC -2
- L293D -1
- بسته باتری - 1 عدد
- چرخ -2
- چرخ های کرچک - 2
در کنار این موارد ، برای ساخت بدنه به نوارهای مربعی آلومینیومی و پیچ و مهره هایی نیاز دارید که به درستی مناسب باشند.
مرحله 2: ساختار بدن
ساختار بدنه از میله های مربعی سبک آلومینیومی ساخته شده است که به راحتی در مونتاژ آن کمک می کند.
در حال حاضر آنها را همانطور که در شکل نشان داده شده مونتاژ کرده و فضاهای مناسب را برای اتصال سروو موتورها در بازوها جدا کنید.
یک پایه چوبی شش ضلعی را در پایین وصل کنید.
در زیر پایه چوبی ، موتورها و چرخ های DC را مانند ما در هر ربات دنبال کننده خط وصل کنید.
جالب است که دو چرخ کرچک اضافه کنید- یکی در جلو و دیگری در پشت ربات.
مرحله 3: سیم کشی و کدگذاری
برای سیم کشی ماژول های مختلف به کدهای پیوست شده در این قسمت مراجعه کنید.
ابتدا ماژول ها را با استفاده از کدهای مستقل آزمایش کردیم و سپس همه آنها را در یک جا ترکیب کردیم و حرکت چرخ ها و بازوها را با استفاده از ماژول بلوتوث کنترل کردیم.
مرحله 4: Raspberry Pi و تشخیص تصویر
تشخیص تصویر با استفاده از دوربین USB و رزبری پای انجام می شود.
برای این کار ، باید کتابخانه OPEN CV را روی Pi خود نصب کنید.
می توانید این کار را از اینجا انجام دهید-https://github.com/jabelone/OpenCV-for-Pi
سپس باید تشخیص تصویر را با استفاده از آبشار هار انجام دهید.
می توانید این کار را از اینجا انجام دهید -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
پس از مطالعه پیوند بالا و به دنبال آن ، من تغییراتی را در کد نهایی که از آن استفاده می کنم ایجاد کرده ام -
ژنراتور داده ها:
importcv2
cam = cv2. VideoCapture (0)
detector = cv2. CascadeClassifier ('Classifiers/face.xml')
من = 0
افست = 50
نام = raw_input ('شناسه خود را وارد کنید')
در حالی که True:
ret، im = cam.read ()
خاکستری = cv2.cvtColor (im، cv2. COLOR_BGR2GRAY)
چهره ها = detector.detectMultiScale (خاکستری ، scaleFactor = 1.2 ، دقیقه همسایگان = 5 ، minSize = (100 ، 100) ، پرچم ها = cv2. CASCADE_SCALE_IMAGE)
برای (x ، y ، w ، h) در صورت:
i = i+1
cv2.imwrite ("dataSet/face."+name+'.'+str (i)+".jpg" ، خاکستری [y-offset: y+h+offset ، x-offset: x+w+offset])
cv2. rectangle (im، (x-50، y-50)، (x+w+50، y+h+50)، (225، 0، 0)، 2)
cv2.imshow ('im'، im [y-offset: y+h+offset، x-offset: x+w+offset])
اگر cv2.waitKey (100) & 0xFF == ord ('q'):
زنگ تفريح
اگر تعداد نمونه بیشتر از 20 باشد ، # استراحت کنید
elif (i> 20):
زنگ تفريح
cam.release ()
cv2.destroyAllWindows ()
این مجموعه ای از عکس های شما ایجاد می کند که برای احراز هویت استفاده می شود.
مربی:
importcv2 ، سیستم عامل
وارد کردن numpy به عنوان np
از تصویر واردات PIL
تشخیص = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Classifiers/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath)؛
path = 'dataSet'
def get_images_and_labels (path):
image_paths = [os.path.join (path، f) for f in os.listdir (path)]
# تصویر شامل تصاویر چهره خواهد بود
تصاویر =
# labels will حاوی برچسبی است که به تصویر اختصاص داده شده است
برچسب ها =
برای image_path در image_paths:
# تصویر را بخوانید و به مقیاس خاکستری تبدیل کنید
image_pil = Image.open (image_path).convert ('L')
# فرمت تصویر را به آرایه numpy تبدیل کنید
image = np.array (image_pil ، 'uint8')
# برچسب تصویر را دریافت کنید
nbr = int (os.path.split (image_path) [-1].split (".") [1]. جايگزين ("face-"، ""))
#nbr = int (''. پیوستن به (str (ord (c)) برای c در nbr))
چاپ nbr
# تشخیص چهره در تصویر
چهره ها = faceCascade.detectMultiScale (تصویر)
# در صورت تشخیص چهره ، صورت را به تصاویر و برچسب را به برچسب ها اضافه کنید
برای (x ، y ، w ، h) در صورت:
images.append (تصویر [y: y + h ، x: x + w])
labels.append (nbr)
cv2.imshow ("افزودن چهره به مجموعه انتقال …" ، تصویر [y: y + h ، x: x + w])
cv2.waitKey (10)
# لیست تصاویر و لیست برچسب ها را برگردانید
برگرداندن تصاویر ، برچسب ها
تصاویر ، برچسب ها = get_images_and_labels (path)
cv2.imshow ('تست' ، تصاویر [0])
cv2.wait کلید (1)
تشخیص دهنده (آموزش ، تصاویر ، np.array (برچسب ها))
شناسه ذخیره ('trainer/trainer.yml')
cv2.destroyAllWindows ()
آشکارساز
importcv2
وارد کردن numpy به عنوان np
وارد کردن سیستم عامل
c = 0
تشخیص = cv2.face.createLBPHFaceRecognizer ()
تشخیص کننده (بارگیری ('trainer/trainer.yml'))
cascadePath = "Classifiers/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath)؛
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontscale = 1
fontcolor = (255 ، 255 ، 255)
در حالی که True:
ret، im = cam.read ()
خاکستری = cv2.cvtColor (im، cv2. COLOR_BGR2GRAY)
چهره = faceCascade.detectMultiScale (خاکستری ، 1.2 ، 5)
برای (x ، y ، w ، h) در صورت:
cv2. rectangle (im، (x-50، y-50)، (x+w+50، y+h+50)، (225، 0، 0)، 2)
Id = nas.predict (خاکستری [y: y+h، x: x+w])
if (Id <70):
if (Id == 1):
Id = "Shashank"
elif (Id == 2):
اگر (c == 0):
Id = "Shivam"
c = c+1
os.system ("espeak 'Welcome Shivam Access Granted'")
دیگری:
Id = "Shivam"
دیگری:
Id = "ناشناس"
cv2.putText (im، str (Id)، (x، y+h)، fontface، fontscale، fontcolor)
cv2.imshow ('im'، im)
اگر cv2.waitKey (10) & 0xFF == ord ('q'):
زنگ تفريح
cam.release ()
cv2.destroyAllWindows ()
مرحله 5: LCD و بلندگو
من همچنین از صفحه نمایش LED I2C و بلندگو استفاده کرده ام.
LED از طریق Arduino Mega کنترل می شود و کد آن در کد نهایی آمده است.
برای بلندگو ، با Raspberry Pi متصل است و از eSpeak Utility استفاده می کند.
می توانید مرجع آن را در اینجا پیدا کنید-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
مرحله 6: مراحل نهایی
همه چیز را جمع کنید و برای انفجار آماده شوید.
توصیه شده:
نمونه اولیه - دستگاه هشدار با استفاده از سنسور لمسی انسان (KY -036): 4 مرحله
نمونه اولیه - دستگاه زنگ هشدار با استفاده از سنسور لمسی انسان (KY -036): در این پروژه ، من یک دستگاه هشدار دهنده طراحی می کنم که با لمس فعال می شود. برای این پروژه شما به یک سنسور لمسی انسانی (KY-036) نیاز دارید. اجازه دهید نگاهی اجمالی به این پروژه داشته باشم. همانطور که در تصاویر بالا مشاهده می کنید ، حس لمسی
جعبه تشخیص انسان - نمونه اولیه: 4 مرحله
جعبه تشخیص انسان - نمونه اولیه: سلام به همه! در این پروژه ، ما نحوه ساخت یک جعبه تشخیص انسان را یاد می گیریم. برای این پروژه ما از یک سنسور مادون قرمز منفعل (PIR) برای تشخیص حرکات ، حیوانات یا انسانها (هر چیز دیگری که تابش IR ساطع می کند) استفاده خواهیم کرد. یک اشکال
نحوه انجام: روبات انسان نما 17 DOF: 7 مرحله (همراه با تصاویر)
نحوه انجام: 17 DOF Humanoid Robot: مونتاژ کیت های ربات DIY یکی از سرگرمی های مورد علاقه من است. شما با یک جعبه پر از اجزای تشکیل شده در کیسه های پلاستیکی کوچک شروع می کنید و با یک ساختار نصب شده و چند پیچ یدکی به پایان می رسانید! در این آموزش من نحوه جمع آوری یک کیت 17 درجه را ارائه می دهم
ASPIR: روبات انسان نما چاپ سه بعدی با اندازه کامل: 80 مرحله (همراه با تصاویر)
ASPIR: Robot Humanoid-Printed Full-Size 3D Robot: Autonomous Support and Positive Inspiration Robot (ASPIR) یک ربات انسان نما با اندازه باز 3.3 فوت با اندازه باز 3.3 فوت است که هرکسی می تواند با انگیزه و اراده کافی بسازد. این دستورالعمل بزرگ 80 مرحله ای را به 10 e تقسیم کرده اید
دست انسان نما Bartolobot: 4 مرحله
Bartolobot Humanoid Hand: من تصمیم گرفتم این پروژه را به عنوان الهام از آنچه می توان با موارد استفاده مجدد انجام داد ، ارسال کنم. چیزهای بازیابی شده و مجدداً به منظور کمی تخیل ، این بازوی انسان نما تقریباً کاملاً از چیزهای بازیافتی ساخته شده است ، از شانه ای که روی یک شانه نصب شده است شروع می شود