Inhoudsopgave:

Tinku: een persoonlijke robot - Ajarnpa
Tinku: een persoonlijke robot - Ajarnpa

Video: Tinku: een persoonlijke robot - Ajarnpa

Video: Tinku: een persoonlijke robot - Ajarnpa
Video: Mähroboter kaufen 2023 ► Die 10 besten Rasenmäher Roboter im Vergleich 2024, Juli-
Anonim
Tinku: een persoonlijke robot
Tinku: een persoonlijke robot

Door sw4pVolg meer door de auteur:

Immateriële Oppervlakte
Immateriële Oppervlakte
Immateriële Oppervlakte
Immateriële Oppervlakte
Instructable verwijderd
Instructable verwijderd
Instructable verwijderd
Instructable verwijderd
Kartonnen piano
Kartonnen piano
Kartonnen piano
Kartonnen piano

Hallo daar, Tinku is niet zomaar een robot; het is een persoonlijke robot. Het is een alles in één pakket. Het kan zien (computervisie), luisteren (spraakverwerking), praten en reageren op de situatie. Het kan emoties uiten, en de lijst van dingen die het kan doen gaat maar door. Ik gaf het een naam; Ik noem het Tinku.

Een korte introductie van wat het kan doen is:

  1. Computer visie

    • Gezichtsherkenning
    • Gezicht volgen
    • Foto's maken en video opnemen
    • Herken ArUco-markeringen
  2. Spraakverwerking

    • Offline spraakverwerking (hotword-detectie)
    • Het kan begrijpen wat u zegt door Hotwords te detecteren.
  3. Emoties uiten

    • Het beweegt zijn hoofd voor non-verbale communicatie en om gevoelens te uiten.
    • Het toont afbeeldingen en gifs op het scherm om het huidige sentiment te ondersteunen.
  4. Beweeg

    Het kan rondrennen met behulp van zijn wielen en plaatsen identificeren met behulp van ArUco-markeringen

  5. Obstakel vermijden

    Het heeft sonarsensoren, zodat het altijd op de hoogte is van zijn omgeving en obstakels kan vermijden

Het kan veel meer dingen doen. Je kunt ook implementeren welke nieuwe functionaliteiten je wilt.

Genoeg gepraat, laten we maken.

EDIT: Lichaam van Tinku begon te kraken, dus ik moest hem volledig opnieuw ontwerpen. Hier zijn de nieuwe afbeeldingen, helemaal fris en beter Tinku. Het spijt me, ik heb geen afbeeldingen van de stappen van het opnieuw ontwerpen van Tinku.

Stap 1: Dingen die je nodig hebt

Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt
Dingen die je nodig hebt

Het lichaam van de robot

  1. Acrylplaat
  2. MDF-plaat
  3. Kleine L-klemmen
  4. Pak moer en schroef

Servo's, motoren en wielen

  1. Dynamixel AX-12A (3 stuks)
  2. Bioloid bout en moer set
  3. Motoren (2 stuks)
  4. Rails (2 pakjes)
  5. Spoorwielen (4 stuks)
  6. L-klemmen voor motoren (2 stuks)
  7. L klem voor dummy wielas (2 stuks)
  8. Dummy wielas (2 stuks)
  9. Bioloïde Frame F8
  10. Bioloid Frame F3 (2 stuks)
  11. Bioloïde Frame F2
  12. Bioloïde Frame F10

Elektronica

  1. Arduino
  2. Raspberry Pi of Udoo Quad
  3. Motor bestuurder
  4. Logitech webcam-c270 (hij heeft een ingebouwde microfoon)
  5. Ultrasone afstandssensoren (6 stuks)
  6. Lipo-batterij (3300 Mah 3S)
  7. Opvoeren spanningsregelaar (DC-DC)
  8. Step-down spanningsregelaar (DC-DC)
  9. Touchscreen (7 inch)
  10. USB-hub (alleen als u Udoo Quad gebruikt omdat deze slechts 2 USB-poorten heeft)
  11. 7404 hex-omvormer IC
  12. 74HC244 IC
  13. 14-pins IC-basis
  14. 20-pins IC-basis

Connectoren en kabels

  1. T-stekker mannelijke batterijconnector
  2. Flexibele HDMI-kabel (alleen als uw scherm een HDMI-connector heeft)
  3. Micro-USB-kabel
  4. Driepolige vrouw-vrouw relimate kabel (6 stuks)
  5. DC barrel jack mannelijke stekker (2 stuks)
  6. Dynamixel servo connectoren (3 stuks)
  7. USB A naar B-kabel (alleen als deze niet met Arduino is geleverd)
  8. Doorverbindingsdraden
  9. Breadboard draden
  10. Burgstrips

Voor het maken van PCB's

  1. Met koper bekleed laminaat
  2. PCB-etser (Fecl3)
  3. Geperforeerde PCB
  4. 1 mm boor

Diversen

  1. Lijm
  2. Koellichaam buizen
  3. afstanden

Opmerking: hier gebruik ik het Udoo-bord omdat het een betere rekensnelheid heeft dan mijn raspberry pi 2. Ik gebruik een externe Arduino in plaats van de ingebouwde Arduino van het Udoo-bord omdat al mijn sensoren en modules 5v-compatibel zijn en de Arduino in Udoo-bord is 3v-compatibel.

Stap 2: Lichaam van de robot

Lichaam van de robot
Lichaam van de robot
Lichaam van de robot
Lichaam van de robot
Lichaam van de robot
Lichaam van de robot
Lichaam van de robot
Lichaam van de robot

Om het lichaam van de robot voor te bereiden, heb ik de acrylplaat gebruikt en deze in een bepaalde maat gesneden om een doosachtige structuur te maken. Ik noemde de afmeting van elke kant van het lichaam in de afbeelding.

  1. Snijd de plexiglas plaat volgens de opgegeven maat.
  2. Boor gaten op specifieke plaatsen om de motoren, sensoren, afstandhouders te monteren en om elke plaat met elkaar te verbinden.
  3. Boor een groter gat in de grondplaat en de bovenplaat om kabels door te voeren.
  4. Maak een kleine inkeping aan de onderkant van het voor- en achterpaneel zodat de draden die van de ultrasone sensor komen er doorheen kunnen.

Het is tijd om de motoren en rupsbanden voor te bereiden en te monteren.

  1. Soldeer extra draden aan de motorpinnen zodat de draad de motordrivers kan bereiken.
  2. Monteer de motorklemmen en dummy wielasklemmen op de grondplaat van de robot.
  3. Sluit de motoren en de dummy-wielas aan op de klemmen en sluit vervolgens de wielen aan.
  4. Monteer de sporen en maak een lus.
  5. Bandspoor op de wielen. Houd er rekening mee dat de baan niet verslapt en voldoende spanning heeft.

Verbind nu het voor-, achter- en een zijpaneel op het basispaneel met behulp van kleine L-klemmen. Monteer het bovenpaneel en een zijpaneel niet zodat we genoeg ruimte over hebben om de elektronica op de robot te monteren.

Stap 3: Hoofd en gezicht van de robot

Image
Image
Hoofd en gezicht van de robot
Hoofd en gezicht van de robot
Hoofd en gezicht van de robot
Hoofd en gezicht van de robot
Hoofd en gezicht van de robot
Hoofd en gezicht van de robot

We hebben al een lichaam en wielen aan onze robot gegeven. Nu is het tijd om het een hoofd, nek en gezicht te geven.

Nek:

Het meest gecompliceerde deel in het hoofd van de robot is de nek. Dus we zullen het eerst voorbereiden. Dynamixel-servo's zijn een beetje verwarrend om mee te werken, maar ze zijn betrouwbaar en duurzaam. Er zijn talloze montageklemmen voor beschikbaar, zodat je ze op elke manier aan elkaar kunt koppelen.

Bekijk deze video voor een betere uitleg over het aan elkaar koppelen van de dynamixel servo's.

  1. Plaats moeren in de dynamixel-servo's om ze met frames te monteren.
  2. Plaats bioloid frame F8 in het midden van het bovenpaneel en markeer de boorgaten en boor deze.
  3. Bevestig het bioloid frame F8 aan een van de servo's en monteer vervolgens het bioloid frame F8 op het bovenpaneel.
  4. Verbind elke servo met verschillende frames en bereid de nek voor.
  5. Verbind servo's met elkaar met behulp van dynamixel driepolige servoconnectoren.

Oog en oor:

Ik gebruik de Logitech webcam-c270 als oog voor mijn robot. Het is een goede camera die foto's en video's kan maken in 720p. Het heeft ook een ingebouwde microfoon, daarom wordt het ook een oor voor mijn robot. Na lang brainstormen kwam ik erachter dat de beste plek om de camera te monteren bovenop het scherm is. Maar voor het monteren van de camera heb ik een camerabevestiging nodig. Dus laten we er een maken.

  1. Verwijder de metalen delen van de webcam die zijn meegeleverd om hem wat gewicht te geven.
  2. Snijd twee stukken van de MDF-plaat, een vierkant en een driehoekig met de afmetingen zoals weergegeven in de afbeelding.
  3. Boor een gat in de basis van de webcam en op het vierkante MDF-stuk. Maak een inkeping op het vierkante stuk om de webcamdraad erin te steken.
  4. Lijm de MDF-stukken aan elkaar om een T-vorm te vormen. De camerabevestiging is klaar.
  5. Voordat u de camerabevestiging en de camera aan elkaar bevestigt, moet u eerst de kop voorbereiden.

Hoofd:

De kop van de robot is verbonden met de servo's. Het moet zo licht mogelijk zijn, zodat de kop de servo's niet te veel belast. Daarom heb ik de MDF-plaat gebruikt in plaats van acrylplaat.

  1. Snijd een stuk MDF-plaat met afmeting (18 cm x 13 cm) en boor gaten om het scherm te monteren.
  2. Plaats bioloid frame F10 in het midden van de MDF-plaat en markeer de boorgaten en boor deze.
  3. Plaats bioloid frame F10 en bioloid frame F2 aan elke kant van de MDF-plaat en voeg ze samen met behulp van moer en schroef.
  4. Lijm nu de camerabevestiging op de achterkant van het bord.
  5. Verbind bioloid frame F2 met het einde van de servoconfiguratie.
  6. Monteer het scherm op de MDF-plaat met behulp van afstandhouders.
  7. Bevestig de webcam op de camerabevestiging.

Nu zijn ons hoofd en gezicht van de robot compleet.

Stap 4: Aangepaste PCB's

Aangepaste PCB's
Aangepaste PCB's
Aangepaste PCB's
Aangepaste PCB's
Aangepaste PCB's
Aangepaste PCB's

Nu is het tijd om wat fecl3 op te lossen en wat PCB's te etsen.

Waarom ik aangepaste PCB's heb gemaakt?

  • Ik heb geen dynamixel servocontroller, dus ik moet er een maken.
  • Ik moet veel sensoren op een schonere manier op de Arduino aansluiten, dus heb ik een schild gemaakt voor Arduino.

Laten we maken.

  1. Download de PCB-bestanden en print ze op het met koper beklede laminaat.
  2. Ets het met koper beklede laminaat met fecl3
  3. Boor gaten van 1 mm voor montage van IC's en burgstrip.
  4. Om de schildstapelkoppen te maken, schuift u de plastic stoppers van de burgstrip naar het uiteinde van de pinnen.
  5. Soldeer de IC-bases en de burg-strip op de PCB's.
  6. Ik heb de schema's ter referentie verstrekt.

Opmerking - Gebruik Express PCB-software om de.pcb- en Express SCH-software te openen om het.sch-bestand te openen.

Stap 5: Voeding

Stroomvoorziening
Stroomvoorziening
Stroomvoorziening
Stroomvoorziening

Het handhaven van een consistent vermogen over de verschillende elektronische modules en motoren van de robot is zeer noodzakelijk. Als het vermogen in een module onder de grenswaarde daalt, zal dit een storing veroorzaken en is het erg moeilijk om de reden erachter te identificeren.

De primaire energiebron in deze robot is een 2200mAh 3S Lipo-batterij. Deze batterij heeft drie cellen en de uitgangsspanning is 11,1 volt. Het Udoo-bord heeft 12v-voeding nodig en het Arduino-bord heeft 5v-voeding nodig. Dus ik kies ervoor om twee spanningsregelaars te gebruiken, de ene is step-up en de andere is step-down. De ene zal de stroomtoevoer naar alle 12v-modules behouden en de andere zal de stroomtoevoer naar alle 5v-modules behouden.

De afbeelding bevat handgetekende schema's.

  • Soldeer de spanningsregelaars op de geperforeerde printplaten.
  • Soldeer de T-plug mannelijke batterijconnector aan de ingang van beide spanningsregelaars.
  • Sluit de uitgang 'Grond' van beide regelaars aan.
  • Sluit DC-cilinderaansluitingen aan op elk van de uitgangen van de regelaar. Houd de lengte van de draden voldoende zodat deze het Udoo/Raspberry Pi- en Arduino-bord kunnen bereiken.
  • Soldeer een strip op elk van de uitgangen van de regelaar als extra uitgangsvermogen voor het geval we het in de toekomstige wijziging nodig hebben.
  • Voordat u de voeding op een van de elektronische modules aansluit, moet u de uitgang van elke regelaar kalibreren met behulp van de meegeleverde trimpotentiometer op exact 12v en 5v.

Stap 6: Eindmontage

Eindmontage
Eindmontage
Eindmontage
Eindmontage
Eindmontage
Eindmontage

Het is nu tijd. Na zoveel stappen is het tijd om elke module in elkaar te zetten. Opgewonden? Nou, dat ben ik.

  • Snijd een rechthoekig stuk van de MDF-plaat met afmeting (30 cm x 25 cm). Dit bord is de basis voor het monteren van elektronische modules. Ik wil niet veel gaten in de acrylbasisplaat boren, dus ik gebruik MDF-plaat. Het helpt ook bij het verbergen van draden eronder om onze robot er netjes en schoon uit te laten zien.
  • Plaats modules op de MDF-plaat en markeer de montagegaten en boor ze. Maak wat extra gaten om de draden onder de MDF-plaat door te voeren.
  • Ik heb nummers aan sommige gaten toegewezen, dus het wordt gemakkelijk voor mij om ze te verwijzen en voor u om de bedradingsschema's te begrijpen.

Stroomvoorziening:

  • Monteer de voedingsmodule op het bord en steek de 12v en 5v jack door gat nummer 1 en trek de 12v jack eruit door gat nummer 2 en trek de 5v jack eruit door gat nummer 3.
  • Ik heb de batterij voorlopig losgelaten omdat ik hem soms moet verwijderen en opladen.

Motor bestuurder:

  • Trek de draden die op de motoren zijn aangesloten door het gat nummer 4 naar buiten en sluit ze aan op de motorbesturingskaart.
  • Motoren hebben de 12v-voeding nodig om goed te kunnen werken, dus sluit de 12v- en GND-pin van de driver aan op de uitgang van de 12v-spanningsregelaar.
  • Verbind de pinnen van de motordriver met Arduino volgens de code.

Arduino:

  • Voordat u de Arduino monteert, voert u de draden van de drie ultrasone sensoren door het achterpaneel en voert u de draden van de overige drie ultrasone sensoren door het voorpaneel en trekt u ze eruit door het gat nummer 3.
  • Monteer de Arduino en bevestig het sensorschild erop.
  • Ik heb nummers gegeven aan alle ultrasone sensordraden, zodat het gemakkelijk is om fouten te debuggen in geval van een bug. Sluit de sensorpinnen achter elkaar aan op de afscherming, beginnend bij nummer 1 tot en met 6.
  • Sluit de 5v power jack aan op de Arduino.

Dynamixel servocontroller:

  • Monteer de dynamixel servocontroller op het bord.
  • Verbind de 12v- en GND-pin van de servocontroller met de uitgang van de 12v-spanningsregelaar.
  • Verbind de 5v- en GND-pin van de servocontroller met de uitgang van de 5v-spanningsregelaar.
  • Verbind de pinnen van de servocontroller en Arduino volgens de code.
  • Laat de servo-uitgangspin voorlopig losgekoppeld. Sluit hem aan na montage van het bovenpaneel van de robot.

Udoo / Raspberry Pi:

Opmerking: Voordat u de onderstaande stappen volgt, moet u ervoor zorgen dat u het besturingssysteem al op de MicroSD-kaart hebt geïnstalleerd en in het Udoo / Raspberry Pi-bord hebt geplaatst. Zo niet, volg dan de links voor het installeren van Raspbian op de Raspberry Pi of Udoobuntu op het Udoo-bord.

  • Monteer de Udoo / Raspberry Pi op het bord en sluit de power jack hierop aan.
  • Als u de Udoo gebruikt, sluit dan de USB-hub aan op een van de USB-aansluitingen.
  • Sluit de HDMI-kabel en micro-USB-kabel erop aan. Deze pinnen worden gebruikt om gegevens en stroom naar het scherm te leveren.
  • Verbind de Arduino met Udoo / Raspberry Pi met behulp van een A naar B USB-kabel.

Bovenpaneel:

  • Bevestig het bovenpaneel aan de zij-, voor- en achterpanelen van de robot met behulp van L-klemmen.
  • Sluit de HDMI-kabel, micro-USB-kabel aan op het scherm en webcam op het Udoo / Raspberry Pi-bord.
  • Verbind de driepolige servoconnector die van de basisdynamixelservo komt met de servocontroller. Let op welke pin DATA, GND en +12v is. Raadpleeg de afbeeldingen in het gedeelte "Hoofd en gezicht van de robot" voor een betere referentie. Als u de draden in omgekeerde volgorde aansluit, kan dit de servo's beschadigen.

Ultrasone afstandssensoren:

Het laatste stukje van de puzzel. Hierna is onze vergadering bijna voorbij.

  • Snijd zes rechthoekige stukken van de MDF-plaat/acrylplaat met afmetingen (6 cm x 5 cm).
  • Boor er gaten in op de gewenste plaatsen.
  • Bevestig de ultrasone sensoren aan elk bord en bevestig alle borden met het basispaneel van de robot.
  • Verbind de sensoren met connectoren.

Eindelijk, het is klaar. Sluit de batterij aan en start de Udoo/Raspberry Pi. op

Stap 7: Software

Hardware is compleet, maar zonder software is deze robot gewoon een doos. De lijst met de software die we nodig hebben, is:

  • StrakkeVNC
  • Python
  • OpenCV
  • Sneeuwjongen
  • Sommige pythonpakketten

    • Pyautogui
    • numpy
    • pyseriaal
    • pyaudio

StrakkeVNC:

TightVNC is een gratis softwarepakket voor afstandsbediening. Met TightVNC kun je het bureaublad van een externe machine zien en deze bedienen met je lokale muis en toetsenbord, net zoals je zou doen terwijl je voor die computer zit.

Als je extra toetsenbord en muis hebt, is dat goed. Zo niet, installeer dan TightVNC op uw laptop en volg deze stappen.

Sluit voor het eerst toetsenbord en muis aan op de Udoo / Raspberry Pi. Maak verbinding met een wifi-netwerk. Terminal openen en typen

$ ifconfig

  • Noteer het IP-adres van de robot.
  • Open TightVNC op uw laptop. Voer het IP-adres in het vereiste veld in en druk op Enter. Voila! U bent nu verbonden. Gebruik het touchpad en toetsenbord van je laptop om toegang te krijgen tot de robot.

Python:

Python is een erg populaire en veelzijdige taal, daarom gebruik ik het als de primaire programmeertaal voor deze robot.

Hier gebruik ik python 2.7, maar als je wilt, kun je ook python 3 gebruiken. Gelukkig is Python vooraf geïnstalleerd in zowel het Udoobuntu- als het Raspbian-besturingssysteem. We hoeven het dus niet te installeren.

Open CV:

OpenCV is een open-source bibliotheek die voornamelijk gericht is op realtime computervisie. OpenCV met Python is heel gemakkelijk te gebruiken. Het installeren van OpenCV is een beetje omslachtig, maar er zijn tal van zeer eenvoudig te volgen handleidingen beschikbaar. Mijn persoonlijke favoriet is deze. Deze handleiding is voor Raspberry Pi, maar je kunt hem ook gebruiken voor een Udoo-bord.

sneeuwjongen:

Snowboy is een bibliotheek geschreven door Kitt.ai-jongens, voornamelijk gericht op offline spraakverwerking / hotword-detectie. Het is heel gemakkelijk te gebruiken. Volg deze link om snowboy op de Raspberry Pi te installeren. Als je een Udoo-bord gebruikt, ga dan naar dit project, geschreven door meto install snowboy in de Udoo.

Python-pakketten:

Volg deze gebruiksvriendelijke handleidingen om enkele python-pakketten te installeren.

  1. Pyautogui - Pyautogui is een pakket om toetsaanslagen van een toetsenbord of de muisbeweging te simuleren.
  2. Numpy - typ "pip install numpy" in de Linux-shell en druk op enter. Zo simpel is het.
  3. Pyserial - Pyserial is een pakket gericht op seriële communicatie via python. We zullen het gebruiken om te communiceren met de Arduino.

Stap 8: Codes

Het hardwaregedeelte is voltooid. Het softwaregedeelte is voltooid. Nu is het tijd om deze robot een ziel te geven.

Laten we coderen.

De code voor deze robot is wat ingewikkeld en ik ben er momenteel meer functionaliteiten aan aan het toevoegen. Daarom heb ik de codes in mijn Github-repository gehost. Je kunt het bekijken en codes klonen/downloaden vanaf daar.

Nu is het niet zomaar een robot; het is nu Tinku.

Stap 9: Demo

Image
Image

Demo. jeeeeee!!

Dit zijn enkele van de basisdemo's. Er komen nog veel meer interessante.

Blijf op de hoogte voor meer updates en als je twijfelt, voel je vrij om commentaar te geven.

Bedankt voor het lezen van mijn project. Je bent geweldig.

Als je dit project leuk vindt, stem er dan op in de Microcontroller and Robotics-wedstrijd

Veel plezier met maken;-)

Aanbevolen: