Tagarchief: teensy

Raketten bouwen met Milos

Hoi!

Ik ben Milos de Wit, in al mijn jaren van projecten faalt er veel, heeeeeel veel. Maanden plannen en soms na een week of zelfs een dag erachter komen dat het project compleet onhaalbaar is of ik heb dan al weer een beter idee bedacht. Maar dit jaar (mijn derde jaar bij FABklas) wil ik een project afmaken. Dus na een paar weken plannen en ontwerpen. had ik in het CAD (Computer Aided Design) programma Fusion 360 stond V1 van het plan klaar.

Het ontwerpproces

Origineel zou ik een raket aansturingscomputer maken, met als prioriteit om de
parachutes te kunnen openen en als nagedachte om zoveel mogelijk sensoren in de vluchtcomputer sectie te doen om zo aerodynamische tests te kunnen doen. Maar na te realiseren dat het goedkoper en makkelijker is om te beginnen met een buis met een standaard houder die tussen verschillende 75mm buizen kunnen worden verwisseld. Met een standaard set sensoren. Uiteindelijk kwam ik uit op het idee om op de buis rails te monteren waar verschillende vormen op kunnen worden geschoven zodat je verschillende aerodynamische profielen kan creëren.

Huidige componentenlijst
  • Teensy 3.2 (Arduino Nano is ook mogelijk maar dan is er weinig opslag over om meer sensoren toe te kunnen voegen)
  • SD kaart lezer
  • 5V step-up converter (het 3V signaal van de Teensy moet worden omgezet in 5V voor de buzzer en de Neopixels)
  • Neopixels
  • BME280
  • MPU6050
  • 3*AA batterij houder (zorgt voor 4.5 volt voor de Vin pin voor de teensy, de Vin pin kan de teensy aanhouden tussen 3.6 en 6 volt)
  • 470UF condensator meerdere knoppen (switch en druk)
Bedrading

Hier is een schema met de bedrading van de huidige unit, de drie NeoPixels en
de buzzer worden gebruikt om de status van de computer te weergeven.
bijvoorbeeld waneer de code een sensor niet herkent of er een andere error is,
zo is het makkelijker om te gebruiken waar geen laptop
bij de hand is om de serial port of het sd kaartje te lezen.

Firmware

De firmware heb ik over ruim een half jaar ontwikkeld, begonnen bij de individuele sensor, de code optimaliseren en daarna integreren in het volledige project. Op deze manier is de code ontwikkeld en is het relatief makkelijk om extra stukken toe te voegen. Ook was het in het begin lastig om de code bedoelt voor de Arduino Nano over te zetten naar de Teensy. De grootste reden om de Teensy te gebruiken is voor de grotere opslag, gezien de code voor alleen de luchtdrukdata en het schrijven naar de SD kaart al 76% van de Arduino Nano 328p. de volledige code met neopixel libary en allerlij andere functies zijn op de Teensy 3.2 maar 18% van de opslag. Hieronder een deel van de code. (totaal 194 lijnen)

)

Hardware test 000

Ik probeer met dit project zo veel mogelijk componenten individueel te testen zodat zo min mogelijk fout kan gaan waneer alles samenzit in de 75mm buis. waneer het moeilijk
is om individuele componenten te testen. voor 000 ga ik de barometer en de SD kaar lezer/schrijver testen. Er zijn weinig foto’s van de hardware van deze tests
maar hier is de eerste hoogte grafiek van dit project Voor deze test had ik de toen huidige vluchtcomputer in een kartonnen doos geplakt en een paar parashutes aan
gedaan. Op de grafiek zie je waarschijnlijk dat de resolutie vrij laag is, dit komt doordat toen de delay aan het einde van de loop op 200 miliseconden stond (0.2 seconden),
in de latere tests heb ik de delay naar 10 miliseconden verlaagt. Dit geeft een veel hogere resolutie maar er zijn dan wel veel meer lijnen in het .txt bestand
op de SD kaart. Voor de formule om de hoogte (relatief) uit te rekenen heb ik
deze formule gebruikt:
en dit staat zo in de code:

Hardware test 001

Voor test 001 ga ik de vluchtcomputer meenemen op skivakantie, maar ik wilde het veel makkelijker te gebruiken dus heb ik het allemaal in een netjes in een oude wifi router case gedaan en ben ik aan de slag gegaan met een goeie gebruikersinterface. De interface bestaat uit twee Neopixels, buzzer, 1 standaard drukknop en 1 drukknop met een ingebouwde LED. Hiermee kan de
Teensy geprogrameerd worden om alle mogelijke statussen weer te
geven aan de gebruiker.
op het moment zij de mogelijke statussen:

1: twee gele LED’s: computer is in standby mode
2: oranje en gele LED: probleem met de SD kaart lezer
3: twee groene LED’s: volledig operationeel en data word opgeslagen
4: (niet op foto) twee oranje LED’s: computer in void setup mode

De test’s

Na de eerste dag skien was het al duidelijk dat het een goed idee was om de buzzer en de Neopixels toe te voegen, dit maakt het meteen duidelijk of er een probleem en zo ja wat het probleem is. Uiteindelijk zijn er geen problemen geweest met kapotte soldeerpunten of software problemen in de vier dagen dat ik hem heb uitgetest. 

 

De resultaten

De resultaten hiernaast staan de twee beste metingen,
met hoogte linksboven, temperatuur rechtsboven, luchtvochtigheid linksonder
en de ruwe luchtdrukdata rechtsonder. de blauw gestreepte stukken zijn waar ik
op anderen in de groep moest wachten. De grote pieken in temperatuur en luchtvochtigheid komen waarschijnlijk doordat het vrij mistig was op de dag van de metingen. Dus waneer je een wolk ingaat zie je dat de luchtvochtigheid en temperatuur erg veranderen en dat temperatuur in de praktijk meer verschilt dan je denkt.

 

Wat nu?

Nu de eerste pracktische tests klaar zijn ga ik alle componenten weer terugintegreren in de 75mm buis waar ze in 3D geprinte houders passen. 

2 maanden later…
In plaats van beginnen met alles weer terug op prototype plaatjes te zetten heb ik besloten om een enorme draadjeschaos te voorkomen door zelf pcb’s (printed circuit boards) te gaan ontwerpen, gezien je deze heel erg goedkoop uit china kan bestellen (5 euro voor 10 pcb’s). hieronder alle ontwerpversies.

V1

V1 van de printplaat bestond uit twee printplaten, 1 voor de TEENSY 3.2, sensoren en servo outputs en 1 voor de SD kaart houder en de aux pinnen (pinnen met nog geen geplande functie, maar mogelijk later wel). Dit was mijn eerste PCB ooit dus waren er natuurlijk veel kleine foutjes mee.

V2

V2 is al een stuk beter dan V1, ik ben overgestapt naar de TEENSY 3.5 omdat de 3.5 een SD kaart lezer op het bord heeft wat het een stuk compacter maakt. dit bord is een stuk capabeler dan V1 omdat de TEENSY 3.2 en 3.5 dezelfde pinout hebben op de bovenste helft, dus dan kan de TEENSY 3.2 geinstaleerd worden als boordcomputer (oh en het is eindelijk gelukt om een RC vliegtuig werkend te krijgen, meer over dat in een later blog). Ook heeft deze computer ruimte voor een 5V voltage regulator, dus kan de
boordcomputer stroom krijgen van de 12V lipo batterij in het vliegtuig. Ook
zijn er poorten op de printplaat zodat communicatie tussen de
twee computers mogelijk is waneer de decent vehicle nog aan het vliegtuig
hangt. Ook kan de boordcomputer luisteren naar de PWM servo signalen
van de reciever in het RC vliegtuig. dus waneer ik op de zender een knopje
omhaal kan de boordcomputer bepalen of het voertuig klaar is om losgelaten te
worden.

V3 – OASIS

OASIS MK1C staat voor: Overall Avionics SupportIng System versie 1 ontwerp 3/C, dit bord is eigelijk een uitgebrijde versie van V2, meer servo poorten (5) meer aux poorten (5) meer PWM poorten (3) meer com poorten (2) (de com poorten praaten over i2c) en twee HPC poorten (High Power Channels).
op de onderkant van het bord zitten 2 TIP120 transistors zodat ik 3A leds kan aansturen door de 3 kanaals schroefterminals. Verder ziet de PCB er een stuk cleaner uit en er zijn ook slots voor een RTC (Real Time Clock) en SD kaart houder voor de boordcomputer. De printplaten zijn net aangekomen en hieronder de pinouts gemaakt in Adobe Ilustrator en wat foto’s. op de onderkant zie je de 1 TIP120
en 1 5V voltage regulator zitten, ook is het gelukt om 0805 SMD weerstandjes te kunnen solderen ik heb SMD weerstandjes gebruikt gezien die een stuk kleiner dan normale resistors. Ook zijn er 3 SMD WS2812B NeoPixels op het bord naast twee SMD led’s. wat er supergaaf uitziet waneer ze aanstaan.
waarom neopixels in plaats van RGB led’s? omdat er handige libraries zijn voor de neopixels en om een kleur te geven hoef ik alleen maar een RGB waarde te geven. En dat over maar 1 pin voor een oneindige hoeveelheid pixels!

Hier is nog het nieuwe ontwerp van het drop vehicle zelf gezien het OASIS bord iets te breed is om erin te passen, dit maakt ook voor een interesantere aerodynamische vorm.