Агуулгын хүснэгт:
- Алхам 1: Шаардлагатай бүрэлдэхүүн хэсгүүд
- Алхам 2: Биеийн бүтэц
- Алхам 3: Цахилгааны утас ба кодчилол
- Алхам 4: Raspberry Pi ба дүрс таних
- Алхам 5: LCD ба чанга яригч
- Алхам 6: Эцсийн алхамууд
Видео: NAIN 1.0 - Arduino -ийг ашиглах үндсэн гуманоид робот: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
Nain 1.0 нь үндсэндээ 5 салдаг модультай байх болно.
1) Гар - үүнийг servo -ээр удирдах боломжтой.
2) Дугуй - үүнийг тогтмол гүйдлийн хөдөлгүүрээр удирдах боломжтой.
3) Хөл - Найн дугуй эсвэл хөлний хооронд шилжих боломжтой болно.
4) Толгой - Түүний толгойг янз бүрийн толгой дохиод хянах боломжтой.
5) Камерын модуль- Нүүр таних хандалтын интерфэйстэй.
Үүнтэй зэрэгцэн NAIN нь хэрэглэгчидтэй ярилцах, харилцах боломжтой бөгөөд суулгасан цагны тусламжтайгаар танд цагийг харуулах болно. Энэ нь Wi-Fi /Bluetooth ашиглан утасгүй удирдлагатай болно.
Алхам 1: Шаардлагатай бүрэлдэхүүн хэсгүүд
- Servo Motors -4
- Ардуино мега - 1
- Raspberry Pi - 1 ширхэг
- USB камер -1
- Илтгэгч -1
- DC мотор -2
- L293D -1
- Батерейны багц - 1
- Дугуй -2
- Кастор дугуй - 2
Эдгээрийн хамт их биеийг хийхийн тулд хөнгөн цагаан дөрвөлжин тууз, самар, самар зэргийг зохих ёсоор нь тохируулах шаардлагатай болно.
Алхам 2: Биеийн бүтэц
Биеийн бүтэц нь хөнгөн цагаан дөрвөлжин саваагаар хийгдсэн бөгөөд угсрахад хялбар болно.
Одоогийн байдлаар тэдгээрийг зурагт үзүүлсэн шиг угсарч, серво моторыг гарт бэхлэх зохих зайг хайчилж ав.
Доод талд зургаан өнцөгт модон суурийг бэхлэнэ.
Модон суурийн доор бид ямар ч шугам дагагч робот шиг DC мотор, дугуйг бэхлээрэй.
Сонирхолтой нь роботын урд, нөгөө талд хоёр кастор дугуй нэмнэ үү.
Алхам 3: Цахилгааны утас ба кодчилол
Өөр өөр модулиудыг холбохын тулд энэ хэсэгт хавсаргасан кодыг үзнэ үү.
Эхлээд бид модуль бүрийг бие даасан код ашиглан туршиж үзээд дараа нь бүгдийг нэг дор нэгтгэж, bluetooth модулийг ашиглан дугуй, гарны хөдөлгөөнийг хянадаг.
Алхам 4: Raspberry Pi ба дүрс таних
Зураг таних ажлыг USB камер болон Raspberry Pi ашиглан гүйцэтгэдэг.
Үүний тулд та Pi дээрээ OPEN CV номын санг суулгах шаардлагатай болно.
Та үүнийг эндээс хийж болно-https://github.com/jabelone/OpenCV-for-Pi
Дараа нь та haar cascade ашиглан дүрс таних ажлыг гүйцэтгэх шаардлагатай болно.
Та үүнийг эндээс хийж болно -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Дээрх линкийг судалж үзээд үүнийг дагаж дууссаныхаа дараа би ашиглаж буй эцсийн кодоо өөрчилж, доор байрлуулж байна.
Өгөгдлийн сангийн генератор:
импорт cv2
cam = cv2. VideoCapture (0)
детектор = cv2. CascadeClassifier ('Classifiers/face.xml')
би = 0
офсет = 50
нэр = raw_input ('id -ээ оруулна уу')
үнэн байхад:
ret, im = cam.read ()
саарал = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
нүүр = илрүүлэгч.detectMultiScale (саарал, масштабтай хүчин зүйл = 1.2, мин хөрш = 5, мин хэмжээ = (100, 100), туг = cv2. CASCADE_SCALE_IMAGE)
(x, y, w, h) нүүрний хувьд:
i = i+1
cv2.imwrite ("dataSet/face."+нэр+'.'+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 -оос дээш байвал # завсарлага
элиф (би> 20):
завсарлага
cam.release ()
cv2.destroyAllWindows ()
Энэ нь таны зургийг баталгаажуулах зорилгоор ашиглах өгөгдлийн багц үүсгэх болно.
ДАСГАЛЖУУЛАГЧ:
importcv2, os
np гэж numpy импортлох
PIL импортын зурагнаас
танигч = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Ангилагч/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (зам):
image_paths = [os.path.join (path, f) for f in os.listdir (path)]
# зураг нүүрний зургийг агуулсан болно
зураг =
# шошго нь зурагт оноосон шошгыг агуулна
шошго =
image_paths дахь image_path -ийн хувьд:
# Зургийг уншаад саарал өнгөнд шилжүүлээрэй
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].rease ("face-", ""))
#nbr = int (''. join (str (ord (c)) in c in 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 (зам)
cv2.imshow ('тест', зураг [0])
cv2.waitKey (1)
танигч.трэйн (зураг, np.array (шошго))
танигч.хадгалах ('сургагч/сургагч.yml')
cv2.destroyAllWindows ()
ДЕТЕКТОР
импорт cv2
np гэж numpy импортлох
импортлох os
c = 0
танигч = cv2.face.createLBPHFaceRecognizer ()
хүлээн авагч. ачаалал ('trainer/trainer.yml')
cascadePath = "Ангилагч/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontscale = 1
фонт өнгө = (255, 255, 255)
үнэн байхад:
ret, im = cam.read ()
саарал = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
нүүр = faceCascade.detectMultiScale (саарал, 1.2, 5)
(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 = "Shashank"
элиф (Id == 2):
хэрэв (c == 0):
Id = "Шивам"
c = c+1
os.system ("espeak 'Welcome to Shivam Access Granted" ")
өөр:
Id = "Шивам"
өөр:
Id = "Үл мэдэгдэх"
cv2.putText (im, str (Id), (x, y+h), фонтын гадаргуу, фонтын хуваарь, фонтын өнгө)
cv2.imshow ('im', im)
хэрэв cv2.waitKey (10) & 0xFF == ord ('q'):
завсарлага
cam.release ()
cv2.destroyAllWindows ()
Алхам 5: LCD ба чанга яригч
Би бас I2C LED дэлгэц, чанга яригч ашигласан.
LED нь Arduino Mega -ээр хянагддаг бөгөөд түүний кодыг эцсийн код дээр өгдөг.
Илтгэгчийн хувьд энэ нь Raspberry Pi -тай холбогдсон бөгөөд eSpeak Utility -ийг ашигладаг.
Та түүний лавлагааг эндээс олж болно-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
Алхам 6: Эцсийн алхамууд
Бүгдийг цуглуулж, тэсрэлт хийхэд бэлэн байгаарай.
Зөвлөмж болгож буй:
Telepresence робот: Үндсэн платформ (1 -р хэсэг): 23 алхам (зурагтай)
Telepresence робот: Үндсэн платформ (1 -р хэсэг): Telepresence робот бол интернетээр алсаас удирдах боломжтой, өөр хэн нэгний орлуулагч болох үүрэгтэй робот юм. Жишээлбэл, хэрэв та Нью -Йоркт байгаа боловч Калифорн дахь багтай биечлэн харьцахыг хүсч байвал
Funbot - Үндсэн моторт өргөтгөх робот: 7 алхам
Funbot - Үндсэн моторт өргөтгөсөн робот: Бүгдээрээ сайн байцгаана уу Өнөөдөр би танд FunBot -ийг хэрхэн бүтээх талаар зааж өгөх болно, энэ нь эргэн тойрондоо өлгөх, хээ зурах, тойрон эргэлдэх, дугуйны дугуй болж хувирах чадвартай моторт робот юм. Үүнийг эд анги, реле, тэр ч байтугай микро хянагчаар өргөтгөх боломжтой боловч энэ нь асдаг
Гуманоид робот хэрхэн хийх вэ: 8 алхам
Гуманоид роботыг хэрхэн яаж хийх вэ: Хөөе залуусаа! Миний өмнөх зааварчилгаатай "Онлайн цаг уурын станц (NodeMCU)" танд таалагдсан гэж найдаж байна. мөн та шинээр авахад бэлэн байна, Бидний хамгийн сүүлд угсарсан SMARS загварын роботын өнөөдрийн төсөл бол робот сурах, сургах тухай юм
VHDL болон Basys3 самбарыг ашиглах үндсэн секундомер: 9 алхам
VHDL болон Basys3 самбарыг ашигладаг үндсэн секундомер: Үндсэн VHDL болон Basys 3 самбар ашиглан секундомер хэрхэн бүтээх тухай зааварчилгаанд тавтай морилно уу. Бид тантай төслөө хуваалцахдаа баяртай байна! Энэ бол 2016 оны намар Cal Poly, SLO -д зохион байгуулж буй CPE 133 (Дижитал дизайн) курсын эцсийн төсөл байв. Бидний бэлтгэсэн төсөл
Mac терминалыг хэрхэн ашиглах, гол функцийг хэрхэн ашиглах вэ: 4 алхам
Mac терминалыг хэрхэн ашиглах, гол функцийг хэрхэн ашиглах талаар: Бид танд MAC терминалыг хэрхэн нээхийг үзүүлэх болно. Бид танд терминалын дотор ifconfig, лавлахыг өөрчлөх, файлд хандах, arp гэх мэт цөөн хэдэн онцлог шинж чанаруудыг харуулах болно. Ifconfig нь танд IP хаяг болон MAC зараа шалгах боломжийг олгоно