ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
Zgodnie z obietnicą, poniżej zamieszczam projekt oraz kod źródłowy do wykonania we własnym zakresie najprostszego wysokościomierza oraz wyzwalacza spadochronu – Altek v1.
Wszystko komponenty da się kupić na allegro i zlutować we własnym zakresie.
Całkowity koszt powinien się zamknąć w 80zł (lub taniej jak wszystko zamówicie na AliExpress).
Do wgrania i odczytywania później zapisów komputera potrzebne będzie ARDUINO IDE.
Może też się przydać program Fritzing do projektowania płytek PCB oraz możliwości podglądnięcia podłączenia.
Zaczynamy!
Opis modułu:
Ten bardzo prosty moduł po zlutowaniu będzie śledził aktualną wysokość rakiety. Jeżeli wykryje spadek rakiety poniżej maksymalnego pułapu, komputer daje prąd na listwę zaciskową oraz zapisuje w pamięci komputera najwyższy zarejestrowany pułap rakiety. Potem wybucha zapalnik i spadochron zostaje wyrzucony.
Następnie po podłączeniu Arduino do komputera, Arduino wyświetla nam najwyższy pułap rakiety.
Po włączeniu modułu załączy się buzzer(piszczałka), który potem pomoże nam odnaleźć rakietę jeżeli wpadła w gęstą trawę. Może to być irytujące więc dopóki rakieta nie leci można go sobie zakleić taśmą izolacyjną i trochę wyciszyć.
Kod starałem się opisać w miarę jasno, dokonałem kilku poprawek przed publikacją by był bardziej zrozumiały, ale nie mam jak go przetestować więc jakby co to dajcie znać.
A propos testów. Kiedy już zlutujecie sobie ten moduł najłatwiej go przetestować przez wkręcenie diody led lub cienkiego drucika z wełny stalowej do zacisków wyzwalania. Następnie można wsiąść do jakiejś windy, włączyć komputer i wjechać na ostatnie piętro, a potem w dół. Wtedy powinien komputer spalić drucik lub diode led na waszych oczach
Pamiętajcie tylko, że komputer uzbraja wyzwalacz dopiero po wjechaniu na co najmniej 10 metrów.
Lista komponentów:
1. Złącze listwa zaciskowa AK ARK 2pin h12 5mm – 2 szt.
2. Przełącznik DIP switch x1 (2 pin) – 1 szt.
3. N-MOSFET IRFZ44N - THT – 1 szt.
4. KABEL / KONEKTOR - JST - FEMALE - 9 cm – 1 szt.
5. BATERIA LI-PO 7,4V 2S 260mAh 35C/70C TURNIGY – 1 szt.
6. Rezystor 10K Ohm 0,25W – 1 szt.
7. Dioda prostownicza 1N4004 (na zdjęciu jest inna, też działa) - 1 szt.
8. Płytka PCB – 1 szt.
9. Arduino Nano (klon lub oryginał) – 1 szt.
10. BME BMP280 Sensor lub BMP 280 (na zdjęciu) – 1 szt.
Sposób podłączenia:
Kod programu:
http://dominikhamala.home.pl/Altek/Altek_v1.ino
Plik frtizing projektu pcb:
http://dominikhamala.home.pl/Altek/Altek_v1.fzz
Wszystko komponenty da się kupić na allegro i zlutować we własnym zakresie.
Całkowity koszt powinien się zamknąć w 80zł (lub taniej jak wszystko zamówicie na AliExpress).
Do wgrania i odczytywania później zapisów komputera potrzebne będzie ARDUINO IDE.
Może też się przydać program Fritzing do projektowania płytek PCB oraz możliwości podglądnięcia podłączenia.
Zaczynamy!
Opis modułu:
Ten bardzo prosty moduł po zlutowaniu będzie śledził aktualną wysokość rakiety. Jeżeli wykryje spadek rakiety poniżej maksymalnego pułapu, komputer daje prąd na listwę zaciskową oraz zapisuje w pamięci komputera najwyższy zarejestrowany pułap rakiety. Potem wybucha zapalnik i spadochron zostaje wyrzucony.
Następnie po podłączeniu Arduino do komputera, Arduino wyświetla nam najwyższy pułap rakiety.
Po włączeniu modułu załączy się buzzer(piszczałka), który potem pomoże nam odnaleźć rakietę jeżeli wpadła w gęstą trawę. Może to być irytujące więc dopóki rakieta nie leci można go sobie zakleić taśmą izolacyjną i trochę wyciszyć.
Kod starałem się opisać w miarę jasno, dokonałem kilku poprawek przed publikacją by był bardziej zrozumiały, ale nie mam jak go przetestować więc jakby co to dajcie znać.
A propos testów. Kiedy już zlutujecie sobie ten moduł najłatwiej go przetestować przez wkręcenie diody led lub cienkiego drucika z wełny stalowej do zacisków wyzwalania. Następnie można wsiąść do jakiejś windy, włączyć komputer i wjechać na ostatnie piętro, a potem w dół. Wtedy powinien komputer spalić drucik lub diode led na waszych oczach
Pamiętajcie tylko, że komputer uzbraja wyzwalacz dopiero po wjechaniu na co najmniej 10 metrów.
Lista komponentów:
1. Złącze listwa zaciskowa AK ARK 2pin h12 5mm – 2 szt.
2. Przełącznik DIP switch x1 (2 pin) – 1 szt.
3. N-MOSFET IRFZ44N - THT – 1 szt.
4. KABEL / KONEKTOR - JST - FEMALE - 9 cm – 1 szt.
5. BATERIA LI-PO 7,4V 2S 260mAh 35C/70C TURNIGY – 1 szt.
6. Rezystor 10K Ohm 0,25W – 1 szt.
7. Dioda prostownicza 1N4004 (na zdjęciu jest inna, też działa) - 1 szt.
8. Płytka PCB – 1 szt.
9. Arduino Nano (klon lub oryginał) – 1 szt.
10. BME BMP280 Sensor lub BMP 280 (na zdjęciu) – 1 szt.
Sposób podłączenia:
Kod programu:
http://dominikhamala.home.pl/Altek/Altek_v1.ino
Plik frtizing projektu pcb:
http://dominikhamala.home.pl/Altek/Altek_v1.fzz
Space is hard.
-
- ****
- Posty: 165
- Rejestracja: niedziela, 16 cze 2019, 11:27
- Kontakt:
Re: ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
Projekt z pewnością się przyda, dzięki
Re: ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
Swietny projekt! Sam obecnie kończę tworzyć swój system odzysku i wkrótce rozpocznę pierwsze testy. Zastanawia mnie problem "zaszumienia" danych w twoim projekcie, czy nie istnieje możliwość odpalenia spadochronu podczas przyśpieszania? W komorze z ALTEKIEM mogą występować skoki ciśnienia, dlatego ja zdecydowałem się na porównywanie 2 tablic danych:
void odpalenie_spadochronu_cisnienie()
{
//kolejka fifo dla tab ost pom
ost_pom_cis[4] = ost_pom_cis[3];
ost_pom_cis[3] = ost_pom_cis[2];
ost_pom_cis[2] = ost_pom_cis[1];
ost_pom_cis[1] = ost_pom_cis[0];
ost_pom_cis[0] = cisnienie;
//wpisywanie najmniejszych wart do tablicy z najmniejszymi ciśnieniami
if(cisnienie < najmniejsze_pomiary_cis[0])
{
najmniejsze_pomiary_cis[0] = cisnienie;
} else if(cisnienie < najmniejsze_pomiary_cis[1])
{
najmniejsze_pomiary_cis[1] = cisnienie;
}else if(cisnienie < najmniejsze_pomiary_cis[2])
{
najmniejsze_pomiary_cis[2] = cisnienie;
}else if(cisnienie < najmniejsze_pomiary_cis[3])
{
najmniejsze_pomiary_cis[3] = cisnienie;
}else if(cisnienie < najmniejsze_pomiary_cis[4])
{
najmniejsze_pomiary_cis[4] = cisnienie;
}
//sprawdzamy warunek na odpalenie spadochronu, porównujemy tablice ost pomiarów
//z tablicą najmniejszych pomiarów i jeżeli wszystkie wart z tab ost pom
//są większe od wart w tab najmn pomiarów to odpalamy
bool flaga_cis = true;
for(int i=0; i<5; i++)
{
for(int j=0; j<5; j++)
{
if((ost_pom_cis)<=najmniejsze_pomiary_cis[j]+delta)
{
flaga_cis = false;
i = 5, j = 5;
}
}
}
if(flaga_cis==true)
{
//Serial.println("ODPALONO Z CISNIENIA");
//Serial.println(wysokosc);
boom_cis = true;
digitalWrite(15, HIGH); // odpalenie
}
}
void odpalenie_spadochronu_cisnienie()
{
//kolejka fifo dla tab ost pom
ost_pom_cis[4] = ost_pom_cis[3];
ost_pom_cis[3] = ost_pom_cis[2];
ost_pom_cis[2] = ost_pom_cis[1];
ost_pom_cis[1] = ost_pom_cis[0];
ost_pom_cis[0] = cisnienie;
//wpisywanie najmniejszych wart do tablicy z najmniejszymi ciśnieniami
if(cisnienie < najmniejsze_pomiary_cis[0])
{
najmniejsze_pomiary_cis[0] = cisnienie;
} else if(cisnienie < najmniejsze_pomiary_cis[1])
{
najmniejsze_pomiary_cis[1] = cisnienie;
}else if(cisnienie < najmniejsze_pomiary_cis[2])
{
najmniejsze_pomiary_cis[2] = cisnienie;
}else if(cisnienie < najmniejsze_pomiary_cis[3])
{
najmniejsze_pomiary_cis[3] = cisnienie;
}else if(cisnienie < najmniejsze_pomiary_cis[4])
{
najmniejsze_pomiary_cis[4] = cisnienie;
}
//sprawdzamy warunek na odpalenie spadochronu, porównujemy tablice ost pomiarów
//z tablicą najmniejszych pomiarów i jeżeli wszystkie wart z tab ost pom
//są większe od wart w tab najmn pomiarów to odpalamy
bool flaga_cis = true;
for(int i=0; i<5; i++)
{
for(int j=0; j<5; j++)
{
if((ost_pom_cis)<=najmniejsze_pomiary_cis[j]+delta)
{
flaga_cis = false;
i = 5, j = 5;
}
}
}
if(flaga_cis==true)
{
//Serial.println("ODPALONO Z CISNIENIA");
//Serial.println(wysokosc);
boom_cis = true;
digitalWrite(15, HIGH); // odpalenie
}
}
Re: ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
Ja ze swojej strony dorzucę możliwość rozbudowę układu o prosty zapis danych na kartę danych SD za pomocą rejestratora OpenLog (ok 10zl na aliexpress).
Użycie jest bardzo proste, łączymy układ do portu szeregowego (UART) Arduino, a później za pomocą funkcji Serial.print() wysyłamy dane do loggera. Każde uruchomienie tworzy nowy plik tekstowy na karcie do którego są zapisywane przesłane dane.
Użycie jest bardzo proste, łączymy układ do portu szeregowego (UART) Arduino, a później za pomocą funkcji Serial.print() wysyłamy dane do loggera. Każde uruchomienie tworzy nowy plik tekstowy na karcie do którego są zapisywane przesłane dane.
Re: ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
Dobra robota kolego Vigoniuszu.
inżynier STEM Białystok
Zbych Staniszewski
Zbych Staniszewski
Re: ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
Dzięki Panowie. Założeniem tego projektu była możliwość wciśnięcia tego w jak najmniejszą rakietę. Mój rekord to rurka fi-35mm.
Odnośnie pytań z zaszumianiem, można zrobić filtrowanie po stronie software'u jednak biblioteka czujnika BMP280 robi to za nas. W kodzie można ustawić faktor odszumienia danych. Skutkuje to oczywiście spowolnieniem pomiaru co w praktyce wygląda tak, że rakieta spadła już z 10 metrów a czujnik pokaże, że dopiero spadła np. 3 metry. Ja stosuje niski faktor odszumienia a mimo wszystko dane są bardzo gładkie. Niestety nie testowałem czujnika przy prędkościach naddźwiękowych.
Dobry pomysł Shagr z rozszerzeniem o zapis na kartę SD. Trochę więcej miejsca będzie zajmowało ale ciągle powinno się dać to wcisnąć w małą rurkę.
Moja obecna wersja Altka ma zapis na karcie SD i pełne IMU (gyro,acc,bar,mag), ale to już bardziej rozbudowany projekt - kiedyś w wolnym czasie udostępnię projekt i kod.
Odnośnie pytań z zaszumianiem, można zrobić filtrowanie po stronie software'u jednak biblioteka czujnika BMP280 robi to za nas. W kodzie można ustawić faktor odszumienia danych. Skutkuje to oczywiście spowolnieniem pomiaru co w praktyce wygląda tak, że rakieta spadła już z 10 metrów a czujnik pokaże, że dopiero spadła np. 3 metry. Ja stosuje niski faktor odszumienia a mimo wszystko dane są bardzo gładkie. Niestety nie testowałem czujnika przy prędkościach naddźwiękowych.
Dobry pomysł Shagr z rozszerzeniem o zapis na kartę SD. Trochę więcej miejsca będzie zajmowało ale ciągle powinno się dać to wcisnąć w małą rurkę.
Moja obecna wersja Altka ma zapis na karcie SD i pełne IMU (gyro,acc,bar,mag), ale to już bardziej rozbudowany projekt - kiedyś w wolnym czasie udostępnię projekt i kod.
Space is hard.
Re: ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
Witam.
Bardzo mnie kusi , żeby zrobić sobie ALTEK. Części typowe i dostępne.
Do tej pory nie wgrywałem tylko programów do Arduino.
Bardzo mnie kusi , żeby zrobić sobie ALTEK. Części typowe i dostępne.
Do tej pory nie wgrywałem tylko programów do Arduino.
inżynier STEM Białystok
Zbych Staniszewski
Zbych Staniszewski
Re: ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
Świetne rozwiązanie! Właśnie kompletuję części i zabieram się za budowę! Czy wersję z żyroskopem udało się dokończyć i mógłbyś uchylić rąbka tajemnicy?
Re: ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
Tak jak najbardziej, ale to jest znacznie bardziej rozbudowany (hardware'owo i software'owo) projekt. Wymaga zapisu na karcie microSD, inaczej takie dane nie przydadza Ci sie za bardzo.
Space is hard.
Re: ALTEK v1 - Altimetr i Wyzwalacz na częściach sklepowych
Wstępnie będę składał wersję pierwszą ale docelowo chciałbym wykonać bardziej zaawansowany " komputer pokładowy". Z arduino mam drobne doświadczenie ( składałem sobie smart dom) więc myślę, że powinno się udać