captainfantasticstudent-blog
captainfantasticstudent-blog
TurboGrow -System kontroli warunków wzrostu roślin
3 posts
Don't wanna be here? Send us removal request.
Text
#2 PIERWSZE KROKI
   To chyba jeden z najważniejszym momentów każdego przedsięwzięcia... czyli początek. Jako, że wyklarowałem sobie nieco w głowie jak chcę żeby całość wyglądała wreszcie mogę podjąć jakieś poważne kroki :D
   Po pierwsze stanął przede mną wybór mikrokontrolera i środowiska programistycznego. W moim przypadku padło na układy STM32 oparte na rdzeniu ARM. Czemu akurat one? Bo są dość nowe na rynku (w stosunku np. do takich układów AVR), cechują się nowoczesną 32 bitową architekturą i warto by trochę z nimi popracować :D Całość oprogramowania będzie za to pisana w środowisku uVision od firmy Keil (której właścicielem jest obecnie ARM).
Tumblr media
   Pracować będę dokładnie na modelu mikrokontrolera  STM32F407VG (dokładna specyfikacja TUTAJ). Warto nadmienić, że układ ten pracuje na “modnym” ostatnio napięciu 3,3 V.
   To może wreszcie coś zaprogramujmy??? Tak więc do dzieła!
   Po wstępnej konfiguracji środowiska (obejmującej dość nieinteresujące rzeczy jak wybór programatora, ewentualnych gotowych bibliotek, etc) dostajemy śliczne puste okienko czekające tylko aż poniesie nas wyobraźnia i stworzymy coś wspaniałego :D No ale NIE TAK SZYBKO. Najpierw trzeba chyba wiedzieć jak coś zaprogramować żeby to jakoś działało, prawda? Tutaj właśnie przychodzi nam z pomocą dokumentacja techniczna (można ją szukać na stronie producenta lub na moim GitHub’ie ;D). Jest ona STRASZNIE długa (główny plik ma ponad 1700 stron) i trzeba nauczyć się z nią pracować, ale myślę że to dobry trening przed przyszłą pracą z takimi urządzeniami.
   Jako, że jakiś czas temu zakupiłem całkiem zgrabny analogowy czujnik wilgotności gleby myślę, że program jego obsługi będzie doskonałym początkiem przygody. Pierwszym krokiem jest wybór z pomocą dokumentacji portu mikrokontrolera na którym znajduje się wejście przetwornika analogowo-cyfrowego. W moim przypadku wybrałem pin PA6 (mogące pracować jako pin ADC1_IN6 -> czyli wejście 6 dla przetwornika ADC 1 i 2). Przy konfiguracji przetwornika warto wybrać dłuższy niż domyślny (3 cykle) czas próbkowania wartości mierzonego napięcia, co daje nam dokładniejsze pomiary (ja wybrałem 86 cykli).
Tumblr media
   No to teraz pora chyba wykonać pomiar i jakoś go wykorzystać! W tym celu skonfigurowałem wyjście kanału 4 TIMER’a 4 (pin PD15) jako wyjście PWM (więcej info o konfiguracji w pliku main.c projektu). Teraz może zacząć działać MAGIA! :D
   Odczytując wartość zmierzoną przez przetwornik (wartość rejestru ADC1->DR) możemy wpisać ją do rejestru TIM4->CCR4 (rejestr ten odpowiada za długość trwania sygnału PWM na kanale 4 TIMER’a). W ten sposób w zależności od wilgotności zmierzonej czujnikiem będzie zmieniać się wartość średnia napięcia na wyjściu PD15. 
   Pora więc na pierwszy TEST! Jako, że średnio chce mi się teraz brudzić wszystko ziemią, to wilgotność gleby będę imitował ręką dotykając czujnik palcami (muszę powiedzieć, że całkiem zgrabnie imituje zmienne warunki).
youtube
  I to chyba wszystko na dzisiaj (post i tak robi się już troszkę przydługawy). Czujnik działa całkiem nieźle, PWM też (a co do PWM to przyda się on nam do sterowania pompą wody w późniejszej części projektu). Tak więc do usłyszenia następnym razem ;)
_
P.S. Jak coś to cały napisany przeze mnie program znajduje się na moim GitHubi’e ;)
1 note · View note
Text
#1 ZACZYNAMY
   Pora chyba wreszcie powiedzieć coś o moim projekcie (zwykle lubię chwalić się swoimi pomysłami, więc powinno pójść gładko :D). Jak można zobaczyć na stronie z listą uczestników DSP2017 (link) mój projekt to TurboGrow (nazwa może mało mówi ale o tym zaraz). Sama idea projektu narodziła się tak naprawdę z przypadku i nudy, a jako, że lubię grzebać przy elektronice uznałem niedawno: "to jest dzień aby zająć się czymś produktywnym!". W taki sposób cała koncepcja powstała, ale nie była następnie rozwijana (CO ZAMIERZAM TERAZ ZMIENIĆ!).
   Projekt w swoim zamyśle jest systemem kontroli warunków wzrostu roślin. Urządzenia tego typu można znaleźć już w internecie (link), ale są to zwykle dość proste układy (pompka wody, czujniki i jakiś tam mikrokontroler). Ja chciałbym stworzyć coś bardziej rozbudowanego, zgodnego z koncepcją IoT.
Tumblr media
   No dobrze, ale jak to miałoby wyglądać? Już spieszę z wyjaśnieniem ;)
   Cały projekt składa się z 2 części: elektronicznej i programistycznej. 
   Część elektroniczna to po prostu układ elektroniczny wykonujący zadane mu przez mikrokontroler polecenia (tak, zamierzam zbudować ten układ w rzeczywistości :D, a przynajmniej prototyp). Będzie się na nią składać: system kontroli warunków środowiskowych (nawodnienia, kontroli temperatury, kontroli poziomu nasłonecznienia, itp.) oraz system komunikacji ze światem zewnętrznym (prawdopodobnie przez WiFi). System komunikacji powinien pozwolić na dostęp do danych z urządzenia praktycznie z każdego miejsca na ziemi (a to już chyba coś :D).
   Część programistyczna to w skrócie oprogramowanie mikrokontrolera pisane w C (czyste programowanie na rejestrach z wykorzystaniem dokumentacji - zależałoby mi na optymalnym, "czystym" kodzie), oraz strona internetowa pozwalająca na stworzenie interfejsu użytkownika (tu prawdopodobnie pójdzie w ruch PHP/HTML - których nie umiem obecnie, a chciałbym się choć trochę nauczyć).
   To w skrócie jak na ten moment chyba wszystko jeśli chodzi o założenia projektowe :D Teraz pora na PRAWDZIWE ZABRANIE SIĘ DO DZIAŁANIA!
_
P.S. Coś nowego powinno się niedługo znowu pojawić :D
3 notes · View notes
Photo
Tumblr media
Cześć WSZYSTKIM! Stała się rzecz niesamowita, a mianowicie biorę udział w niezwykłym konkursie :D (dokładniej “DAJ SIĘ POZNAĆ”). Niektórzy mogą powiedzieć, że to przecież nic niezwykłego (w końcu konkurs jak konkurs), ale sama jego forma jest dla mnie osobiście dość nietypowa. Głównym celem nie jest tu rywalizacja sama w sobie, ale chęć rozwijania własnych umiejętności i publikacja swoich osiągnięć (w moim przypadku na tym blogu i w serwisie GitHub). Jedną z rzeczy która najbardziej mi się podoba w całej akcji jest hasło: “W “Daj Się Poznać” programujesz cokolwiek zechcesz. W dowolnej technologii. Zero ograniczeń.” Tak więc chyba DO DZIEŁA!
_
P.S. informacje o realizowanym przeze mnie projekcie pojawią się pewnie wkrótce w następnym poście  ;)
1 note · View note