Talaan ng mga Nilalaman:
- Hakbang 1: Kailangan ng Mga Bahagi
- Hakbang 2: Istraktura ng Katawan
- Hakbang 3: Mga kable at Coding
- Hakbang 4: Raspberry Pi at Pagkilala sa Imahe
- Hakbang 5: LCD at Speaker
- Hakbang 6: Pangwakas na Mga Hakbang
Video: NAIN 1.0 - ang Pangunahing Humanoid Robot Paggamit ng Arduino: 6 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Ang Nain 1.0 ay magkakaroon ng karaniwang 5 nababakas na mga module-
1) Arm - na maaaring makontrol sa pamamagitan ng servos.
2) Mga Gulong - na maaaring makontrol ng mga dc motor.
3) Leg - Si Nain ay maaaring lumipat sa pagitan ng mga gulong o binti para sa paggalaw.
4) Ulo - Ang ulo nito ay maaaring makontrol para sa iba't ibang mga tango.
5) module ng Camera- na maaaring i-interface para sa Pag-access sa Pagkilala sa Mukha.
Kasabay ng NAIN na ito ay magagawang makipag-usap at makipag-ugnay sa mga gumagamit at maaaring ipakita sa iyo ang oras sa pamamagitan ng nakapaloob na orasan. Magkakaroon ito ng isang wireless control gamit ang Wi-fi / Bluetooth.
Hakbang 1: Kailangan ng Mga Bahagi
- Servo Motors -4
- Arduino Mega - 1
- Raspberry Pi - 1
- Usb Camera -1
- Tagapagsalita -1
- DC Motors -2
- L293D -1
- Battery Pack - 1
- Gulong -2
- Castor Wheels - 2
Kasama ng mga ito kakailanganin mo ang mga square square strip upang gawin ang katawan at mga srew at mga mani upang magkasya nang maayos.
Hakbang 2: Istraktura ng Katawan
Ang istraktura ng katawan ay gagawin ng magaan na aluminyo parisukat na tungkod na makakatulong sa pag-assemble nito nang madali.
Tulad ng ngayon tipunin ang mga ito tulad ng ipinakita sa pigura at gupitin din ang tamang mga puwang para sa mga motor na servo na ikakabit sa mga bisig.
Maglakip ng isang hexagonal na kahoy na base sa ilalim.
Sa ibaba ng baseng kahoy, ilakip ang mga DC motor at gulong tulad ng ginagawa namin sa anumang robot na tagasunod sa linya.
Kapansin-pansin, Magdagdag ng dalawang castor wheel- isa sa harap at isa pa sa likuran ng robot.
Hakbang 3: Mga kable at Coding
Upang mai-wire ang iba't ibang mga module ay sumangguni sa mga code na naka-attach sa bahaging ito.
Una sinubukan namin ang bawat module na gumagamit ng mga standalone code at pagkatapos ay pinagsama namin ang lahat sa isa at kinokontrol ang paggalaw ng mga gulong at Arms gamit ang isang module na Bluetooth.
Hakbang 4: Raspberry Pi at Pagkilala sa Imahe
Ginagawa ang Pagkilala sa Imahe gamit ang isang USB Camera at Raspberry Pi.
Para doon, kakailanganin mong i-install ang OPEN CV library sa iyong Pi.
Maaari mong gawin iyon mula dito -
Pagkatapos ay kakailanganin mong magsagawa ng pagkilala sa imahe gamit ang haar cascade.
Maaari mong gawin iyon mula dito -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Matapos pag-aralan ang nasa itaas na link at sundin iyon, gumawa ako ng ilang mga pagbabago sa pangwakas na code na ginamit ko na inilalagay ko sa ibaba -
DATASET GENERATOR:
importcv2
cam = cv2. VideoCapture (0)
detector = cv2. CascadeClassifier ('Classifiers / face.xml')
ako = 0
offset = 50
pangalan = raw_input ('ipasok ang iyong id')
habang Totoo:
ret, im = cam.read ()
grey = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
mukha = detector.detectMultiScale (grey, scaleFactor = 1.2, minNeighbours = 5, minSize = (100, 100), flag = cv2. CASCADE_SCALE_IMAGE)
para sa (x, y, w, h) sa mga mukha:
i = i + 1
cv2.imwrite ("dataSet / face." + name + '.' + str (i) + ".jpg", grey [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])
kung cv2.waitKey (100) & 0xFF == ord ('q'):
pahinga
# masira kung ang sample na numero ay morethan 20
elif (i> 20):
pahinga
cam.release ()
cv2.destroyAllWindows ()
Lilikha ito ng isang datset ng iyong mga larawan na magagamit para sa pagpapatotoo.
TRAINER:
importcv2, os
i-import ang numpy bilang np
mula sa PIL import Image
kinikilala = 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) para sa f in os.listdir (path)]
Naglalaman ang # na mga imahe ng mukha
mga imahe =
Naglalaman ang # na mga label ng label na nakatalaga sa imahe
mga label =
para sa image_path sa image_paths:
# Basahin ang imahe at i-convert sa grayscale
image_pil = Image.open (image_path).convert ('L')
# I-convert ang format ng imahe sa numpy array
imahe = np.array (image_pil, 'uint8')
# Kunin ang label ng imahe
nbr = int (os.path.split (image_path) [- 1].split (".") [1].palit ("mukha-", ""))
# nbr = int ( . sumali (str (ord (c)) para sa c in nbr))
print nbr
# Tuklasin ang mukha sa imahe
mukha = faceCascade.detectMultiScale (imahe)
# Kung nakita ang mukha, idagdag ang mukha sa mga imahe at ang label sa mga label
para sa (x, y, w, h) sa mga mukha:
mga imahe.append (imahe [y: y + h, x: x + w])
mga label.append (nbr)
cv2.imshow ("Pagdaragdag ng mga mukha sa itinakdang set …", imahe [y: y + h, x: x + w])
cv2.waitKey (10)
# ibalik ang listahan ng mga imahe at listahan ng mga label
ibalik ang mga imahe, label
mga imahe, label = get_images_and_labels (path)
cv2.imshow ('pagsubok', mga imahe [0])
cv2.waitKey (1)
kinikilala.train (mga imahe, np.array (mga label))
nakikilala.save ('trainer / trainer.yml')
cv2.destroyAllWindows ()
DETECTOR
importcv2
i-import ang numpy bilang np
import os
c = 0
kinikilala = cv2.face.createLBPHFaceRecognizer ()
pagkilala.load ('trainer / trainer.yml')
cascadePath = "Classifiers / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fonttscale = 1
fontcolor = (255, 255, 255)
habang Totoo:
ret, im = cam.read ()
grey = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
mukha = faceCascade.detectMultiScale (grey, 1.2, 5)
para sa (x, y, w, h) sa mga mukha:
cv2.rectangle (im, (x-50, y-50), (x + w + 50, y + h + 50), (225, 0, 0), 2)
Id = kinikilala.predict (grey [y: y + h, x: x + w])
kung (Id <70):
kung (Id == 1):
Id = "Shashank"
elif (Id == 2):
kung (c == 0):
Id = "Shivam"
c = c + 1
os.system ("espeak 'Welcome Shivam Access Granted'")
iba pa:
Id = "Shivam"
iba pa:
Id = "Hindi kilalang"
cv2.putText (im, str (Id), (x, y + h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
kung cv2.waitKey (10) & 0xFF == ord ('q'):
pahinga
cam.release ()
cv2.destroyAllWindows ()
Hakbang 5: LCD at Speaker
Gumamit din ako ng I2C LED Display at isang speaker.
Ang LED ay kinokontrol sa pamamagitan ng Arduino Mega at ang code nito ay ibinibigay sa huling code.
Para sa Speaker, ito ay konektado sa Raspberry Pi at gumagamit ng eSpeak Utility.
Mahahanap mo ang sanggunian dito -
Hakbang 6: Pangwakas na Mga Hakbang
Ipunin ang lahat at maghanda para sa putok.
Inirerekumendang:
Paggamit ng Flux - Mga Pangunahing Kaalaman sa Paghinang: 5 Hakbang
Paggamit ng Flux | Mga Pangunahing Kaalaman sa Paghinang: Kailanman ka naghinang, ang solder ay kailangang gumawa ng isang mahusay na bono sa mga bahagi na iyong pag-solder. Ang metal ng mga bahagi at metal ng solder ay kailangang makipag-ugnay sa bawat isa upang makalikha ng isang mabuting bono. Ngunit dahil ako
Paggamit ng Perfboard - Mga Pangunahing Kaalaman sa Paghinang: 14 Mga Hakbang (na may Mga Larawan)
Paggamit ng Perfboard | Mga Pangunahing Kaalaman sa Paghinang: Kung nagtatayo ka ng isang circuit ngunit wala kang isang dinisenyong circuit board para dito, ang paggamit ng perfboard ay isang mahusay na pagpipilian. Ang mga Perfboard ay tinatawag ding Perforated Circuit Boards, Prototyping Boards, at Dot PCBs. Karaniwan ito ay isang pangkat ng mga tanso pad sa circu
Mga Pangunahing Kaalaman sa IoT: Pagkonekta sa Iyong IoT sa Cloud Paggamit ng Mongoose OS: 5 Mga Hakbang
Mga Pangunahing Kaalaman sa IoT: Pagkonekta sa Iyong IoT sa Cloud Gamit ang Mongoose OS: Kung ikaw ay isang tao na nasa tinkering at electronics, mas madalas kaysa sa hindi, mahahanap mo ang term na Internet of Things, na karaniwang dinaglat bilang IoT, at ito ay tumutukoy sa isang hanay ng mga aparato na maaaring kumonekta sa internet! Ang pagiging tulad ng isang tao
10 Pangunahing Mga Proyekto ng Arduino para sa Mga Nagsisimula! Gumawa ng hindi bababa sa 15 Mga Proyekto Na May Isang solong Lupon !: 6 Mga Hakbang
10 Pangunahing Mga Proyekto ng Arduino para sa Mga Nagsisimula! Gumawa ng hindi bababa sa 15 Mga Proyekto Na May Isang solong Lupon !: Arduino Project & Lupon ng Tutorial; May kasamang 10 pangunahing mga proyekto ng Arduino. Lahat ng mga source code, ang Gerber file at marami pa. Walang SMD! Madaling paghihinang para sa lahat. Madaling naaalis at mapapalitan na mga bahagi. Maaari kang gumawa ng hindi bababa sa 15 mga proyekto sa isang solong bo
Program Pro-mini Paggamit ng Uno (Mga Pangunahing Kaalaman sa Arduino): 7 Mga Hakbang (na may Mga Larawan)
Program Pro-mini Paggamit ng Uno (Mga Pangunahing Kaalaman sa Arduino): Hai lahat, Sa itinuturo na ito nais kong ibahagi sa iyo ang aking karanasan sa aking kamakailang biniling Arduino pro-mini at kung paano ko na-upload ang code dito sa unang pagkakataon, gamit ang aking ang lumang Arduino Uno. Angrduino pro-mini ay may mga sumusunod na tampok: Ito ay