Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'fotografia'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 1 wynik

  1. Mój pierwszy projekt, którym jakiś czas temu zacząłem swoją przygodę z Arduino. Wężyk spustowy z interwałometrem sterowany radiowo poprzez Bluetooth. W astrofotografii popularne jest wykorzystanie techniki stackowania polegającej na łączeniu dziesiątek, czasem nawet setek zdjęć w jedno. Znacznie polepsza to stosunek sygnału do szumu. Niektóre zjawiska trwają kilka godzin (np zaćmienia, tranzyty, roje meteorów). Często też warunki atmosferyczne nie zachęcają do dłuższego pobytu na zewnątrz w środku nocy. Wyzwalacz pozwoli nam zautomatyzować rejestrację zjawisk astronomicznych. Hardware: - Arduino Pro Mini 3.3V (lub inne) - Bluetooth - UART np w postaci modułu HC-06 czy HC-05 - transoptor np PS2501 służący do zwierania obwodu, wymaga podłączenia przez stosowny rezystor (napięcie i natężenie prądu znajdziemy w dokumentacji technicznej transoptora) do pinu wyznaczonego w kodzie źródłowym (#define RelayPin). - koszyk na 3xAA - przełącznik kołyskowy do włączania - cienki kabel glośnikowy, zakończony microjackiem, wlutowany do transoptora. Pamiętajmy jednak, że również strona fotodetektora ma swoją polaryzację i transoptor powinien być podłączony do wtyczki w stosownej kolejności: Na początku do sterowania konieczne było ręczne wydawanie poleceń w terminalu. Do tego celu mogliśmy zainstalować aplikację Serial Bluetooth Terminal. e - pojedyncza ekspozycja w12 - poczekaj 12s i wykonaj zdjęcie s10i1w2 - wykonaj serię 10. zdjęć, z interwalem czasowym 1s, poczekaj 2s przed rozpoczęciem. Zawsze na końcu każdego z tych poleceń można dopisać t5, zadając czas naświetlania 5s. Samo t5 też działa. Może byc więc t5 w4t5 s10i1w2t5 Jeśli podamy własny czas naświetlania, aparat MUSI być ustawiony na czas B. #define RelayPin 13 String ReceivedData = "", numberstr; unsigned int i, character, NoExposures = 0; double exptime = 0.5, interval = 1, wait = 0; void setup() { Serial.begin(9600); pinMode(RelayPin, OUTPUT); digitalWrite(RelayPin, LOW); } void loop() { if (Serial.available() > 0) { ReceivedData = Serial.readStringUntil('\n'); ReceivedData.toLowerCase(); numberstr = ""; wait = 0; if (ReceivedData[0] == 'e' || ReceivedData[0] == 't' || ReceivedData[0] == 'w') { numberstr = extractvalue(ReceivedData, 'w'); wait = numberstr.toDouble(); if (wait != 0) { Serial.print("Wait "); Serial.print(wait); Serial.println(" s before start exposure."); } delay(wait * 1000); Serial.print("Exposure"); numberstr = extractvalue(ReceivedData, 't'); exptime = numberstr.toDouble(); if (exptime != 0) { Serial.print(" time "); Serial.print(exptime); Serial.print(" s"); } Serial.println("."); exposure(ReceivedData); } if (ReceivedData[0] == 's') { NoExposures = 0; numberstr = extractvalue(ReceivedData, 's'); NoExposures = numberstr.toInt(); numberstr = extractvalue(ReceivedData, 'i'); interval = numberstr.toDouble(); if (!interval) { interval = 1; } numberstr = extractvalue(ReceivedData, 'w'); wait = numberstr.toDouble(); Serial.print("Will make series of "); Serial.print(NoExposures); Serial.print(" images with interval "); Serial.print(interval); Serial.print(" s."); if (wait != 0) { Serial.print(" Wait "); Serial.print(wait); Serial.print(" s before start."); } numberstr = extractvalue(ReceivedData, 't'); exptime = numberstr.toDouble(); if (exptime) { Serial.print(" Exposure time "); Serial.print(exptime); Serial.println(" s."); } else Serial.println(); delay(wait * 1000); for (i = 0; i < NoExposures; i++) { Serial.print("Exposure no. "); Serial.print(i + 1); Serial.print(" from "); Serial.print(NoExposures); Serial.println("."); exposure(ReceivedData); delay(interval * 1000); } } } } String extractvalue(String inputstring, char parametr) { int character; String numberstr; for (character = 0; inputstring[character] != parametr && character < inputstring.length(); character++) { } if (inputstring[character] == parametr) { numberstr = ""; for (character++; character < inputstring.length() && inputstring[character] > 47 && inputstring[character] < 58 || inputstring[character] == '.'; character++) { numberstr = numberstr + inputstring[character]; } } return numberstr; } void exposure(String ReceivedData) { numberstr = extractvalue(ReceivedData, 't'); exptime = numberstr.toDouble(); if (exptime == 0) { exptime = 0.5; } digitalWrite(RelayPin, HIGH); delay(exptime * 1000); digitalWrite(RelayPin, LOW); } Niedawno jednak zmobilizowałem się do napisania własnej aplikacji mobilnej współpracującej z urządzeniem. Postanowiłem wykorzystać do tego środowisko Apache Cordova oraz plugin Cordova (PhoneGap) Plugin for Serial Communication over Bluetooth. Bluetooth.7zip Dlaczego taki pokraczny design? Czarne tło i czerwone napisy najmniej psują akomodację oka w ciemności. To bardzo istotne przy zastosowaniach astronomicznych. Dlaczego akurat przez wielu niezalecana Cordova? bardzo słabo znam JavaScript, a ten język jest mi potrzebny (w przeciwieństwie do Javy, w której powinno się pisać aplikacje na Androida) Cordova umożliwia bardzo proste tworzenie aplikacji DOKŁADNIE tak, jakbyśmy robili normalną stronę WWW aplikacja jest skrajnie prosta i mniejsza wydajność aplikacji hybrydowych względem natywnych nie powinna stanowić problemu Po instalacji środowiska Cordova (Windows, Linux) przechodzimy do rozpakowanego folderu z kodem programu. Możemy już skompilować program komendą cordova build. Plik instalacyjny .apk znajduje się w folderze Bluetooth/platforms/android/build/outputs. By go "usadowić na telefonie" musimy jednak wcześniej zezwolić na instalację aplikacji z nieznanych źródeł. Prawdopodobnie jeszcze łatwiej "wyklikamy" aplikację mobilną w MIT App Inventor. Fotografowanie zjawisk trwających kilka godzin stało się prostsze
×
×
  • Utwórz nowe...