Sisällysluettelo:
- Vaihe 1: Tarvittavat komponentit
- Vaihe 2: Runkorakenne
- Vaihe 3: Johdotus ja koodaus
- Vaihe 4: Raspberry Pi ja kuvan tunnistus
- Vaihe 5: Nestekidenäyttö ja kaiutin
- Vaihe 6: Viimeiset vaiheet
Video: NAIN 1.0 - Basic Humanoid -robotti Arduinon avulla: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Nain 1.0 sisältää periaatteessa viisi irrotettavaa moduulia-
1) Varsi - jota voidaan ohjata servojen kautta.
2) Pyörät - joita voidaan ohjata tasavirtamoottoreilla.
3) Jalka - Nain voi vaihtaa pyörien tai jalkojen välillä liikkuakseen.
4) Pää - Sen päätä voidaan ohjata eri nyökkäyksille.
5) Kameramoduuli, joka voidaan liittää kasvojentunnistuskäyttöön.
Yhdessä tämän kanssa NAIN pystyy puhumaan ja olemaan vuorovaikutuksessa käyttäjien kanssa ja voi näyttää sinulle ajan sisäänrakennetulla kellollaan. Siinä on langaton ohjaus Wi-Fi /Bluetooth-yhteydellä.
Vaihe 1: Tarvittavat komponentit
- Servomoottorit -4
- Arduino Mega - 1
- Vadelma Pi - 1
- USB -kamera -1
- Kaiutin -1
- DC -moottorit -2
- L293D -1
- Akku - 1
- Pyörät -2
- Pyörät - 2
Näiden lisäksi tarvitset nelikulmaisia alumiininauhoja, jotta runko ja ruuvit ja mutterit sopivat niihin oikein.
Vaihe 2: Runkorakenne
Runkorakenne on valmistettu kevyistä alumiinisista neliömäisistä tangoista, jotka helpottavat sen kokoamista.
Kokoa ne nyt kuvan osoittamalla tavalla ja leikkaa myös sopivat tilat servomoottoreille, jotka kiinnitetään käsivarsiin.
Kiinnitä kuusikulmainen puinen pohja pohjaan.
Kiinnitä puisen alustan alle tasavirtamoottorit ja pyörät kuten mihin tahansa linjaseurantarobottiin.
Mielenkiintoista on lisätä kaksi pyörää- toinen robotin etu- ja toinen taakse.
Vaihe 3: Johdotus ja koodaus
Kytke eri moduulit yhteen tässä osassa olevista koodeista.
Ensinnäkin testasimme jokaista moduulia erillisillä koodeilla ja sitten yhdistimme ne kaikki yhteen ja hallitsimme pyörien ja aseiden liikettä bluetooth -moduulin avulla.
Vaihe 4: Raspberry Pi ja kuvan tunnistus
Kuvan tunnistus suoritetaan USB -kameralla ja Raspberry Pi: llä.
Tätä varten sinun on asennettava OP -CV -kirjasto Pi -laitteeseesi.
Voit tehdä sen täältä-https://github.com/jabelone/OpenCV-for-Pi
Sitten sinun on suoritettava kuvan tunnistus haar -kaskadilla.
Voit tehdä sen täältä -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Kun olen tutkinut yllä olevan linkin ja seurannut sitä, olen tehnyt joitain muutoksia käyttämääni lopulliseen koodiin, jonka liitän alla -
DATASET GENERATOR:
importcv2
nokka = cv2. VideoCapture (0)
ilmaisin = cv2. CascadeClassifier ('Classifiers/face.xml')
i = 0
offset = 50
name = raw_input ('anna tunnus')
vaikka totta:
ret, im = cam.read ()
harmaa = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
kasvot = ilmaisin.detectMultiScale (harmaa, scaleFactor = 1,2, min Naapurit = 5, minSize = (100, 100), liput = cv2.
(x, y, w, h) kasvoille:
i = i+1
cv2.imwrite ("dataSet/face."+nimi+'.'+str (i)+".jpg", harmaa [y-offset: y+h+offset, x-offset: x+w+offset])
cv2.suorakulmio (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])
jos cv2.waitKey (100) & 0xFF == ord ('q'):
tauko
# tauko, jos näytteen numero on suurempi kuin 20
elif (i> 20):
tauko
cam.release ()
cv2.destroyAllWindows ()
Se luo valokuvistasi tietojoukon, jota käytetään todentamiseen.
KOULUTTAJA:
importcv2, os
tuo numpy np: nä
PIL -tuontikuvasta
tunnistin = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Luokittelijat/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (polku):
image_paths = [os.path.join (polku, f) f: lle os.listdir (polku)]
# kuvaa sisältää kasvokuvia
kuvat =
# tarrat sisältää kuvalle määritetyn tarran
tarrat =
image_path in image_paths:
# Lue kuva ja muunna se harmaasävyiseksi
image_pil = Image.open (image_path).convert ('L')
# Muunna kuvamuoto numpy -matriisiksi
image = np.array (image_pil, 'uint8')
# Hanki kuvan etiketti
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("face-", ""))
#nbr = int (''. join (str (ord (c)) for c in nbr))
print nbr
# Tunnista kuvan kasvot
kasvot = faceCascade.detectMultiScale (kuva)
# Jos kasvot tunnistetaan, liitä kasvot kuviin ja tarra tarroihin
(x, y, w, h) kasvoille:
images.append (kuva [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Kasvojen lisääminen siirtosarjaan…", kuva [y: y + h, x: x + w])
cv2.waitKey (10)
# palauttaa kuvaluettelon ja tarraluettelon
palauta kuvia, tarroja
kuvat, tunnisteet = get_images_and_labels (polku)
cv2.imshow ('testi', kuvat [0])
cv2.waitKey (1)
tunnistaja.juna (kuvat, np.sarja (tarrat))
tunnistaja.save ('trainer/trainer.yml')
cv2.destroyAllWindows ()
TUNNISTIN
importcv2
tuo numpy np: nä
tuonti
c = 0
tunnistin = cv2.face.createLBPHFaceRecognizer ()
tunnistin.load ('trainer/trainer.yml')
cascadePath = "Luokittelijat/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
nokka = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontscale = 1
fontcolor = (255, 255, 255)
vaikka totta:
ret, im = cam.read ()
harmaa = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
kasvot = faceCascade.detectMultiScale (harmaa, 1,2, 5)
(x, y, w, h) kasvoille:
cv2.suorakulmio (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = tunnistin.ennuste (harmaa [y: y+h, x: x+w])
jos (Id <70):
jos (Id == 1):
Id = "Shashank"
elif (Id == 2):
jos (c == 0):
Id = "Shivam"
c = c+1
os.system ("espeak 'Welcome Shivam Access Granted'")
muu:
Id = "Shivam"
muu:
Id = "Tuntematon"
cv2.putText (im, str (Id), (x, y+h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
jos cv2.waitKey (10) & 0xFF == ord ('q'):
tauko
cam.release ()
cv2.destroyAllWindows ()
Vaihe 5: Nestekidenäyttö ja kaiutin
Olen käyttänyt myös I2C LED -näyttöä ja kaiutinta.
LEDiä ohjataan Arduino Megan kautta ja sen koodi annetaan lopullisessa koodissa.
Kaiuttimelle se on yhdistetty Raspberry Pi -laitteeseen ja käyttää eSpeak -apuohjelmaa.
Löydät sen viitteen täältä-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
Vaihe 6: Viimeiset vaiheet
Kokoa kaikki ja valmistaudu räjähdykseen.
Suositeltava:
Tee GPS -RAJAN RAJAT Arduinon avulla: 8 vaihetta
Tee GPS -RAJAN RAJAT Arduinon avulla: Tässä opetusohjelmassa opimme tekemään GPS -Rajarajoja Arduinolla, tämä on hyödyllistä, kun sinulla on robotti etkä halua, että se menee määritetyn alueen ulkopuolelle. , näytössä näkyy "Ulkopuolella"
Hallitse talon valoja Google Assistantin avulla Arduinon avulla: 7 vaihetta
Hallitse talon valoja Google Assistantin avulla Arduinon avulla: (Päivitys 22.8.2020: Tämä ohje on 2 vuotta vanha ja perustuu joihinkin kolmansien osapuolien sovelluksiin. Kaikki heidän puolellaan tehdyt muutokset saattavat tehdä projektista toimimattoman. Se voi olla tai ei työskentele nyt, mutta voit seurata sitä viitteenä ja muokata sen mukaan
Arduinon ohjelmointi toisen Arduinon avulla vieritettävän tekstin näyttämiseksi ilman kirjastoa: 5 vaihetta
Arduinon ohjelmointi toisen Arduinon avulla vieritettävän tekstin näyttämiseksi ilman kirjastoa: Sony Spresense tai Arduino Uno eivät ole niin kalliita eivätkä vaadi paljon virtaa. Jos projektillasi on kuitenkin virtaa, tilaa tai jopa budjettia, voit harkita Arduino Pro Minin käyttöä. Toisin kuin Arduino Pro Micro, Arduino Pro Mi
Ohjaa lediä kaikkialla maailmassa Internetin avulla Arduinon avulla: 4 vaihetta
Ohjaa johtoa ympäri maailmaa Internetin avulla Arduinon avulla: Hei, olen Rithik. Aiomme tehdä Internet -ohjattavan ledin puhelimellasi. Aiomme käyttää ohjelmistoja, kuten Arduino IDE ja Blynk. Se on yksinkertainen ja jos onnistuit, voit hallita niin monta elektronista komponenttia kuin haluat Asioita, joita tarvitsemme: Laitteisto:
Langaton kaukosäädin käyttäen 2,4 GHz: n NRF24L01 -moduulia Arduinon kanssa - Nrf24l01 4 -kanavainen / 6 -kanavainen lähettimen vastaanotin nelikopterille - Rc -helikopteri - Rc -taso Arduinon avulla: 5 vaihetta (kuvilla)
Langaton kaukosäädin käyttäen 2,4 GHz: n NRF24L01 -moduulia Arduinon kanssa | Nrf24l01 4 -kanavainen / 6 -kanavainen lähettimen vastaanotin nelikopterille | Rc -helikopteri | Rc -lentokone Arduinon avulla: Rc -auton käyttö | Nelikopteri | Drone | RC -taso | RC -vene, tarvitsemme aina vastaanottimen ja lähettimen, oletetaan, että RC QUADCOPTER -laitteelle tarvitaan 6 -kanavainen lähetin ja vastaanotin, ja tämäntyyppinen TX ja RX on liian kallista, joten teemme sellaisen