Laser combat

Discussie in 'Model elektronica' gestart door Luuk Steitner, 1 feb 2010.

  1. BadBert

    BadBert Forum veteraan

    Lid geworden:
    4 feb 2005
    Berichten:
    5.059
    Locatie:
    Hoogerheide (NB) Club: BVL-steenbergen
    Dat per 2 (of meer op aanvraag, als ik bijv een set voor 5 vliegers wil, hoef ik al die lcdtjes niet, 1 is dan voldoende) aanbieden is een goed idee, zeker met een LCDtje (simpel) met een paar knopjes erbij.

    wat mij leuk lijkt:
    - keuze soort gun (geluid dus bij afvuren geweren/raketten)
    - motorgeluiden (al zou ik dat denk ik niet altijd gebruiken, electro is juist zo lekker stil)
    - keuze in soort wapens? (meer of minder schade per hit?)
    - evt op nog een kanaal apart raketten af vuren ofzo?
    - geluid via de geluidsmodule als je geraakt wordt
    - een max aantal "levens" en minder max throttle bij "game over" icm een geluidje (allemaal instelbaar via het lcd dan he :p)
    - evt instelbaar aantal rounds/min (sneller of minder snel afvuren, raketten natuurlijk alleen 1 voor 1)
     
  2. JiB

    JiB Guest

    Uitslag van de test: het werkt, en leuk ook! volgens mij was de stand ongeveer 6:3 (in mijn nadeel ja :(), maar dat is wel een redelijke weergave van de capaciteiten. Met full contact combat zijn we meestal al blij als we elkaar geraakt hebben. Wat ik nog een beetje tegen vond vallen was het geluid, je hoort het slecht als er iemand op je schiet, en de feedback als je iemand geraakt hebt mag ook best wat meer.

    Voor de volgende test fase hebben we besloten het eerst binnen de club (woerden) te houden. Als je tot die gelukkige doelgroep behoort krijg je als het goed is van Luuk daar binnenkort een mailtje over. We willen ongeveer 8 units maken en mikken op 3 Maart, dan kan het op de bouw-avond voor het indoorvliegen op de 7e afgeleverd en ingebouwd worden.
     
  3. BadBert

    BadBert Forum veteraan

    Lid geworden:
    4 feb 2005
    Berichten:
    5.059
    Locatie:
    Hoogerheide (NB) Club: BVL-steenbergen
    Mooi dat het werkt, hoe ging het buiten?

    Hoop dat je de boel snel verbeterd hebt (kwa geluid etc) en dat je ze aan gaat bieden :)
     
  4. Luuk Steitner

    Luuk Steitner

    Lid geworden:
    3 feb 2008
    Berichten:
    42
    Locatie:
    Vianen
    Buiten hebben we nog niet geprobeerd (brrr) maar dat gaan we binnenkort zeker doen. We hebben alvast sterkere LEDs hiervoor besteld.
     
  5. Daantjo

    Daantjo

    Lid geworden:
    7 dec 2005
    Berichten:
    288
    Locatie:
    Wichmond---- stomme vragen: 234, meesterlijke antw
    Ik wil er drie hebben! als ze buiten werken!
     
  6. BadBert

    BadBert Forum veteraan

    Lid geworden:
    4 feb 2005
    Berichten:
    5.059
    Locatie:
    Hoogerheide (NB) Club: BVL-steenbergen
    Wij ook, setje van 3 met lcd instel/uitlees schermpje :p
     
  7. Luuk Steitner

    Luuk Steitner

    Lid geworden:
    3 feb 2008
    Berichten:
    42
    Locatie:
    Vianen
    Voor de programmeerkastjes met LCD zal je nog even geduld moeten hebben, deze moeten we nog ontwikkelen en daar gaat wel wat tijd inzitten.
    We maken de komende weken een eerste oplage voor onze vliegclub voor extra beta tests. Daarna gaan we eens kijken of we er meer met de hand gaan maken of dat uitbesteden. Het is namelijk een hoop werk en we verdienen er niets aan.
     
  8. Volhout

    Volhout

    Lid geworden:
    23 jul 2008
    Berichten:
    912
    Locatie:
    Twente
    Erg leuk idee !!

    Met IR diodes die een openingshoek van 10-20 graden hebben gaat het met een enkele sensor heel leuk werken. Die IR diodes (zelfs als je ze met 1A pulsen aanstuurt (met 25% duty cycle blijf je dan net onder de maximaal togestane dissipatie in de IR chip)) kun je een bereik halen van zo'n 30 meter met een normale IR sensor - rechte lijn.

    Het 'stotteren' van de motor is misschien niet zo'n goed idee, omdat er ESC's in te stellen zijn op 'traag' (voor heli gebruik) en je dus het stotteren uit kunt schakelen (dat heet vals spelen). Ik zou max gas verminderen.

    Dit gaat indoor leuk worden. Ik ben benieuwd naar jullie resultaten van de proef. Maar ook voor outdoor (park flyers) is 10 meter heel erg leuk om te doen.

    Voor groter vliegende toestellen, met ultrasoon, gaat wat moeilijker worden. De brushless motoren hebben vaak een audio spectrum wat tot ver over de 20 kHz doorloopt. Kijk maar eens naar de doppler opnames van mensen die een snelheidmeting doen.

    De kracht van een gewone IR diode en sensor zijn de eenvoud door de grotere openingshoek. Een echte laser (zeer kleine openingshoek) op de jager zou je moeten compenseren door meerdere sensors op het toestel dat de prooi is. Dat kan technisch wel, maar gaat niet goed werken. Een RC5 'puls' duurt 25mSec, met een IWG (inter word gap) van minimaal 6msec. Om een zeker HIT te hebben moet je op b.v. 30 meter afstand, 25+6+25=56mSec recht op de sensor van de prooi gericht zijn. Zo stablie kun je een toestel nooit sturen (stel dat de sensor 30mm groot is (en dat is HEEL groot voor een IR sensor) dan moet het toestel 56msec binnen 0.06 graad gericht blijven. Dat betekend sturen met 1.2 graden per seconde. Niet dus..... Tenzij je de laser gaat shatteren.

    Nogmaals, ik ben benieuwd naar de resultaten. Heel interessant !!

    P.S. je moet de IR sensor en IR transmitter buiten de prop cirkel houden.
    P.P.S. als je aan de buiten uitvoering denkt, geef dan 'geraakt' ook door door een felle rode LED. Geluid gaat buiten erg snel verloren, zeker als je wat verder weg vliegt.
    P.P.P.S : extra functionaliteit voor de RC-Arduino: extra schakelkanalen (b.v. boordverlichting aan/uit, nachtverlichting aan, afwerpen van lading, losmaken van sleeplint, etc..). Maar denk ook aan een toepassing op modelscheepvaart. Daar kan combat ook een heel leuke optie zijn. Rookgenerator als je getroffen bent. Ik zie business voor jullie !!
     
    Laatst bewerkt: 8 feb 2010
  9. JiB

    JiB Guest

    Nou, voor de business doen we het eigenlijk niet, meer voor onze lol er mee en de ervaring eens iets embedded geproduceerd te hebben.
    Een lichtsignaal als je getroffen bent staat ook op mijn verlanglijstje. Ook binnen kan je maar slecht zien of je iemand geraakt hebt, en dat is wel een lekkere kick. Hopelijk kunnen we dat nog wel in de beta test verwerken, al begint het boodschappen lijstje wel wat te wringen met het budget.
    Je suggestie van extra schakel kanalen is ook een goeie, maar dat gaan we niet in de beta test stoppen: eigenlijk zou je daar een opsteek bordje voor willen hebben met wat (dikke) relais er op, dat is te zwaar om op de basis print te stoppen, lijkt mij. Qua software hoeft het geen probleem te zijn, je moet toch naar ppm signalen luisteren.
     
  10. Volhout

    Volhout

    Lid geworden:
    23 jul 2008
    Berichten:
    912
    Locatie:
    Twente
    Schakelkanalen

    Voor schakelkanalen moet je naar een andere ingang luisteren (CH5...8). Maakt de software iets complexer, omdat je IR decodeert, throttle decodeert, en dan ook nog een (of meer) extra kanalen decodeert. Pas op dat het geen extra jitter gaat opleveren, die b.v. motor stotteren opelevert, of IR dat niet meer werkt.

    Hoe doen jullie dat ? Gaan IR en throttle op interrupt ? Of poll je de IO's.
     
  11. Luuk Steitner

    Luuk Steitner

    Lid geworden:
    3 feb 2008
    Berichten:
    42
    Locatie:
    Vianen
    Throttle en vuur gaan op interrupt, voor IR pollen we de IO's. Van jitter is nog zeker geen sprake maar als de software te zwaar wordt zou het kunnen dat het voor problemen gaat zorgen.
    Wat mij betreft is de RC-duino waar Jelle het over heeft een project wat geheel los staat van het laser-combat. Misschien is het handiger om daar een aparte thread voor te starten als daar ook behoefte aan is.
     
  12. jitze

    jitze PH-SAM

    Lid geworden:
    9 apr 2007
    Berichten:
    3.239
    Locatie:
    Dordrecht ZH Vliegclub: Red Eagles
    Leuk project. Ik heb hier een Arduino Duemilanove staan. Mochten jullie iets voor outdoor bedenken dan ga ik dat ook eens proberen.
     
  13. Volhout

    Volhout

    Lid geworden:
    23 jul 2008
    Berichten:
    912
    Locatie:
    Twente
    Arduino 2009 dus ...
     
  14. JiB

    JiB Guest

    In principe kan je alle servos op een ingang uitlezen, mits je ontvanger detecteerbare pauzes openlaat bij het schakelen tussen de verschillende kanalen. Dan krijg je in feite je ppm signaal weer terug. En dat is vrij eenvoudig te decoderen met een interrupt en een timer (die is essentieel om de opname precies te houden in geval van zware belasting). Maar volgens mij is de belasting niet zo zwaar: het meest frequente werk is het schakelen van de IR uit pin op 36 KHz. Met een kloksnelheid van 16MHz heb je dus ruim genoeg kloktikken om andere dingen te doen. De andere processen gaan op een veel lagere frequentie, veel rond de 50Hz zoals het decoderen van de servo signalen en het IR zenden en ontvangen op iets hogere frequentie (~1KHz, RC5 protocol). Ook aan de uitgang hoeft het niet al te precies, als het gereduceerde throttle signaal een paar us te kort of lang is, dan is dat ook geen ramp. Met andere woorden: jitter is geen probleem en gaat het waarschijnlijk ook niet worden.
    Luuk, je hebt gelijk dat een rc-duino initiatief niet zo veel met rc-lasercombat te maken heeft, behalve dat het veel van dezelfde hardware gebruikt. Maar zo te zien is het animo hier daar niet zo groot voor, dus komt dat voor nu op de lange baan.

    Overigens zijn er ook al anderen die zich op dit terrein hebben gewaagd: J44 Industries: DogFight
    en zelfs op IBM developerworks iets moois: IBM developerWorks : Open source : Technical library view

    Ik heb ondertussen een projectje aangemaakt op sourceforge: https://sourceforge.net/projects/rc-lasercombat/ en daar de code in svn gestopt. Als jullie dus iets meer willen dan alleen maar er over praten, dan ben je van harte uitgenodigd om daar eens door de code te neuzen.

    PS: Arduino duemillenova staat tot 2009 zoals fiat cinquecento tot 500 staat. Het beestje moet een naampje hebben.
     
  15. Volhout

    Volhout

    Lid geworden:
    23 jul 2008
    Berichten:
    912
    Locatie:
    Twente
    Repository

    Jelle,

    Ik heb even in die repositories gekeken, maar kon er zo gauw geen wijs uit worden. Het lijkt of je de volledige Arduino libraries, inclusief examples, gepost hebt.
    Ik wilde erin kijken om te zien wat je architectuur is. Ik heb er zelf even over nagedacht, en zou het alsvolgt opzetten (als het in een kleine micro moest als een AVR of een PIC).

    Ik zou software architectuur laten bestaan uit een main, en een enkel interrupt level. Het hart zou een vrijlopende 16bit timer kunnen zijn op 1uSec tik.

    De main zou een lus hebben van 20mSec, die lus wordt ieder keer gestart bij een puls van de throttle van de RC receiver. Hij meet in (max 2 mSec) de puls van de throttle, en meteen daarna (de volgende 2 msec) stuurt hij de throttle puls uit op throttle out. Je kunt dit gelijktijdig doen, maar dat hoeft niet (end de code is makkelijker als je wilt gaan stotteren). De overige 16msec worden gebruikt voor het vuren. Dit 16msec block start afwisselend 2 stukjes code. In het even tijdslot decodeer je de VUUR PWM ingang (gas zit op 3 of 1 (Futaba/Graupner)) en VUUR op 5,6,7,8 dus dit past netjes in de timing). Het oneven tijdslot gebruik je voor het uitsturen van een IR code naar de IR LED als je vuurt. Je kunt dat niet doen in een RC5 frame (duurt 25mSec) maar dan neem je b.v. een 4PPM protocol van 10 bits. Dat past wel. Of je verzint zelf wat met een mark-space van 1mSec : 1.5mSec verhouding. Zorg dat de IR burst minimaal 400uSec is anders hebben IR oogjes er problemen mee. Dit IR protocol gebruik je ook voor alle communicatie (zie beneden).

    Dit geeft een maximale vuur snelheid van 1 schot per 40mSec, ofwel 25 schoten per seconde. Minder kan natuurlijk altijd. Dan sla je wat tijdsloten over.

    De interrupt routine loopt hier onafhankelijk van, en decodeert de IR ontvanger. Belangrijk is dat de IR routine op flank triggering werkt, en vergelijkt de codes met een vrijlopende timer. Iedere onafhankelijke interrupt moet kort zijn om de timing van de main niet te veel te beinvloeden.

    Dit zou moeten kunnen werken op de traagste micro'tjes (8 pins 4MHz PIC12F509).

    Elke HIT zou opgeslagen worden in EEPROM, als adres van de aanvaller. Zo zou een lijst onstaan van hits. Aanvallers zouden een nummer hebben van b.v. 0-29 (in geval 5 bits adres). De overige 5 bits kunnen gebruikt worden voor checksum en wapen keuze (rakket, kanon, mitrailleur, pistool).

    Het uitlezen zou ik doen via de bestaande IR LED en IR oogje. Ik zou een adres reserveren (b.v. adres 31), en bij het ontvangen van die code gaat de software (in dezelfde lus als boven) achtereenvolgens alle nummers uitspugen die in EEPROM zijn opgenomen. Een IR oogje aan een PC kan deze lijst verwerken (met b.v. Winlirc). Tenslotte stuurt de PC een andere gereserveerde code (b.v. adres 30), en die code wist het EEPROM weer.

    Ik weet niet of dit in de richting komt van wat je aan het doen bent, maar dat hoor ik graag.
     
    Laatst bewerkt: 11 feb 2010
  16. JiB

    JiB Guest

    Dat klopt, het zijn de volledige arduino 0017 sources. In een vorm die met eclipse handig te verwerken is. Daarom heet de directory waar ze in staan ook arduino-0017 ;)
    De andere gebruikte library is IRremote, waar we wel wat wijzigingen in hebben. Het echte werk om het bij elkaar te knopen staat in CombatLaser.
    Volgens mij had Luuk hier als wat eerder uitgelegd hoe wij het doen. Zoals jij het voorsteld zou het misschien ook kunnen, maar maak je het misschien wat onnodig rigide. Hoe meer je op intterupt kan doen, hoe meer tijd er over blijft voor andere dingen. De main loop kan je dan gebruiken voor huishouden dat niet heel erg tijdsgebonden is, bv een motorgeluid bitbangen op een poortje. (maar niet in de aankomende versies..)
     
  17. Luuk Steitner

    Luuk Steitner

    Lid geworden:
    3 feb 2008
    Berichten:
    42
    Locatie:
    Vianen
    Er blijkt vanuit onze eigen vliegclub toch erg weinig belangstelling te zijn voor het combat setje. Tot nu toe heb ik nog maar één bestelling gehad. Ik had gedacht er om te beginnen er een stuk of 10 te maken maar dat zullen er dan wel minder worden.

    Ik maak er nu verlies op met de verzendkosten erbij dus als er hier nog mensen zijn die nog een setje willen bestellen, stuur me dan even een privé berichtje. Ik wil de onderdelen morgen aan het eind van de dag bestellen, dus reageer voor die tijd.
    Als je nu bestelt heeft dat als nadeel dat de software nog niet compatible is met het IR programmeer-kastje wat we er later waarschijnlijk bij gaan maken. Maar, wanneer we deze hebben kan je gewoon een software update krijgen zodat het dan wel werkt (ff opsturen of langsrijden als je in de buurt woont)

    De kosten zijn uitgekomen op 30 euro voor één unit. Da's iets meer dan ik eerst dacht maar dat is omdat ik voor de prototypes de extra benodigdheden nog had liggen en niet in de kosten had meegeteld.
    Als je een unit of setje van 2 of meer wilt bestellen wil ik wel dat het van te voren betaald wordt zodat ik er geen risico mee loop. Betalen mag via bank of PayPal, details krijg je per PM of email.
     
  18. BadBert

    BadBert Forum veteraan

    Lid geworden:
    4 feb 2005
    Berichten:
    5.059
    Locatie:
    Hoogerheide (NB) Club: BVL-steenbergen
    Is er al buiten getest?
     
  19. Luuk Steitner

    Luuk Steitner

    Lid geworden:
    3 feb 2008
    Berichten:
    42
    Locatie:
    Vianen
    Nee, nog niet. Maar de IR LED kan gewoon vervangen worden door een ander exemplaar zodra we weten welke het beste werkt. Maar als je liever eerst 100% zeker wilt weten dat het buiten ook goed werkt kan je beter even wachten.
     
  20. BadBert

    BadBert Forum veteraan

    Lid geworden:
    4 feb 2005
    Berichten:
    5.059
    Locatie:
    Hoogerheide (NB) Club: BVL-steenbergen
    jup, wil het wel even weten hoe het buiten gaat voordat we er evt gaan bestellen.
     

Deel Deze Pagina