Სარჩევი:
- ნაბიჯი 1: საჭირო კომპონენტები
- ნაბიჯი 2: სხეულის სტრუქტურა
- ნაბიჯი 3: გაყვანილობა და კოდირება
- ნაბიჯი 4: ჟოლო პი და გამოსახულების ამოცნობა
- ნაბიჯი 5: LCD და სპიკერი
- ნაბიჯი 6: საბოლოო ნაბიჯები
ვიდეო: NAIN 1.0 - ძირითადი ჰუმანოიდი რობოტი Arduino– ს გამოყენებით: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
ნაინ 1.0-ს ექნება ძირითადად 5 მოსახსნელი მოდული-
1) მკლავი - რომლის კონტროლიც შესაძლებელია სერვისების საშუალებით.
2) ბორბლები - რომელთა კონტროლი შესაძლებელია DC ძრავებით.
3) ფეხი - ნაინს შეეძლება გადაადგილება ბორბლებს ან ფეხებს შორის მოძრაობისთვის.
4) თავი - მისი თავის კონტროლი შესაძლებელია სხვადასხვა კვნესისთვის.
5) კამერის მოდული- რომლის ინტერფეისიც შესაძლებელია სახის ამოცნობის წვდომისათვის.
ამასთან ერთად NAIN შეძლებს მომხმარებლებთან საუბარს და ურთიერთობას და გაჩვენებთ დროს ჩამონტაჟებული საათის მიხედვით. მას ექნება უკაბელო კონტროლი Wi-fi /Bluetooth– ის გამოყენებით.
ნაბიჯი 1: საჭირო კომპონენტები
- სერვო მოტორსი -4
- არდუინო მეგა - 1
- ჟოლო პი - 1
- USB კამერა -1
- სპიკერი -1
- DC მოტორსი -2
- L293D -1
- ბატარეის პაკეტი - 1
- ბორბლები -2
- აბუსალათინის ბორბლები - 2
მათთან ერთად თქვენ დაგჭირდებათ ალუმინის კვადრატული ზოლები სხეულის გასაკეთებლად და ხრახნები და თხილი, რომ სწორად მოერგოს მათ.
ნაბიჯი 2: სხეულის სტრუქტურა
სხეულის სტრუქტურა დამზადდება მსუბუქი ალუმინის კვადრატული წნელებისგან, რაც ხელს შეუწყობს მის ადვილად აწყობას.
ჯერჯერობით შეაგროვეთ ისინი, როგორც ნაჩვენებია ფიგურაში და ასევე ამოჭერით შესაბამისი ადგილები სერვო ძრავებისთვის მკლავებში ჩასამაგრებლად.
მიამაგრეთ ექვსკუთხა ხის ბაზა ბოლოში.
ხის ბაზის ქვემოთ, მიამაგრეთ DC ძრავები და ბორბლები, როგორც ამას ვაკეთებთ ნებისმიერი ხაზის მიმდევართ რობოტში.
საინტერესოა, რომ დაამატეთ ორი აბუსალათიანი ბორბალი- ერთი წინა და მეორე რობოტის უკანა მხარეს.
ნაბიჯი 3: გაყვანილობა და კოდირება
სხვადასხვა მოდულის დასაკავშირებლად მიმართეთ ამ ნაწილში თანდართულ კოდებს.
პირველ რიგში ჩვენ შევამოწმეთ თითოეული მოდული დამოუკიდებელი კოდების გამოყენებით, შემდეგ კი გავაერთიანეთ ყველა ერთში და გავაკონტროლეთ ბორბლებისა და იარაღის მოძრაობა bluetooth მოდულის გამოყენებით.
ნაბიჯი 4: ჟოლო პი და გამოსახულების ამოცნობა
სურათის ამოცნობა ხორციელდება USB კამერისა და ჟოლოს პიის გამოყენებით.
ამისათვის თქვენ უნდა დააინსტალიროთ OPEN CV ბიბლიოთეკა თქვენს Pi- ზე.
ამის გაკეთება შეგიძლიათ აქედან-https://github.com/jabelone/OpenCV-for-Pi
შემდეგ თქვენ უნდა შეასრულოთ გამოსახულების ამოცნობა ჰარის კასკადის გამოყენებით.
ამის გაკეთება შეგიძლიათ აქედან -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
ზემოაღნიშნული ბმულის შესწავლისა და ამის შემდეგ, მე შევიტანე ცვლილებები საბოლოო კოდში, რომელიც მე გამოვიყენე და რომელსაც ქვემოთ ვდებ -
მონაცემთა გენერატორი:
importcv2
კამერა = cv2. ვიდეო გადაღება (0)
დეტექტორი = cv2. CascadeClassifier ('Classifiers/face.xml')
i = 0
ოფსეტური = 50
სახელი = raw_input ('შეიყვანეთ თქვენი პირადობის მოწმობა')
მართალია:
ret, im = cam.read ()
ნაცრისფერი = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
სახეები = detector.detectMultiScale (ნაცრისფერი, scaleFactor = 1.2, წთ მეზობლები = 5, წთ ზომა = (100, 100), დროშები = cv2. CASCADE_SCALE_IMAGE)
for (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. მართკუთხედი (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 -ზე მეტია
ელიფი (i> 20):
შესვენება
კამერა გამოშვება ()
cv2.destroyAllWindows ()
ის შექმნის თქვენს ფოტოებს, რომლებიც გამოყენებული იქნება ავტორიზაციისთვის.
ᲛᲬᲕᲠᲗᲜᲔᲚᲘ:
importcv2, os
იმპორტირებული numpy როგორც np
PIL იმპორტის სურათიდან
აღიარებელი = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "კლასიფიკატორები/სახე. xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
გზა = 'dataSet'
def get_images_and_labels (გზა):
image_paths = [os.path.join (path, f) for f in os.listdir (path)]
# სურათი შეიცავს სახის სურათებს
სურათები =
# ეტიკეტი შეიცავს ლეიბლს, რომელიც ენიჭება სურათს
ეტიკეტები =
image_path for 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]. გაყოფა (".") [1]. შეცვლა ("სახე-", ""))
#nbr = int (''. შეერთება (str (ord (c)) for c in nbr))
ბეჭდვა nbr
# აღმოაჩინეთ სახე სურათზე
სახეები = faceCascade.detectMultiScale (სურათი)
# თუ სახე გამოვლინდა, მიამაგრეთ სახე სურათებზე და ეტიკეტი ეტიკეტებზე
for (x, y, w, h) სახეებში:
images.append (სურათი [y: y + h, x: x + w])
ეტიკეტები. დანართი (nbr)
cv2.imshow ("სახეების დამატება გადასასვლელ ნაკრებში …", სურათი [y: y + h, x: x + w])
cv2.wait გასაღები (10)
# დააბრუნეთ სურათების სია და ეტიკეტების სია
სურათების, ეტიკეტების დაბრუნება
სურათები, ეტიკეტები = მიიღეთ_ სურათები_და_დანიშნვები (გზა)
cv2.imshow ('ტესტი', სურათები [0])
cv2.wait გასაღები (1)
ამოცნობა
ამოცნობა (შენახვა)
cv2.destroyAllWindows ()
დეტექტორი
importcv2
იმპორტირებული numpy როგორც np
იმპორტი os
c = 0
ცნობა = cv2.face.createLBPHFaceRecognizer ()
ამოცნობა (დატვირთვა)
cascadePath = "კლასიფიკატორები/სახე. xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
კამერა = cv2. ვიდეო გადაღება (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontscale = 1
fontcolor = (255, 255, 255)
მართალია:
ret, im = cam.read ()
ნაცრისფერი = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
სახეები = faceCascade.detectMultiScale (ნაცრისფერი, 1.2, 5)
for (x, y, w, h) სახეებში:
cv2. მართკუთხედი (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = ამოცნობა.წინასწარმეტყველება (ნაცრისფერი [y: y+h, x: x+w])
თუ (Id <70):
თუ (Id == 1):
Id = "შაშანკი"
elif (Id == 2):
თუ (c == 0):
Id = "შივამი"
c = c+1
os.system ("espeak 'Welcome Shivam Access Granted'")
სხვა:
Id = "შივამი"
სხვა:
Id = "უცნობი"
cv2.putText (im, str (Id), (x, y+h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
თუ cv2.waitKey (10) & 0xFF == ord ('q'):
შესვენება
კამერა გამოშვება ()
cv2.destroyAllWindows ()
ნაბიჯი 5: LCD და სპიკერი
მე ასევე გამოვიყენე I2C LED დისპლეი და სპიკერი.
LED კონტროლდება Arduino Mega– ს საშუალებით და მისი კოდი მოცემულია საბოლოო კოდში.
სპიკერისთვის ის დაკავშირებულია Raspberry Pi– სთან და იყენებს eSpeak Utility– ს.
თქვენ შეგიძლიათ იპოვოთ მისი მითითება აქ-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
ნაბიჯი 6: საბოლოო ნაბიჯები
შეიკრიბეთ ყველაფერი და მოემზადეთ დარტყმისთვის.
გირჩევთ:
როგორ გააკეთოთ ჰუმანოიდი რობოტი: 8 ნაბიჯი
როგორ გავაკეთოთ ჰუმანოიდი რობოტი: გამარჯობა ბიჭებო! ვიმედოვნებ, რომ თქვენ უკვე ისიამოვნეთ ჩემი წინა სასწავლო " ონლაინ ამინდის სადგურით (NodeMCU) " და თქვენ მზად ხართ ახლისთვის, SMARS მოდელის რობოტის შემდეგ, რომელიც ჩვენ შევიკრიბეთ ბოლო დროს, დღევანდელი პროექტი ასევე ეხება რობოტების სწავლასა და
MIA-1 ღია კოდის ხელნაკეთი ჰუმანოიდი რობოტი!: 4 ნაბიჯი
MIA-1 ღია კოდის გაფართოებული ხელით დამზადებული ჰუმანოიდი რობოტი!: გამარჯობა ყველას, დღეს მე ვაჩვენებ როგორ გავაკეთე რობოტი MIA-1, რომელიც არა მხოლოდ მოწინავე და უნიკალურია, არამედ ღია წყაროა და მისი დამზადება შესაძლებელია 3D ბეჭდვის გარეშე !! დიახ, თქვენ მიხვდით, ეს რობოტი მთლიანად ხელნაკეთია. ღია წყარო ნიშნავს - თქვენ მიიღებთ
დაბალანსებული რობოტი / 3 ბორბლიანი რობოტი / STEM რობოტი: 8 ნაბიჯი
დაბალანსებული რობოტი / 3 ბორბლიანი რობოტი / STEM რობოტი: ჩვენ შევქმენით კომბინირებული ბალანსირების და 3 ბორბლიანი რობოტი სკოლებში საგანმანათლებლო გამოყენებისთვის და სკოლის შემდგომ საგანმანათლებლო პროგრამებისთვის. რობოტი დაფუძნებულია Arduino Uno– ზე, საბაჟო ფარზე (კონსტრუქციის ყველა დეტალი მოცემულია), Li Ion ბატარეის პაკეტზე (ყველა კონსტრუქცია
ASPIR: სრული ზომის 3D- დაბეჭდილი ჰუმანოიდი რობოტი: 80 ნაბიჯი (სურათებით)
ASPIR: სრულმასშტაბიანი 3D- დაბეჭდილი ჰუმანოიდი რობოტი: ავტონომიური მხარდაჭერა და პოზიტიური შთაგონების რობოტი (ASPIR) არის სრულმასშტაბიანი, 4.3 ფუტიანი ღია კოდის 3D- დაბეჭდილი ჰუმანოიდი რობოტი, რომლის შექმნაც ყველას შეუძლია საკმარისი დისკზე და განსაზღვრულობით. შინაარსი ჩვენ ეს მასიური 80 საფეხურიანი ინსტრუქცია გავყოთ 10 ე
არდუინოზე დაფუძნებული ჰუმანოიდი რობოტი სერვო მოტორსის გამოყენებით: 7 ნაბიჯი (სურათებით)
არდუინოზე დაფუძნებული ჰუმანოიდი რობოტი Servo Motors- ის გამოყენებით: გამარჯობა ყველას, ეს არის ჩემი პირველი ჰუმანოიდი რობოტი, დამზადებულია PVC ქაფის ფურცლისგან. ის ხელმისაწვდომია სხვადასხვა სისქეში. აქ მე გამოვიყენე 0.5 მმ. ახლა ამ რობოტს შეუძლია სიარული, როდესაც მე ჩართული ვარ. ახლა მე ვმუშაობ Arduino– ს და Mobile– ის Bluetooth– ით დაკავშირებაზე