Innholdsfortegnelse:

Tinku: en personlig robot: 9 trinn (med bilder)
Tinku: en personlig robot: 9 trinn (med bilder)

Video: Tinku: en personlig robot: 9 trinn (med bilder)

Video: Tinku: en personlig robot: 9 trinn (med bilder)
Video: Такие секреты уже все забыли, но их стоит знать! Полезные советы на все случаи жизни! 2024, Juli
Anonim
Tinku: en personlig robot
Tinku: en personlig robot

Av sw4pFollow More av forfatteren:

Immateriell overflate
Immateriell overflate
Immateriell overflate
Immateriell overflate
Slettet Instruerbar
Slettet Instruerbar
Slettet Instruerbar
Slettet Instruerbar
Papppiano
Papppiano
Papppiano
Papppiano

Hei der, Tinku er ikke bare en robot; det er en personlig robot. Det er en alt i en pakke. Den kan se (datasyn), lytte (talebehandling), snakke og reagere på situasjonen. Den kan uttrykke følelser, og listen over ting den kan gjøre fortsetter. Jeg ga den et navn; Jeg kaller det Tinku.

En kort introduksjon til hva den kan gjøre er

  1. Datamaskin syn

    • Ansiktsgjenkjennelse
    • Ansiktssporing
    • Ta bilder og ta opp video
    • Gjenkjenn ArUco -markører
  2. Talebehandling

    • Frakoblet talebehandling (Hotword -deteksjon)
    • Den kan forstå hva du sier ved å oppdage Hotwords.
  3. Express følelser

    • Det beveger hodet for ikke-verbal kommunikasjon og for å uttrykke følelser.
    • Den viser bilder og gifs på skjermen for å støtte den nåværende følelsen.
  4. Flytte rundt

    Den kan løpe rundt med hjulene og identifisere steder ved hjelp av ArUco -markører

  5. Hindring av hindringer

    Den har ekkoloddsensorer, slik at den alltid er klar over omgivelsene og kan unngå hindringer

Det kan gjøre mye mer. Du kan også implementere hvilke nye funksjoner du ønsker.

Nok snakk lar oss gjøre.

EDIT: Body of Tinku begynte å sprekke, så jeg måtte redesigne ham helt. Her er de nye bildene, helt ferske og bedre Tinku. Jeg beklager, jeg har ikke bildene av trinnene for å redesigne Tinku.

Trinn 1: Ting du trenger

Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger

Robots kropp

  1. Akrylark
  2. MDF -plate
  3. Små L klemmer
  4. Pakke med mutter og skrue

Servoer, motorer og hjul

  1. Dynamixel AX-12A (3 deler)
  2. Bioloid bolt og muttersett
  3. Motorer (2 deler)
  4. Spor (2 pakker)
  5. Sporhjul (4 stykker)
  6. L klemmer for motorer (2 deler)
  7. L klemme for dummy hjulaksel (2 deler)
  8. Dummy hjulaksel (2 deler)
  9. Bioloid ramme F8
  10. Bioloid Frame F3 (2 deler)
  11. Bioloid ramme F2
  12. Bioloid ramme F10

Elektronikk

  1. Arduino
  2. Raspberry Pi eller Udoo Quad
  3. Motorsjåfør
  4. Logitech webcam-c270 (den har innebygd mikrofon)
  5. Ultralydavstandssensorer (6 deler)
  6. Lipo batteri (3300 Mah 3S)
  7. Trinn opp spenningsregulatoren (DC-DC)
  8. Step-down spenningsregulator (DC-DC)
  9. Berøringsskjerm (7 tommer)
  10. USB -hub (bare hvis du bruker Udoo Quad fordi den bare har 2 USB -porter)
  11. 7404 hex inverter IC
  12. 74HC244 IC
  13. 14 -pinners IC -base
  14. 20 -pinners IC -base

Koblinger og kabler

  1. T-plugg mannlig batterikontakt
  2. Fleksibel HDMI -kabel (bare hvis skjermen har HDMI -kontakt)
  3. Micro USB -kabel
  4. Tre pins kvinnelig-hunn relimate kabel (6 stykker)
  5. DC fatkontakt hannstikkontakt (2 deler)
  6. Dynamixel servokontakter (3 deler)
  7. USB A til B -kabel (bare hvis den ikke fulgte med Arduino)
  8. Jumper ledninger
  9. Brødbrett ledninger
  10. Burg strips

For å lage PCB

  1. Kobberkledd laminat
  2. PCB etser (Fecl3)
  3. Perforert PCB
  4. 1 mm bor

Diverse

  1. Lim
  2. Kjøleribberør
  3. Standoffs

Merk: Her bruker jeg Udoo -kortet fordi det har bedre beregningshastighet enn bringebær pi 2. Jeg bruker en ekstern Arduino i stedet for den innebygde Arduino på Udoo -kortet fordi alle sensorene og modulene mine er 5v kompatible, og Arduino i Udoo board er 3v kompatibelt.

Trinn 2: Robotens kropp

Kroppen til roboten
Kroppen til roboten
Kroppen til roboten
Kroppen til roboten
Kroppen til roboten
Kroppen til roboten
Kroppen til roboten
Kroppen til roboten

For å forberede robotens kropp brukte jeg akrylarket og kuttet det i spesifisert størrelse for å lage en eske som struktur. Jeg nevnte dimensjonen på hver side av kroppen i bildet.

  1. Skjær akrylarket i henhold til den angitte størrelsen.
  2. Bor hull på bestemte steder for å montere motorer, sensorer, distanser og for å koble hver plate sammen.
  3. Bor større hull i bunnplaten og topplaten for å passere kabler.
  4. Lag et lite hakk på undersiden av front- og bakpanelet slik at ledningene som kommer fra ultralydssensoren kan passere.

Det er på tide å forberede og montere motorer og spor.

  1. Lodd ekstra ledninger til motorpinnene slik at ledningen kan nå motorførerne.
  2. Monter motorklemmene og dummy -hjulakselklemmene på robotens bunnplate.
  3. Koble motorer og dummyhjulsaksel til klemmene og koble deretter til hjul.
  4. Monter sporene og lag en løkke.
  5. Remspor på hjulene. Husk at sporet ikke slakker og har nok spenning på det.

Fest nå fronten, baksiden og det ene sidepanelet på bunnpanelet med små L -klemmer. Ikke monter toppanelet og det ene sidepanelet slik at vi har nok plass igjen til å montere elektronikken på roboten.

Trinn 3: Robotens hode og ansikt

Image
Image
Robotens hode og ansikt
Robotens hode og ansikt
Robotens hode og ansikt
Robotens hode og ansikt
Robotens hode og ansikt
Robotens hode og ansikt

Vi har allerede gitt kroppen og hjulene til roboten vår. Nå er det på tide å gi hodet, nakken og ansiktet.

Nakke:

Den mest kompliserte delen i hodet på roboten er nakken. Så vi skal forberede det først. Dynamixel servoer er litt forvirrende å jobbe med, men de er pålitelige og holdbare. Det er tonnevis med monteringsklemmer tilgjengelig for det, slik at du kan koble dem sammen på noen måte.

Se denne videoen for en bedre forklaring på hvordan du kobler dynamixelservoene sammen.

  1. Sett inn muttere i dynamixelservoene for å montere dem med rammer.
  2. Plasser bioloidramme F8 i midten av toppanelet og merk av borehull og bor dem.
  3. Fest bioloidrammen F8 til en av servoene, og monter deretter bioloidrammen F8 på toppanelet.
  4. Koble hver servo sammen ved hjelp av forskjellige rammer og forbered nakken.
  5. Koble servoer til hverandre ved hjelp av dynamixel tre-pinners servokontakter.

Øye og øre:

Jeg bruker Logitech webcam-c270 som øyet for roboten min. Det er et godt kamera som kan ta bilder og ta opp videoer i 720p. Den har også en innebygd mikrofon, derfor blir den øre for roboten min også. Etter en lang idédugnad fant jeg ut at det beste stedet å montere kameraet er på toppen av skjermen. Men for å montere kameraet trenger jeg et kamerafeste. Så la oss lage en.

  1. Fjern metallbitene fra webkameraet som følger med for å gi det litt vekt.
  2. Skjær to stykker fra MDF -platen, en firkant og en trekantet med dimensjonene vist på bildet.
  3. Bor et hull i bunnen av webkameraet og på det firkantede MDF -stykket. Lag et hakk på det firkantede stykket for å sette nettkabeltråden inn i den.
  4. Lim MDF-brikkene sammen for å danne en T-form. Kameraholderen er klar.
  5. Før du fester kameraholderen og kameraet sammen, må du først forberede hodet.

Hode:

Robotens hode er koblet til servoene. Det må være så lett som mulig, slik at hodet ikke påfører servoen mye belastning. Derfor brukte jeg MDF -platen i stedet for akrylark.

  1. Skjær et stykke MDF -brett med dimensjoner (18 cm x 13 cm) og bor hull for å montere skjermen.
  2. Plasser bioloidrammen F10 i midten av MDF -platen og merk av borehull og bor dem.
  3. Sett bioloidrammen F10 og bioloidrammen F2 på hver side av MDF -platen og sett dem sammen med mutter og skrue.
  4. Lim nå kamerafeste på baksiden av brettet.
  5. Bli med på bioloidramme F2 med slutten av servokonfigurasjonen.
  6. Monter skjermen på MDF -kortet ved hjelp av avstand.
  7. Fest webkameraet på kamerafeste.

Nå er hodet og ansiktet til roboten komplett.

Trinn 4: Tilpassede PCB -er

Tilpassede PCB -er
Tilpassede PCB -er
Tilpassede PCB -er
Tilpassede PCB -er
Tilpassede PCB -er
Tilpassede PCB -er

Nå er det på tide å løse opp noen fecl3 og etse noen PCB -er.

Hvorfor laget jeg tilpassede PCB -er?

  • Jeg har ikke dynamixel servokontroller, så jeg må lage en.
  • Jeg må koble mange sensorer til Arduino på en renere måte, så jeg laget et skjold for Arduino.

La oss lage.

  1. Last ned PCB -filene og skriv dem ut på det kobberbelagte laminatet.
  2. Ets det kobberkledde laminatet ved hjelp av fecl3
  3. Bor 1 mm hull for montering av IC og burg -stripe.
  4. For å få skjoldstabelhodene til å gli ned plaststoppene på burglisten mot enden av pinnene.
  5. Lodd IC basene og burg strip på PCB.
  6. Jeg ga skjemaene for referanseformål.

Merk - Bruk Express PCB -programvare for å åpne.pcb og Express SCH -programvaren for å åpne.sch -filen.

Trinn 5: Strømforsyning

Strømforsyning
Strømforsyning
Strømforsyning
Strømforsyning

Det er svært nødvendig å opprettholde en jevn kraft på tvers av robotens forskjellige elektroniske moduler og motorer. Hvis strømmen faller under grenseverdien i en hvilken som helst modul som vil forårsake feil og det er veldig vanskelig å identifisere årsaken bak den.

Den primære energikilden i denne roboten er et 2200mAh 3S Lipo -batteri. Dette batteriet har tre celler, og spenningsutgangen er 11,1 volt. Udoo -kortet trenger 12v forsyning, og Arduino -kortet trenger 5v forsyning. Så jeg velger å bruke to spenningsregulatorer, den ene er trinn-opp, og den andre er trinn-ned. Den ene vil beholde strømforsyningen til alle 12v -modulene, og den andre beholde den nåværende forsyningen til alle 5v -modulene.

Bildet inneholder håndtegnede skjemaer.

  • Lodd spenningsregulatorene på de perforerte kretskortene.
  • Lodd T-plugg-hankontakten til inngangen til begge spenningsregulatorene.
  • Koble til "bakken" -utgangen til begge regulatorene.
  • Koble DC fatkontakter til hver av regulatorens utgang. Hold lengden på ledningene nok til at den kan nå Udoo/Raspberry Pi og Arduino -kortet.
  • Lodde burg strip til hver av regulatorens utgang som ekstra effekt i tilfelle vi trenger det i fremtiden modifikasjon.
  • Før du kobler strømforsyningen til noen av de elektroniske modulene, må du kalibrere effekten til hver regulator ved hjelp av trimpotensiometeret som er levert til nøyaktig 12v og 5v.

Trinn 6: Sluttmontering

Sluttmontering
Sluttmontering
Sluttmontering
Sluttmontering
Sluttmontering
Sluttmontering

Det er på tide nå. Etter så mange trinn er det på tide å sette sammen hver modul. Spent? Vel, jeg er.

  • Skjær et rektangulært stykke av MDF -platen med dimensjoner (30 cm x 25 cm). Dette kortet er grunnlaget for montering av elektroniske moduler. Jeg vil ikke bore mange hull i basen i akrylplaten, så jeg bruker MDF -plate. Det hjelper også med å skjule ledninger under det for å få roboten til å se pen og ren ut.
  • Plasser moduler på MDF -platen og merk av monteringshullene og bor dem. Lag noen ekstra hull for å føre ledningene under MDF -kortet.
  • Jeg tildelte tall til noen hull, så det blir lett for meg å henvise dem og for deg å forstå ledningsskjemaene.

Strømforsyning:

  • Monter strømforsyningsmodulen på brettet og før 12v og 5v kontakten gjennom hull nummer 1 og trekk ut 12v kontakten gjennom hull nummer 2 og trekk ut 5v kontakten gjennom hull nummer 3.
  • Jeg holdt batteriet løst for nå fordi jeg må fjerne og lade det noen ganger.

Motordriver:

  • Trekk ut ledningene som er koblet til motorene gjennom hull nummer 4 og koble dem til motordriverkortet.
  • Motorer trenger 12v strømforsyning for å fungere skikkelig, så koble 12v og GND -pinnen til driveren med 12v spenningsregulatorens utgang.
  • Koble pinnene på motorføreren til Arduino i henhold til koden.

Arduino:

  • Før montering av Arduino, før ledningene til de tre ultralydsensorene gjennom bakpanelet og før ledningene til de tre resterende ultralydsensorene gjennom frontpanelet og trekk dem ut gjennom hullet nummer 3.
  • Monter Arduino og fest sensorskjermen på den.
  • Jeg ga tall til alle ultralydsensortrådene, slik at det er lett å feilsøke i tilfelle feil. Koble sensorpinnene til skjoldet fra nummer 1 til 6 etter hverandre.
  • Koble 5v strømkontakten til Arduino.

Dynamixel Servo Controller:

  • Monter dynamixel servokontrolleren på brettet.
  • Koble 12v- og GND -pinnen til servokontrolleren med 12v spenningsregulatorens utgang.
  • Koble 5v og GND -pinnen til servokontrolleren med 5v spenningsregulatorens utgang.
  • Koble pinnene på servokontrolleren og Arduino i henhold til koden.
  • La servo -utgangspinnen være frakoblet for øyeblikket. Koble den til etter montering av toppanelet på roboten.

Udoo / Raspberry Pi:

Merk: Før du følger trinnene nedenfor, må du kontrollere at du allerede har installert operativsystemet på MicroSD -kortet og plassert det i Udoo / Raspberry Pi -kortet. Hvis ikke, følg koblingene for å installere Raspbian på Raspberry Pi eller Udoobuntu på Udoo -brettet.

  • Monter Udoo / Raspberry Pi på brettet og koble strømkontakten til den.
  • Hvis du bruker Udoo, kobler du USB -huben til en av USB -kontaktene.
  • Koble HDMI -kabelen og mikro -USB -kabelen til den. Disse pinnene brukes til å levere data og strøm til skjermen.
  • Koble Arduino til Udoo / Raspberry Pi ved hjelp av A til B USB -kabel.

Topplate:

  • Fest toppanelet til side-, front- og bakpanelene på roboten ved hjelp av L -klemmer.
  • Koble HDMI -kabelen, mikro -USB -kabelen til skjermen og webkameraet til Udoo / Raspberry Pi -kortet.
  • Koble den tre-pinners servokontakten som kommer fra basen dynamixel servoen med servokontrolleren. Ta vare på hvilken pin som er DATA, GND og +12v. Se bildene i delen "Hodet og ansiktet til roboten" for bedre referanse. Hvis du kobler ledningene i motsatt rekkefølge, kan det skade servoene.

Ultralydavstandssensorer:

Den siste brikken i puslespillet. Etter dette er vår samling nesten over.

  • Skjær seks rektangulære stykker av MDF -platen/akrylarket med dimensjoner (6 cm x 5 cm).
  • Bor hull i dem på nødvendige steder.
  • Fest ultralydsensorene til hvert av brettene og fest alle brettene med robotens bunnpanel.
  • Koble sensorene med kontakter.

Endelig er det gjort. Koble til batteriet og start Udoo/Raspberry Pi

Trinn 7: Programvare

Maskinvaren er komplett, men uten programvare er denne roboten bare en eske. Listen over programvaren vi trenger er

  • TettVNC
  • Python
  • OpenCV
  • Snowboy
  • Noen python -pakker

    • Pyautogui
    • numpy
    • pyserial
    • pyaudio

TettVNC:

TightVNC er en gratis programvare for fjernkontroll. Med TightVNC kan du se skrivebordet til en ekstern maskin og kontrollere den med din lokale mus og tastatur, akkurat som du ville gjøre det sittende foran på datamaskinen.

Hvis du har ekstra tastatur og mus, er det bra. Hvis ikke, installer du TightVNC i den bærbare datamaskinen og følg disse trinnene.

For første gang kobler du tastatur og mus til Udoo / Raspberry Pi. Koble til et wifi -nettverk. Åpne Terminal og skriv

$ ifconfig

  • Noter IP -adressen til roboten.
  • Åpne TightVNC på den bærbare datamaskinen. Skriv inn IP -adressen i det obligatoriske feltet og trykk Enter. Voila! Du er tilkoblet nå. Bruk den bærbare datamaskinens styreplate og tastatur for å få tilgang til roboten.

Python:

Python er et veldig populært og allsidig språk, og derfor bruker jeg det som det primære programmeringsspråket for denne roboten.

Her bruker jeg python 2.7, men hvis du vil kan du også bruke python 3. Heldigvis kommer Python forhåndsinstallert i både Udoobuntu og Raspbian OS. Så vi trenger ikke å installere det.

OpenCV:

OpenCV er et open source-bibliotek hovedsakelig rettet mot sanntids datasyn. OpenCV med Python er veldig enkel å bruke. Å installere OpenCV er litt tungvint, men det er mange veldig enkle å følge guider tilgjengelig. Min personlige favoritt er denne. Denne guiden er for Raspberry Pi, men du kan også bruke den til Udoo -brettet.

Snowboy:

Snowboy er et bibliotek skrevet av Kitt.ai -gutta, hovedsakelig rettet mot talebehandling offline/deteksjon av hotword. Det er veldig enkelt å bruke. Følg denne lenken for å installere snowboy på Raspberry Pi. Hvis du bruker Udoo -brettet, kan du gå til dette prosjektet, skrevet av hvordan jeg installerer snowboy i Udoo.

Python -pakker:

Følg disse brukervennlige veiledningene for å installere noen python -pakker.

  1. Pyautogui - Pyautogui er en pakke for å simulere tastetrykk på et tastatur eller musen i bevegelse.
  2. Numpy - skriv "pip install numpy" i Linux -skallet og trykk enter. Det er så enkelt.
  3. Pyserial - Pyserial er en pakke rettet mot seriell kommunikasjon via python. Vi vil bruke den til å kommunisere med Arduino.

Trinn 8: Koder

Maskinvaredelen er komplett. Programvaredelen er fullført. Nå er det på tide å gi en sjel til denne roboten.

La oss kode.

Koden for denne roboten er noe komplisert, og jeg legger for øyeblikket til flere funksjoner. Derfor har jeg vært vert for kodene i mitt Github -depot. Du kan sjekke det ut og klone/laste ned koder derfra.

Nå er det ikke bare en robot; det er Tinku nå.

Trinn 9: Demo

Image
Image

Demo. yeeeeee !!

Dette er noen av de grunnleggende demoer. Det er mye mer interessant som kommer.

Følg med for flere oppdateringer, og hvis du er i tvil, kan du gjerne kommentere.

Takk for at du leste prosjektet mitt. Du er kjempebra.

Hvis du liker dette prosjektet, kan du stemme det i Microcontroller and Robotics -konkurransen

Liker å lage;-)

Anbefalt: