Zelfbouw S500 Frame

Reserveer de 4e editie van 'Dronefotografie'

Eric-Jan

Moderator
Forumleiding
Lid geworden
11 sep 2016
Berichten
1.378
Waarderingsscore
619
Punten
113
Leeftijd
57
Locatie
Haarlem
Website
ericje.blogspot.nl
Ik ben er in gerold omdat ik wat met IoT dingetjes aan het prutsen ging, gewoon omdat ik het leuk vind om dingen te automatiseren met sensors en actuators. Eigenlijk als verbreding van mijn meer mechanische technische achtergrond.
Toen kwam ik op een gegeven moment iets tegen over dat het mogelijk moest zijn om met een Arduino (micro-controller bordje met input en output pins; eigenlijk dus hetzelfde als een flight controller) een drone aan te sturen. Dat, gecombineerd met mijn andere hobby - vliegen in een sportvliegtuig (ericje's PPL blog) - maakte dat ik mij daar wat meer in ging verdiepen en uiteindelijk heb ik een "zelfbouw" drone vliegend gekregen met behulp van veel van de kennis en code die Joop Brokking via Www.brokking.net ter beschikking stelt.
Dat was een Q380 frame met 1045 props op 1000KV motoren, aangestuurd door 30A ESCs. Bij het tunen van de PID parameters (stabiliteitsparameters, zeg maar), ben ik toen eens op de zijkant geland en dat koste mij een frame arm. Daarop heb ik besloten dat ik niet die arm ging vervangen, maar ging ombouwen naar een S500 frame (waar de motor / prop combinatie eigenlijk beter geschikt voor is). Uiteindelijk ga ik toch een frame willen hebben waar een gimbal onder kan, maar eerst de eerste stapjes maar eens.
En dat is waar ik nu sta. Ombouwen van een kleiner frame naar een groter frame en dan opnieuw PID tunen...
Één ding weet ik wel zeker: dat drone vliegen blijft er in. Jammer alleen, dat ik nog net in de Schiphol CTR woon, want dat betekent dat ik officieel niet eens een hover testje in mijn achtertuin mag doen. En met een PPL (Private Pilot's Lisence) op zak, wordt je wèl geacht dat te weten;)
 
Toen kwam ik op een gegeven moment iets tegen over dat het mogelijk moest zijn om met een Arduino (micro-controller bordje met input en output pins; eigenlijk dus hetzelfde als een flight controller) een drone aan te sturen.
Interessant Eric-Jan. Ik heb een IT-achtergrond en eens iemand geholpen om een real-time klokje uit te lezen op een Arduino, in C. Ook leuk hobby-spul. Heb je de code voor jouw drone nog aangepast of zo kunnen gebruiken?

Ik zou het leuk vinden om de source code van mijn eigen drone aan te kunnen passen en daar mee te experimenteren. Dat gaat met een fabrieksdrone natuurlijk nooit lukken om de source code te krijgen. En als je het al krijgt, denk ik dat de code van een Xiro doordrenkt is van Chinees.
 
Arduino is een heel mooi, toegankelijk platform. Ook voor "bouten-en-moeren" mannen als ondergetekende. Ik heb vroeger wel eens wat geprogrammeerd in BASIC, Pascal en C. Ook op assembly niveau nog wel een transportbaantje aangestuurd, maar dat was allemaal wel meer dan drie weken geleden (ik heb nog ponskaartjes ingekleurd...).
Omdat dat Arduino platform zo toegankelijk is, en open source - dus veel te copy-pasten - ben ik daar eens wat in gaan grasduinen en na een paar LED, RFID en zelfs GPS projectjes kwam ik dus een flightcontroller project tegen. Blijkt dat alle eerste generatie FCs niet veel anders zijn dan een Arduino (een ATMega328P chip met wat hardware om de I/O pins mechanisch gezien wat makkelijker te benaderen).
Ik zal nog wel een build verslagje posten, wanneer ik wat meer tijd heb om ook de fotos er bij te verzamelen. Uiteindelijk kon ik de Joop Brokking software nagenoeg 1 op 1 gebruiken. Uiteraard moest ik zelf op zoek naar de PID gain waardes, maar die staan als parameter helemaal bovenaan in de source code, dus dat is eenvoudig wijzigen, uploaden en uitproberen (repeat until OK, or destroyed beyond repair).
Wat ik er vooral van geleerd heb is hoe de registers van de ATMega328P rechtstreeks aan te spreken (veel efficiëntere code dan via de IDE met zijn libraries) en om niet bang te zijn een datasheet eens GRONDIG door te spitten en te begrijpen wat er staat. Oh en dat de Arduino UNO ook een EEPROM heeft en hoe die te benaderen en gebruiken voor calibratie data! En natuurlijk dat je er ontzettend veel tijd aan kunt besteden, als je dat wilt ;)

Overigens is de software vrij basic. Meet je positie in de ruimte, lees de ontvanger uit, bereken het verschil en laat daar een PID regel loop op los. De laatste versie heeft ook de mogelijkheid (als je niet alleen een gyroscoop, maar ook een versnellingsopnemer ingebouwd hebt) tot een auto-level functie (sticks los met 50% throttle is hoveren). Geen GPS functionaliteit - hoewel ik wel al begonnen ben te mergen met mijn vroegere GPS logger projectje. Dus geen loiter, RTH, waypoint navigatie, autonomous flight, of zo iets. Hoeft van mij ook nog niet. Dat komt allemaal later wel. Zelf eerst maar eens leren vliegen. Ik ben nog in het stadium van hoveren en nose-out heen-en-weer. Nose-in vond ik al behoorlijk lastig, dus daar eerst maar eens aan wennen voordat ik volgende stappen ga nemen :)
 
Wat ik er vooral van geleerd heb is hoe de registers van de ATMega328P rechtstreeks aan te spreken (veel efficiëntere code dan via de IDE met zijn libraries) en om niet bang te zijn een datasheet eens GRONDIG door te spitten en te begrijpen wat er staat. Oh en dat de Arduino UNO ook een EEPROM heeft en hoe die te benaderen en gebruiken voor calibratie data! En natuurlijk dat je er ontzettend veel tijd aan kunt besteden, als je dat wilt ;)
Dank voor je reactie.

Ik heb die RTC helpen uitlezen omdat alle op internet aangeboden libraries niet werkten (daarom moest ik ook helpen). Ik heb uiteindelijk zelf de registers van het klokje uitgelezen. Inderdaad op basis van de datasheet en dat viel best nog wel mee voor een klokje.

Nu ik je reactie lees realiseer ik me dat het het inderdaad best spannend is om je software te testen. Dat kan je een drone kosten.
 
Tijd voor een S500 update.

Ombouwen van een kleiner naar een groter frame betekent natuurlijk dar er het een en ander verlengd moet worden. Ik had op het Q380 frame de motor en ESC draden ingekort om zo weinig mogelijk lengte te gebruiken en "spoeltjes" te voorkomen. Stroom dragende draden in een spiraal opgerold genereren magnetische velden en dan krijg je allemaal ongrijpbare verstoringen van met name signaal electronica. Dus kwam ik nu draad tekort. Op het onderpaneel van het frame - tevens Power Distribution Board - dus wat lekker dikke draden met bullet connectors gesoldeerd en met hot glue afgedekt om sluiting te voorkomen.
ddf88042e4f43561636c238b41bf8c34.jpg


De armen met motoren en ESCs er op konden precies op de bovenplaat geschroefd worden, maar dan kwamen de signaaldraden naar de ESCs op een vervelende plek bij elkaar (ik had ze voorheen al aan een pin header gesoldeerd om een soort vierpotige stekker te maken. Dat moest nu dus over, maar dan met een stukje draad ertussen. Ik had de draden "genummerd" met kleine, 1mm stukjes krimpkous, wat nu wel makkelijk uit kwam. Ik heb nu een stukje RGB flatcable aan de draadjes gesoldeerd en de (haakse) pinheader weer aan de flatcable. Verder nog een stekkerverbinding voor de voeding van de Arduino en alles kan in - en uit elkaar gestekkerd worden.
549b4215b7f62d35785d593bb50f8f53.jpg


Het was allemaal even wat prutswerk, maar dat viel eigenlijk nog wel goed te doen. Wat tegen viel was het "even" aan elkaar stekkeren en schroeven, inclusief de poten. Dat zijn drie dingen tegelijk uitlijnen en proberen zo'n klein pruts-schroefje te laten aangrijpen - en dat 8 keer.
Het is gelukt en dat leverde, met accu maar zonder props en spinners, een quad op van 1183 gram.
08b31dbcc06256c655b76ac8693fdf76.jpg


Dus werd het tijd om de software opnieuw op de Arduino te zetten. Dat is een drietraps raket: Setup, calibratie, controller. Tijdens de setup wordt van alles vastgelegd in de EEPROM van de Arduino. Welk kanaal op welke pin aangesloten is, welke kanalen eventueel geïnverteerd zijn, welke kanalen van de gyroscoop overeen komen met roll, pitch, en yaw, dat soort dingen. Calibratie is niet alleen alle ESCs gelijktijdig laten opstarten, maar die module bevat ook een mogelijkheid om één voor één de motoren aan te sturen en tegelijkertijd de versnellingsopnemer uit te lezen. Dat geeft dan mooi de gelegenheid om de motoren dynamisch te balanceren. Middels een tie-wrap is te bepalen waar het lichtste punt zit. Streepje op de motor en stukjes tape plakken totdat de trillingen weer toenemen (en dan één stukje tape er weer af). Dat dan vier keer en na het uploaden van de controller software kan het PID feestje weer beginnen :)
a88de69fb044ba6bda965dbee8dc44e0.jpg


Dit frame heeft minder ruimte tussen de boven- en onderplaat. Daardoor moest de Arduino toch weer boven op de bovenplaat. Maar wel ondersteboven gemonteerd om zo veel mogelijk te beschermen.
 
Laatst bewerkt:
  • Leuk
Waarderingen: Sjakie
En toen deed zich een probleempje voor ...

Motor 1 (rechts voor) deed raar. Bij het armen spinnen drie motoren nagenoeg gelijktijdig op, maar motor 1 sputtert een beetje, staat wat heen en weer te jureren en spint dan pas mee op. Dat gebeurt meestal, maar niet altijd. Het is alleen motor 1 , dus lijkt het probleem ergens tussen PDB en motor in te liggen. Of natuurlijk in het nieuw gesoldeerde stukje flatcable.
Eerst maar eens motor en ESC losgemaakt.
f69b020d1be0335c5bea259398598d83.jpg


De motor leek mechanisch niets te mankeren. Ik vond m zelfs nog vrij schoon, na de diverse zandduiken die -ie meegemaakt had. Even wat prut vanaf de lagertjes geveegd, maar verder niets.
Volgende stap is het controleren van de elektrische aansluitingen. Dus alle krimpkous losgeknipt en de soldeerverbindingen nagekeken. De bullet connectors aan de motor zagen er het slechtst uit, het zou zomaar eens kunnen dat de gele draad een zogenaamde koude las had.
697c277705ed1460a8c46240f814ef0e.jpg


Voor de zekerheid gewoon alle bullet connectors maar opnieuw gesoldeerd en extra opgelet dat ze genoeg tijd kregen om te vloeien.
Daarna leek het probleem opgelost, maar ik moet het nog uitproberen met de props gemonteerd. Dan uit het probleem zich sterker. Maar daar wil ik mee wachten tot daglicht...

Stay tuned!
 
  • Leuk
Waarderingen: Sjakie
Mmmmhhh,...

Zonder props leek het probleem opgelost. Maar met props was het nog niet helemaal weg. Helaas openbaarde zich ook een nog veel vervelender probleem. Het opspinnen ging i.h.a. goed, maar al bij minimum toerental (ik meen pulsbreedte 1100 microseconden) trilde de spinner enorm. Ik wil niet zeggen dat ik bijzonder goed ben in het balanceren van props of motoren, maar zo'n onbalans had ik nog nooit gezien. Ik durfde niet meer dan kwart gas te geven, bang dat de prop me in stukjes om de oren zou komen vliegen!
Ik heb geprobeerd het vast te leggen, maar die telefoon videokwaliteit is toch niet je dat.

Wat wel duidelijk te zien is, is dat de motor aan de rode poot (de probleemmotor) iets hapert, maar wel al aangestuurd wordt, voordat -ie opspint. Ook zie je duidelijk dat daardoor de hele quad wat staat te schudden, omdat die lange spinnepoten niet echt stabiel zijn. Een ander onderstel staat al op mijn verlanglijstje, maar eerst dat gedoe met die motor oplossen. Dat schudden kan op zich al een probleem opleveren als PID gain parameters te hoog staan. Maar voor nu staan ze nog op nul, zodat zelfs stick input geen effect heeft (behalve throttle, want die wordt niet PID geregeld).

Ik ben bang dat de motor-as krom is. Motor 1 (rechts voor) is motor 1 gebleven en dat was de motor waarop mijn vorige frame gecrashed was. Dat was de arm die was afgebroken.
6f4b44e0a0e073c336e3a22c00c17e53.jpg


Ik heb een paar maanden terug een compleet reserve setje gekocht van ESC, motor, prop, spinner, dus die heb ik nog ergens in de voorraad liggen. Ik ga dus maar de motor vervangen (en ondertussen een handje vol reserve asjes bestellen).
Come to think of it: daar zit een compleet setje props (LH+RH) bij en ik was meer tevreden met die props dan met deze oranje broeders. Oranjes zijn veel zachter, waardoor de klemming op de as minder goed werkt en de doorbuiging onder last (lift) veel groter is. Misschien dat ik dus meteen maar terug switch naar de zwarte props.

Enfin, wordt vervolgd, dus!

Stay tuned!
 
  • Leuk
Waarderingen: Sjakie
5989bda3d8d1bbbf0592b66161cec5a0.jpg

Soldeerdag...

Motor 1 vervangen door de bullet connectors om te solderen naar de reserve motor. Is inmiddels weer gemonteerd en lijkt mooier te lopen.
Volgende stap is wederom de calibratie software draaien om te balanceren, dan props er op en wederom uitproberen.

Dat kan nog wel een paar dagen duren voor ik daar aan toe kom, want het weekend ben ik weg en intussen heb ik een stukje afleiding ontvangen... (Zie het topic over de verloting ter gelegenheid van de oprichting van dit forum ;) )

Overigens: de originele motor kon mooi met de draadjes in de volgorde waarin ze uit de motor kwamen aan de ESC gesoldeerd worden, maar de nieuwe, op dezelfde manier verbonden, draaide de verkeerde kant op. In een andere post had ik al eens gesuggereerd dat die redenatie misschien niet op zou gaan voor motoren uit verschillende batches... Nou dat klopt dus.
 
Laatst bewerkt:
9bc61c6b0759bee98d001c11bf850fa5.jpg

Handig, zo'n bladblazer ;)

Volgende testjes verliepen niet geheel zoals ik verwacht had. Natuurlijk begon het allemaal met heel voorzichtig PID parameters opvoeren. Maar wat ik ook deed, hij bleef wat ongecontroleerd yawen en driften met sticks neutraal. Zelfs toen ik de P-waarde al zo ver opgevoerd had dat oscillaties begonnen op te treden bleef -ie instabiel. Met een beetje D erbij waren de oscillaties weer weg, maar ik kreeg 'm niet zo goed controleerbaar als mijn vorige, kleinere exemplaar.
Aan het eind van de sessie (battery alarm was net aan gegaan) viel het me op: bij het opstarten ("armen") bleef links-achter iets langer stil staan en kwam sputterend op gang. Hetzelfde verschijnsel als ik eerder al links-voor had opgelost door de verbindingen opnieuw te solderen en de motor om te wisselen voor een nieuwe. Ik hoop dat dat omwisselen niet per sé nodig was, want opnieuw solderen lukt me nog wel met links-achter, maar een nieuwe motor heb ik niet meer over.
Nou ja, gewoon maar proberen!

Stay tuned!
 
Na een klein avondje solderen had ik de verbindingen links-achter weer op orde. Afgelopen weekend kon ik op de camping weer wat gaan uitproberen. Daar heb ik iets meer ruimte en mooi gras om zacht op te crashen :D

Intussen was me ook nog opgevallen dat één van de vier poten stuk was gegaan. Dat gebeurt snel, met deze poten, heb ik elders gelezen en kennelijk is er inderdaad niet veel voor nodig om ieder keer op dezelfde plek te bezwijken. Daarmee breekt niet de hele poot af, maar raakt -ie wel ongeveer de helft van zijn stijfheid kwijt, waardoor -ie alleen maar meer gevoelig wordt voor afbreken.
Meteen dus ook maar één poot vervangen.

Bij de camping-tests vloog -ie weer goed. Na wat heen en weer gepriegel met de PID parameters viel me op dat het toestel wel beter ging vliegen, maar dat ik eigenlijk wat yaw trim moest indraaien om 'm recht te houden. Maar ook weer niet een constante hoeveelheid. Dus dat was wel een beetje raar. Uiteindelijk viel-ie over één motor weg en stortte neer. Sindsdien sputterde links-voor bij het "armen". Dus die moter zal waarschijnlijk hetzelfde probleem hebben als de andere twee die ik al gerepareerd had... Nou, dan her-soldeer ik de beide overgebleven motoren in één keer en dan moet -ie het voorlopig weer doen.

Ik heb nog twee onderstel poten op voorraad (bij die laatste crash ging er wéér één stuk), dus ik heb maar vast een ander type onderstel besteld. Eens kijken of ik daar meer geluk mee heb. Dit is in ieder geval geen constructie waar ik straks mijn action cam aan wil gaan toevertrouwen...

Stay tuned!
 
Nieuw onderstel is binnen en is veelbelovend stijver. Alleen is de "gimbal rail" van 8mm buis, dus de huidige battery tray past er niet onder (is 10mm buis). Nou ja, ik heb nog twee reserve poten, dus eerst die maar eens "opmaken".
Verder heb ik de propadapters door nieuwe vervangen, evenals de props. Ongelofelijk wat dat een verschil maakt! Ik ben er nu van overtuigd dat de yaw problemen met slip van de propadapters t.o.v. de motor-as te maken hebben. Alles klinkt veel beter en is weer vliegbaar.

963c2cf46831fae404c4a25b6d822f83.jpg


Verder heb ik de versnellingsopnemer naar het midden van de Arduino verplaatst (2x1mm dubbelzijdig foamtape), zodat die een beetje verder van de powerlines weg is en mooi boven het zwaartepunt ligt.

Na twee accu's leeggevlogen te hebben, heb ik de PID waarden redelijk, maar er valt nog wel het een en ander te verbeteren. En dat betekent meestal het één optimaliseren en het ander daarmee om zeep helpen :D
Kan dus allemaal nog wel even duren ...

Stay tuned!


Verzonden met mijn iPhone en de Dronepilots.nl app
 
Rarigheidje meegemaakt.
Na het nieuwe onderstel er onder geknutseld te hebben, voorzien van een gimball, moest ik natuurlijk weer opnieuw PID parameters optimaliseren. De quad is een stuk zwaarder geworden en vooral met wat meer massa weg van het zwaartepunt, dus zal draaien om Pitch en Roll anders reageren.
Dus uitgeprobeerd met als eerste poging gewoon de waarden zoals ik die al eerder bepaald had. Ging allemaal redelijk goed, totdat -ie bij de vierde hover ineens ondersteboven op de grond ging liggen. Dat was op zo'n mistige dag zoals we daar meer van hebben gehad de afgelopen week, dus ik vermoed dat er vocht in het spel is. Maar hij blijft het doen, dus er is permanente schade aangericht. Ook na twee dagen binnen wil het nog steeds niet:

Lijkt alsof plotseling rechts iets ophoudt, waarop een correctie ingezet wordt (korte spin-up) die teveel is voor het systeem (auto shut-down)
Ook met een andere batterij reageert -ie precies hetzelfde, dus daar ligt het niet aan (dacht even aan een Voltage drop bij opvoeren van belasting = hele slechte batterij). Blijven de controller, ESCs en motoren over, wat mij betreft.

Ik heb nog wat te puzzelen...
 
Met een nieuwe Arduino als controller werkt het allemaal weer naar behoren en kan ik verder met PID tunen.
Toch wel fijn, zo'n modulair ontwerp :). Ik heb meteen de laatste drie aangesoldeerde draadjes vervangen door een stekkerverbinding. Nu kan ik letterlijk in vijf minuten de controller uitwisselen met alleen een combinatietang.
De versnellingsopnemer heb ik op een bevestigingspunt van de Arduino middels een M3 stand-off nòg iets hoger geplaatst, maar dat lijkt niet veel goeds te doen. Die ga ik, denk ik maar weer terug plakken in het midden van de Arduino met dubbelzijdig tape. Minder vibraties en beter in het zwaartepunt.

Verder moet het wat warmer worden en wat langer licht, want dit schiet niet op zo! :)

Stay tuned!


Verzonden met mijn iPad en de Dronepilots.nl app
 
Een maandje verder en inmiddels heb ik al eens met mijn nieuwe gimbal gespeeld met een camera daarop gemonteerd. De quad zelf is nog niet echt stabiel en zeker als er wat wind staat ben ik nogal geneigd om te overcompenseren. Dat kan leiden tot een Pilot Induced Oscillation, PIO) en uiteindelijk tot een crash, dus dat is nog wel een zorgenkindje. Ook zit er nog te veel trilling in het frame, wat niet alleen vervelend is voor de flight controller, maar ook zichtbaar is in de camerabeelden. Dus nog wat te doen op dat vlak.

Waar ik deze post eigenlijk aan wil wijden is een vreemd verschijnsel dat ik nu in drie van de vier vluchten waarbij ik beeld heb opgenomen heb gezien: de gimbal verandert spontaan van modus. De default (start) modus is HOLD HOLD PAN, waarbij pitch en roll op een constante waarde gehouden worden, ondanks de pitch en roll van de quad en waarbij yaw van de camera de yaw van de quad volgt alsof die met een slap elastiekje met elkaar verbonden zijn. Op een gegeven moment springt de gimbal spontaan in de PAN PAN PAN modus, waarbij alle drie de assen van de quad zo goed mogelijk gevolgd worden (pitch en roll aan een "strak elastiekje", yaw aan een slap elastiekje). Wat dat gedrag triggert is mij niet helemaal duidelijk. Ik dacht eerst aan een te lage spanning, omdat me dat de eerste keer overkwam toen vlak daarna mijn LiPo alarm afging. Maar bij de laatste test, twee dagen geleden, overkwam het me nòg twee keer. Helaas kom je er pas thuis, de beelden terugkijkend, of best case in het veld direct na landen achter.
Het kan zijn dat het veroorzaakt wordt doordat de motoren veel vermogen vragen, op dat moment. Met een beetje slechte batterij levert dat een spanningsdip op, waar de gimbal misschien wat minder tegen kan. Anders kan het ook zijn dat de camera tegen een mechanische eindaanslag liep en dat daardoor de andere modus getriggerd werd. Het was wat onstuimig weer en met mijn onstuimige correcties, kan ik me dat wel voorstellen. Niet dat dat een modus zou triggeren, maar wel dat dat optreedt.

In het volgende, 30 seconden durende filmpje is het omslagpunt bij 15 seconden.
Als gezegd: ik moet nog wat aan trillingsbestrijding doen en een beetje fatsoenlijk leren vliegen, zodat die extreme uitslagen zoals in de tweede helft van het filmpje te zien zijn niet meer voor komen. Maar die zaten dus ook in het eerste deel van de vlucht, dus als de gimbal zijn modus behoudt, ben ik nu al onder de indruk van wat -ie kan compenseren...

Stay tuned!
 
Ik ben begonnen mijn bouw- en vliegavonturen in een (Engelstalig) blogje te vatten, zodat ik mijn verhaal makkelijker kan delen, ook op andere platforms, zonder telkens hetzelfde nog eens te moeten intypen.
Je kunt het vinden op
eric's model flying blog

Ik heb nog wat aan te vullen, maar het begin is er vast.


In theorie komt de praktijk overeen met de theorie