Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Leap Motion lasertanks!

Componenten en benodigdheden

Infrarood LED
× 1
Infraroodontvanger
× 1
Arduino UNO
× 1
Raspberry Pi 2 Model B
× 1
RF24-module
× 1
LED-RGB-gemeenschappelijke kathode
× 1
L293D Integrated Circuit-motorstuurprogramma
× 1
Broodplank (algemeen)
× 1
Jumperdraden (algemeen)
× 1
Batterijhouder
× 1
AA-batterijen
Oplaadbare NiMH-batterijen
× 1
Legostenen
× 1
Ball Caster Metal - 3/8"
× 1
Leap Motion-controller
× 1

Over dit project

Het doel van dit project was om een ​​set robottanks te maken om gevechten aan te gaan waarbij de operators een realistischer gevoel kregen voor het besturen van de voertuigen met behulp van de Leap Motion-controller. Ik wilde de robottanks goedkoop maken, zodat mensen het project zo gemakkelijk mogelijk konden repliceren.

Het tanklichaam is gemaakt van generieke Legoblokjes en -platen. De stroombron is een eenvoudig blok van 4 oplaadbare AA-batterijen. De controller voor de tank is een Arduino Uno R3. "Propulsion" is twee eenvoudige DC-motoren met wielen aan de achterkant met een enkele caster aan de voorkant met behulp van een enkele L293D geïntegreerde schakeling. Het "wapen" is een enkel IR LED-licht en het "pantser" is een set IR-sensoren die treffers van de IR-LED van de tegenoverliggende tanks detecteren. Het "heads-up-display" is een enkele veelkleurige LED die u vertelt over alle acties die op de tank plaatsvinden, inclusief uw pantserstatus. Ten slotte wordt de "besturing" van de tank draadloos afgehandeld via een Raspberry Pi 2 met NodeJS die is verbonden via een RF24 draadloze module waarmee elke tank ook is uitgerust.

Met behulp van de handen van de operator bestuurt de Leap Motion de tank met behulp van de Leap Motion Javascript SDK. Javascript gebruikt de SDK om handbewegingen te detecteren en communiceert met de NodeJS-server op de Raspberry PI 2, die op zijn beurt communiceert met de tank via de RF24-module. Beide handen naar voren, de tank beweegt naar voren. Beide handen naar achteren, de tank beweegt achteruit. Linkerhand vooruit, rechterhand achteruit, de tank draait naar rechts. Rechterhand vooruit, linkerhand achteruit, de tank draait naar links. Beide handen in de "nuetral" positie zullen de tank stoppen. Een hand naar voren (links of rechts) terwijl je de andere hand laat vallen, "vuurt" het wapen van de tank af.

Hier is een korte demonstratie van het Tanks wapen, pantser en heads-up display.



Met behulp van de omnidirectionele geavanceerde bepantsering en kartonnen dozen als schuilplaats, wordt Laser Tanks een spel van jagen en ontwijken.



Stappen voor projectconfiguratie:

1) Zet ​​tanks in elkaar en sluit ze aan met behulp van de onderstaande schema's. Download de benodigde Arduino-bibliotheken (zie README in github-repository), compileer en upload de arduino-schets voor tank1 naar de ene tank en tank2 naar de andere tank.

2) Sluit de RF24-transceiver aan op de Raspberry Pi. Installeer Raspbian OS en node JS op de Pi.

3) Download, configureer en bouw (zie README in github-repository) de RF24-bibliotheek op de Pi.

4) Download de NodeJS-serversoftware van de github-site, configureer en start de App Server/webserver (zie README in githubrepository).

5) Installeer de Leap Motion en stuurprogramma's op uw computer. Open een browser en laad de URL naar de Raspberry Pi Rest/Web-server om de webpagina te laden (zie README in github-repository) om tank één of tanktwo te besturen.

6) Klik op de kalibreerknop en houd uw handen boven de sprongbeweging zodat deze twee handen detecteert en uw neutrale positie kent. Zodra de kalibratie is voltooid, kunt u de tank met uw handen bedienen.

Snelle opmerking over het tankchassis:

Het lichaam van de tanks is samengesteld uit eenvoudige lego's die "gorilla-gelijmd" zijn aan onderdelen (motoren, breadboards, enz.) Van de tank om het bij elkaar te houden. Hier is een diavoorstelling om te laten zien hoe dit is gedaan.

Een korte opmerking over infrarood-LED's:

Infrarood afstandsbedieningen zijn zeer functioneel als je op de bank, op de grond of in de stoel wilt zitten en overal van kanaal wilt wisselen op je tv. Infrarood-LED's zijn gebouwd om de lichtstraal in zoveel mogelijk richtingen te laten gaan om de dekking te verbeteren. Maar als u de straal van de LED kleiner wilt maken om het moeilijker te maken om de afstandssensor te raken (zoals in een tankgevecht), is dit iets moeilijker. Tijdens mijn lezing kwam ik erachter dat je door een heel eenvoudig vergrootglas te gebruiken aan het uiteinde van een buis, de infraroodstraal kunt focusseren. Hier is een diagram dat laat zien waar ik het over heb:

Uiteindelijk kocht ik een heel goedkoop vergrootglas in zakformaat bij een drogisterij, haalde de lens eruit en bouwde er een buis omheen en had de infrarood-LED aan het andere uiteinde van de buis, en dit werkte perfect om de straal van de buis te verkleinen. IR-LED om precies te zijn.


Een korte opmerking over 360 graden infraroodsensoren

Een infraroodsensor kan signalen van een infrarood-LED detecteren wanneer die LED er direct voor staat of ongeveer 90 graden scherpgesteld is. Als er zich een infrarood-LED achter de sensor bevindt, kan deze het verzonden signaal niet detecteren.

Om een ​​volledige detectiehoek van 360 graden te bereiken, moest u ofwel de infraroodbibliotheek aanpassen om signalen op 4 verschillende pinnen van 4 verschillende sensoren te detecteren, of een hardwareoplossing maken waarmee 4 sensoren in serie konden worden geschakeld om te rapporteren over een enkele pin. Ik vond enkele online artikelen die lieten zien hoe je dit kunt bereiken met een eenvoudig EN geïntegreerd circuit om 4 sensoren op een enkele ingangspin aan te sluiten. Wanneer een van de infraroodsensoren een infraroodsignaal detecteerde, rapporteerde het dit op die pin. Hierdoor kon 360 graden detectie worden verkregen, zonder de infraroodbibliotheek te hoeven wijzigen of 4 invoerpinnen te gebruiken.


Code

Lasertanks Github
Alle aangepaste codebestanden voor het Leap Motion Laser Tanks-projecthttps://github.com/corky/LaserTanks

Schema's

Met behulp van een infrarood-LED maakt de tank "codes" die de andere tanks identificeren als treffers. Met behulp van een enkele infraroodsensor kan de tank detecteren wanneer infraroodsignalen afkomstig zijn van tegenovergestelde tanks en deze registreren als treffers Met behulp van 4 infraroodsensoren, in serie geschakeld met een eenvoudig EN-poort geïntegreerd circuit (74HCT21), kan een tank om infraroodsignalen van de LED van de tank te identificeren als treffers van 360 graden eromheen. Met behulp van een RGB-led identificeert de tank zijn huidige status (hoeveel treffers hij heeft gemaakt) door de kleur te veranderen van de led. Ook verandert de tank de kleur van de LED in groen voor elk schot dat hij afvuurt. Met behulp van een L293D geïntegreerde schakeling en enkele eenvoudige gelijkstroommotoren kan de tank vooruit, achteruit en draaien links of rechts. Met behulp van een eenvoudige en goedkope RF24-zendontvanger kan de tank communiceren en opdrachten van de operator ontvangen. Met behulp van een Raspberry Pi2, een eenvoudige en goedkope RF24-transciever, en Node JS kan de operator communiceren met elke tank via REST API-aanroepen.

Productieproces

  1. Gids voor aluminium lasermarkering
  2. Gids voor lasermarkering
  3. Wat is fiberlasermarkering?
  4. Laseraanwijzer
  5. Halfgeleiderlaser
  6. Solid State Laser
  7. Geïntegreerd circuit
  8. DIY infrarood bewegingssensorsysteem voor Raspberry Pi
  9. Bewegingssensor met Raspberry Pi
  10. MOSMusic
  11. Drie kerncomponenten van lasermarkeermachine