Inhoudsopgave:
- Stap 1: Montage van de motorbesturingskaart
- Stap 2: Servomotorassemblage
- Stap 3: Software
- Stap 4: Webcambevestiging
- Stap 5: Conclusie
Video: Autonome tafelvoetbaltafel - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Het belangrijkste doel van het project was om een werkend prototype te voltooien voor een Autonomous Foosball Table (AFT), waar een menselijke speler tegenover een robotachtige tegenstander staat. Vanuit het menselijke perspectief van het spel lijkt de tafelvoetbaltafel erg op een gewone tafel. De speler(s) aan de menselijke kant worden bestuurd via een reeks van vier hendels die in en uit kunnen worden bewogen en kunnen worden gedraaid om de spelers lineair over het speelveld te bewegen en de bal naar het doel van de tegenstander te trappen. De autonome kant bestaat uit:> Acht servomotoren die worden gebruikt om de handgrepen van de tafelvoetbaltafel te manipuleren> Een microcontroller om de servomotoren te activeren en te communiceren met de computer> Een boven het hoofd gemonteerde webcam om de bal en spelers te volgen> Een computer om te verwerken de webcambeelden, de implementatie van kunstmatige intelligentie en de communicatie met de microcontrollerBudgetbeperkingen voor het prototype vertraagden het project enigszins en hielden de functionaliteit tot een minimum beperkt. De juiste motoren om de spelers met een concurrerende snelheid te bewegen bleken erg duur te zijn, dus moesten lagere servo's worden gebruikt. Hoewel deze specifieke implementatie beperkt was door kosten en tijd, zou een grotere overbrengingsverhouding een sneller spelende robot opleveren, hoewel dit zou meer kosten dan de basisprijs van $ 500 (prijs zonder voeding en computer).
Stap 1: Montage van de motorbesturingskaart
De bijgevoegde afbeeldingen zijn een volledig circuitschema en een afbeelding van het eindproduct voor de motorbesturingskaart. Al deze vereiste onderdelen kunnen worden gekocht bij de meeste grote online elektronicawinkels (inclusief Digi-Key en Mouser). Even terzijde: alle onderdelen die hier werden gebruikt, waren doorlopende gaten en dus kunnen de onderdelen worden geassembleerd op een protoboard/breadboard, of door het bijgevoegde PCB-ontwerp te gebruiken. Een veel kleiner pakket zou kunnen worden gemaakt door een aantal onderdelen voor opbouwmontage te gebruiken. elk specifiek bekabelingsschema dat wordt gebruikt. Het kleine blauwe bord implementeert de PWM-besturingsschakelingen, die in feite gewoon een geklokte PIC-12F zijn met een gespecialiseerde code.
Stap 2: Servomotorassemblage
Er worden twee verschillende soorten servo's gebruikt. Ten eerste wordt de zijwaartse beweging bestuurd door een groep van vier servo's met hoog koppel: Robotis Dynamixel Tribotix AX-12. Deze vier draaien op een enkele seriële lijn en bieden verbazingwekkende functionaliteit. Door het hoge koppel kunnen deze servo's zo worden afgestemd dat een hoge tangentiële snelheid voor zijwaartse beweging wordt verkregen. We konden bij Grainger een set 3,5-inch tandwielen en rupsbanden vinden voor ongeveer $ 10 per stuk. De servo's bieden bescherming tegen koppeloverbelasting, een individueel servo-adresseringsschema, snelle communicatie, interne temperatuurbewaking, tweerichtingscommunicatie, enz. Het nadeel van deze servo's is dat ze duur en niet erg snel zijn (hoewel versnelling hen helpt). Dus om snellere beweging voor trappen te krijgen, worden Hitec HS-81's gebruikt. De HS-81's zijn relatief goedkoop, hebben een behoorlijk hoge hoeksnelheid en zijn eenvoudig te koppelen (standaard PWM). De HS-81's draaien echter slechts 90 graden (hoewel het mogelijk is - en niet aanbevolen - om te proberen ze aan te passen tot 180 graden). Bovendien hebben ze interne nylon tandwielen die gemakkelijk strippen als je probeert de servo aan te passen. Het zou het geld waard zijn om een 180 graden roterende servo te vinden die dit type hoeksnelheid heeft. Het hele systeem is samengebonden met stukken vezelplaat met gemiddelde dichtheid (MDF) en vezelplaat met hoge dichtheid (HDF). Dit werd gekozen vanwege de lage kosten (~ $ 5 voor een plaat van 6'x4'), het gemak van snijden en de mogelijkheid om met vrijwel elk oppervlak te communiceren. Een meer permanente oplossing zou zijn om aluminium beugels te bewerken om alles bij elkaar te houden. De schroeven die de PWM-servo's op hun plaats houden, zijn standaard machineschroeven (# 10s) met zeskantmoeren die ze vanaf de andere kant vasthouden. 1 mm metrische machineschroeven, ongeveer 3/4 lang, houden de AX-12 in de MDF die de twee servo's met elkaar verbindt. Een dubbelwerkende laderail houdt het hele samenstel naar beneden en in lijn met de baan.
Stap 3: Software
De laatste stap is het installeren van alle software die op de machine wordt gebruikt. Dit bestaat uit een paar afzonderlijke stukjes code:> De code wordt uitgevoerd op de beeldverwerkings-pc> De code wordt uitgevoerd op de PIC-18F-microcontroller> De code wordt uitgevoerd op elk van de PIC-12F-microcontrollers. Er zijn twee vereisten om op de beeldverwerking te installeren pc. De beeldverwerking gebeurt via het Java Media Framework (JMF), dat hier via Sun beschikbaar is. De Java Communications API is ook beschikbaar via Sun en wordt gebruikt om te communiceren met de motorbesturingskaart via de seriële poort op de computer. Het mooie van Java is dat het *moet* draaien op elk besturingssysteem, hoewel we Ubuntu gebruikten, een linux-distributie. In tegenstelling tot wat vaak wordt gedacht, valt de verwerkingssnelheid in Java mee, vooral bij basislooping (waarvoor visieanalyse nogal wat gebruikt). Zoals te zien is in de schermafbeelding, worden zowel de bal als de tegenstanders gevolgd bij elke frame-update. Bovendien is de omtrek van de tafel visueel gepositioneerd, daarom werd blauwe schilderstape gebruikt om een visuele omtrek te creëren. Doelpunten worden geregistreerd wanneer de computer de bal gedurende 10 opeenvolgende frames niet kan lokaliseren, wat meestal aangeeft dat de bal in het doel is gevallen, buiten het speeloppervlak. Wanneer dit gebeurt, start de software een geluidsbyte om zichzelf op te vrolijken of de tegenstander uit te boeien, afhankelijk van de richting van het doel. Een beter systeem, hoewel we niet de tijd hadden om het te implementeren, zou zijn om een eenvoudig infrarood zender/sensor-paar te gebruiken om de bal te detecteren die in het doel valt. Alle software die in dit project wordt gebruikt, is beschikbaar in een enkel zip-bestand, hier. Gebruik de opdracht javac om de Java-code te compileren. De PIC-18F- en PIC-12F-code wordt gedistribueerd met de MPLAB-software van Microchip.
Stap 4: Webcambevestiging
Er is een Philips SPC-900NC-webcam gebruikt, hoewel dit niet wordt aanbevolen. De specificaties van deze camera zijn vervalst door de technische of verkoopmedewerkers van Philips. In plaats daarvan zou elke goedkope webcam voldoende zijn, zolang deze wordt ondersteund door het besturingssysteem. Bekijk deze pagina voor meer informatie over het gebruik van webcams onder linux. We hebben de afstand gemeten die nodig is voor de brandpuntsafstand van de webcam om de hele tafelvoetbaltafel in het frame te passen. Voor dit cameramodel bleek dat aantal iets meer dan 1,5 meter te zijn. We gebruikten rekken die verkrijgbaar zijn bij elke grote ijzerhandel om een houder voor de camera te bouwen. De rekken strekken zich naar boven uit vanaf elk van de vier hoeken van de tafel en worden gekruist door schuine aluminium beugels. Het is erg belangrijk dat de camera gecentreerd is en geen hoekrotatie heeft, aangezien de software ervan uitgaat dat de x- en y-as zijn uitgelijnd met de tafel.
Stap 5: Conclusie
Alle gerelateerde projectbestanden kunnen op deze site worden gedownload. Een back-up van het grootste deel van de site-inhoud is hier te vinden, bij mijn persoonlijke webhost. Dit omvat het eindrapport, dat een marketinganalyse bevat, evenals dingen die we zouden veranderen, onze oorspronkelijke doelen en een lijst van welke specificaties daadwerkelijk zijn bereikt. Het project is NIET bedoeld om de meest competitieve speler ter wereld te zijn. Het is een goed hulpmiddel om meer van de stappen te laten zien die worden gebruikt bij het ontwerpen van zo'n beest, evenals een fatsoenlijk prototype van dit type robot, gebouwd voor ongelooflijk lage kosten. Er zijn meer van dergelijke robots in de wereld, en zeker, velen van hen zouden deze robot "verslaan". Dit project is ontworpen door een groep van vier elektrische/computeringenieurs bij Georgia Tech als een senior ontwerpproject. Er werd geen hulp ontvangen door werktuigbouwkundigen en er werd geen financiering van derden gebruikt. Het was een geweldig leerproces voor ons allemaal en een behoorlijke besteding van de tijd van de senior ontwerpcursus., om ons niet te ontmoedigen om een ambitieuzer project te proberen> James Steinberg en Edgar Jones, de senior ontwerplabbeheerders, voor constante hulp bij het bestellen van onderdelen, probleemoplossing en het vinden van de "coole dingen" om tegen lage kosten in het project te gooien en hoge functionaliteit> En natuurlijk de andere drie leden van mijn team, waarvan dit allemaal niet mogelijk zou zijn geweest: Michael Aeberhard, Evan Tarr en Nardis Walker.
Aanbevolen:
Arduino-robot met afstand, richting en rotatiegraad (oost, west, noord, zuid) spraakgestuurd met behulp van Bluetooth-module en autonome robotbeweging: 6 stappen
Arduino-robot met afstand, richting en rotatiegraad (oost, west, noord, zuid) bestuurd door spraak met behulp van Bluetooth-module en autonome robotbeweging. , Links, Rechts, Oost, West, Noord, Zuid) vereiste afstand in centimeters met spraakopdracht. Robot kan ook autonoom worden verplaatst
Autonome drone: 7 stappen
Autonome drone: in dit project leer je het proces van het bouwen en configureren van een drone, voordat je verder gaat met het onderzoeken van autonome vluchten met behulp van Mission Planner en MATLAB. Houd er rekening mee dat deze instructable alleen als richtlijn bedoeld is. Het gebruik van drones kan heel d
Autonome RC-auto: 7 stappen
Autonome RC-auto: Met de opkomst van zelfrijdende, autonome auto's vandaag, besloot ik de uitdaging aan te gaan om er zelf een te maken. Dit project diende ook als mijn sluitstukproject in mijn Engineering Design and Development en Robotics lessen en ontving een prijs voor
Autonome en op afstand bestuurbare robot: 11 stappen
Autonome en op afstand bestuurbare robot: deze robot is bedoeld om relatief goedkoop en snel te zijn. Dit heb je nodig om aan de slag te gaan: Hardware 1 Raspberry Pi 1 Dual H-Bridge Motor Driver 1 Buck Converter 2 3V-6V DC Motors HC-SR04 Ultrasone SensorOverig Een doos om als chassis te fungeren M