Skocz do zawartości

Kangurek

Users
  • Zawartość

    109
  • Rejestracja

  • Ostatnio

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Żory

Osiągnięcia użytkownika Kangurek

Entuzjasta

Entuzjasta (7/19)

  • Młodszy Juror
  • Za 100 postów
  • Za 5 postów
  • Za 25 postów
  • Młodszy roboty

Odznaki

1

Reputacja

  1. @marek1707 dziękuję za cenne informacje. Z braku czasu musiałem na chwilę odstawić projekt, ale powróciłem do niego i wprowadziłem sugerowane zmiany. Niestety nigdy nikt mnie nie uczył robienia schematów, więc pierwsze schematy wrzucone przeze mnie łamały wszelkie zasady ich tworzenia. Tym razem trochę poczytałem i bardziej się postarałem, choć zapewne nie udało mi się w pełni zastosować wszystkich zasad. Nie mniej, mam nadzieję, że tym razem układ będzie działał. Zastosowałem high side switch AP22802AW5-7 gdyż niestety wymienionego nie było w sklepie. Odcinam nim napięcie praktycznie ze wszystkiego. Przy życiu zostawiam tylko stabilizator i ESP. Spowodowane jest to w pierwszej kolejności maksymalnym ograniczeniem zużycia prądu a w drugiej kolejności możliwością rozszerzenia projektu o inne, bardziej prądożerne czujniki. Bardzo proszę o ponowne sprawdzenie schematów. SystemKontroliKwiatkow.pdf SystemKontroliKwiatkowZCzujnikiemSwiatla.pdf
  2. Cześć! Tworzę mały projekcik, dzięki któremu będę mógł kontrolować warunki wokół moich roślin. Jednym z podstawowych założeń jest oszczędność baterii. Układ jest zasilany przez baterię 18650 a jego mózgiem jest ESP8266. Aby zaoszczędzić energię chcę włączać zasilanie dla czujników tylko na moment, poprzez podanie stanu wysokiego z GPIO14 i 13 na tranzystory typu MOSFET (IRLML6246 jako N MOSFET i IRLML6401 jako P MOSFET). Niestety mam małą wiedzę na temat budowy własnych układów elektronicznych i nie jestem pewien czy wybrane przeze mnie tranzystory spełnią swoją rolę. Wrzucam dwa schematy, które różnią się tylko sposobem przekazywania informacji o stanie naładowania baterii (jako element główny tego podukładu wykorzystuję TL431). Pierwszy układ ma za zadanie podawać stan niski na GPIO2, kiedy bateria ma poniżej 3,6v a drugi podaje stan wysoki na GPIO2, kiedy bateria ma poniżej 3,6v. W przypadku pierwszego układu, poprzez dzielnik napięcia ograniczyłem napięcie płynące do GPIO2 tak, aby przy maksymalnym naładowaniu baterii nie przekroczyć 1,3*Vdd mikrokontrolera. Proszę o sprawdzenie, czy dobrane tranzystory spełnią swoją rolę przy włączaniu układu monitorującego baterię i w przypadku włączania czujników oraz o ewentualne poprawki układu jeśli coś przeoczyłem. PS. Celowo nie wrzucam odcinania baterii jeśli jej stan spadnie poniżej 3,2V. Po prostu chce maksymalnie zaoszczędzić czas pracy na baterii.
  3. Moja wiedza jest zaczerpnięta z kursu bascoma na tej stronie, tam jest używane elseif (z reszta to właściwie kopia programu z tego kursu). Ale jak programuje na 4 przyciski (bo niestety nie mam czujników bo sie zepsuły) tzn kod wygląda tak: If P1 = 1 and P2 = 0 and P3 = 0 and P4 =0 Then Gosub Prosto elseif P1 = 0 and P2 = 1 and P3 = 0 and P4 =0 Then Gosub Tyl I tak dalej, to też mi to nie działa =/ [ Dodano: 10-03-2011, 20:38 ] Ok, już doszedłem do sedna sprawy. Nie działa mi P4, przez co zaprogramowany program działał źle a właściwie to nie działał. Teraz wszystko śmiga jak należy, i przy okazji dowiedziałem się paru różnych rzeczy na temat programowania. Też myślałem że w komendzie PORTD = &B11111111 od lewej liczy od PD0 a jest dokładnie na odwrót i od prawej jest PD0 itd. Oto kod programu jakby ktoś miał podobne problemy: $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Input Portd = &B00000111 Config Portc = Output Portc = &B000000 Motor_lp Alias Portc.4 Motor_lt Alias Portc.3 Motor_pp Alias Portc.2 Motor_pt Alias Portc.1 P1 Alias Pind.0 P2 Alias Pind.1 P3 Alias Pind.2 Do If P1 = 0 And P2 = 1 And P3 = 1 Then Gosub Prosto Elseif P1 = 1 And P2 = 0 And P3 = 1 Then Gosub Tyl Elseif P1 = 1 And P2 = 1 And P3 = 1 Then Gosub Stoj End If Loop Return Prosto: 'Tryby pracy silników dla poszczególnych ruchów Motor_lt = 1 Motor_pt = 1 Motor_lp = 0 Motor_pp = 0 Return Tyl: Motor_lt = 0 Motor_pt = 0 Motor_lp = 1 Motor_pp = 1 Return Prawo: Motor_lt = 0 Motor_pt = 1 Motor_lp = 0 Motor_pp = 0 Return Lewo: Motor_lt = 1 Motor_pt = 0 Motor_lp = 0 Motor_pp = 0 Return Stoj: Motor_lt = 0 Motor_pt = 0 Motor_lp = 0 Motor_pp = 0 Return
  4. Ten program działa Natomiast ten już nie =/ I żadne inne ustawienia portów nie działają. Tzn dopiszę To już program zaczyna wariować. Tzn silniczek się kręci, ale jak naciskam przyciski to zero reakcji.
  5. No właśnie, zobacz czy podłączyłeś wszystkie nóżki odpowiednio pod zasilanie i pod programator. Ewentualnie możesz zobaczyć ponyprog. Z tym, że nie wiem czy jest na USB... Ale mi na LPT działa świetnie 🙂 [ Dodano: 08-03-2011, 23:00 ] Jeszcze mi przyszło do głowy takie coś: skompilowałeś program? Jeśli nie to się nie dziwię, że nie potrafi znaleźć pliku "nazwaprojektu.eep". Pamiętaj, żeby w opcjach ustawić jakiego programatora używasz i jaki masz mikrokontroler, bo bez tego Ci nie zaprogramuje.Jednak z komunikatu wynika co innego. Ale dla pewności zobacz.
  6. Czyli tak powinien wygladać wstęp do programu??
  7. Ok, działa i teraz do programu do robota wystarczy dopisać to samo tylko na piny od czujników? [ Dodano: 06-03-2011, 21:08 ] PS. Pytam profilaktycznie bo bede to mógł sprawdzić dopiero jak mi dojdzie układ L293D z allegro bo ten co mialem to sie przepalił 🙂
  8. Zera są dobrze, bo tyle jest portów c w ATmedze. A nawet jak jest ich 8 to tez nie działa =/
  9. Teraz powinno być dobrze ale niestety nic nie reaguje =/ [ Dodano: 05-03-2011, 14:16 ] Dodam tylko że programując w C prosty program mrugajacej diody wszystko działa, więc to nie wina układu.
  10. Witam, nie działa mi poprawnie program napisany w BASCOMIE =/ Docelowo ma być dla line followera, jednak przerobiłem go na prosty, bo nawet taki mi nie działa. W czym może być problem?
  11. Co do tych przedrostków to wiem jakie są i też mi nie pasowało jednak kolega napisał kolejno. Fakt jest taki, że myślałem żeby to jeszcze zmienić ale potem jakoś mi to wyleciało z głowy... Teraz sprawdzę to co napisaliście i za chwilkę napiszę odpowiedź czy działa [ Dodano: 07 Gru 09 05:09 ] OK Wszystko działa tak jak należy. Wielkie dzięki 😃
  12. A to nie jest konfiguracja wejść/wyjść?? Portc = &B11111111 Portd = &B00000000 Portb = &B00000000 Wpisałem to $crystal = 4000000 Bo mam kwarc 8MHz Niestety nadal nie działa [ Dodano: 06 Gru 09 10:34 ] Aaa i jeszcze jedno: układ l293d się lekko nagrzewa, ale wydaje mi się, że to jest normalne...
  13. Diody ir świecą a czujniki sprawdzalem na różnych wysokościach. Po za tym zamiast czujników mam tez zwykłe switche, które działają. Połączyłem też nóżki tranzystorów tzn żeby prąd przepływał ale to i tak nie pomogło. A co do tego kodu to gdzie mam umieścić tę wstawkę co napisałeś?? Bo ja nie jestem dobry w bascomie z reszta nauczyłem się tylko tyle żebym mógł przerobić kod, który zapożyczyłem od innego projektu. Więc nie mogę powiedzieć, że potrafię programować jednak trochę wiem co i jak.
  14. Hejka, przedwczoraj miałem okazje ( po długim okresie czasu) skończyć projekt robota. Jest nim linefollower. W prawdzie nie wyszedł tak jak na początku go planowałem ale tego już nie będę opisywał. Problem polega na tym, że programuje robota a on nie działa =/ Programuje go w bascomie i jest to stary i prosty program tylko przerobiony na moje potrzeby (tzn. odpowiednie porty itp.). Schemat zaciągnąłem ze strony http://myrobot.ru/stepbystep/r_firstbot2.php i lekko go zmodyfikowałem: dodałem switch'e do PD0...PD3 oraz czujniki do PD5...PD7 i PB0...PB2 Czujniki to TCRT5000 nie mam żadnego komparatora ponieważ kiedyś jak robiłem (było to na ATtiny2313) to działało bez niego. Może to był błąd jednak wydaje mi sie, że tutaj nie tkwi problem. Program napisałem tak, żeby odczytywał stany z czujników i ze switch'ów i odpowiednio uruchamiał silniczki. Czyli wciskam przycisk 1 i robot jedzie do przodu, 2 do tyłu itd. ta metoda zawiodła. Sprawdzałem sprawność ATmegi8 i działało (sprawdzałem programem ze strony kursc.forbot.pl) jednak kiedy wgrywam program pisany w bascomie to nie działa. Sprawdziłem to też w taki sposób(nie wiem czy dobrze...): wziąłem woltomierz i dałem plus do plusa a minus do nóżki uC gdzie powinien wysyłać sygnał do uruchomienia silniczków (czyli z tego co wiem powinno sie pojawic napiecie). Niestety nie wysyłał żadnego sygnału. Oto program do tego robota: $regfile = "m8def.dat" Portc = &B11111111 Portd = &B00000000 Portb = &B00000000 'lp - lewy przód, lt - lewy tył, pp - prawy przód, pt - lewy tył Motor_lp Alias Portc.4 Motor_lt Alias Portc.3 Motor_pp Alias Portc.2 Motor_pt Alias Portc.1 Sensor_prawy1 Alias Pind.5 Sensor_prawy2 Alias Pind.6 Sensor_srodkowy Alias Pind.7 Sensor_przedni Alias Pinb.0 Sensor_lewy1 Alias Pinb.1 Sensor_lewy2 Alias Pinb.2 Przycisk_1 Alias Pind.0 Przycisk_2 Alias Pind.1 Przycisk_3 Alias Pind.2 Przycisk_4 Alias Pind.3 'Polecenia wydawane na podstawie stanów wejściowych: Do If Sensor_lewy1 = 1 And Sensor_lewy2 = 1 And Sensor_srodkowy = 1 And Sensor_przedni = 1 And Sensor_prawy1 = 1 And Sensor_prawy2 = 1 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 0 And Sensor_przedni = 0 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Tyl Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 0 And Sensor_przedni = 1 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 1 And Sensor_przedni = 1 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Prosto Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 1 And Sensor_srodkowy = 1 And Sensor_przedni = 1 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Prosto Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 0 And Sensor_srodkowy = 0 And Sensor_przedni = 1 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 1 And Sensor_srodkowy = 1 And Sensor_przedni = 1 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Prosto Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 1 And Sensor_srodkowy = 0 And Sensor_przedni = 0 And Sensor_prawy1 = 1 And Sensor_prawy2 = 1 Then Gosub Prosto Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 1 And Sensor_srodkowy = 1 And Sensor_przedni = 1 And Sensor_prawy1 = 1 And Sensor_prawy2 = 0 Then Gosub Prosto Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 1 And Sensor_srodkowy = 1 And Sensor_przedni = 1 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 1 And Sensor_przedni = 1 And Sensor_prawy1 = 1 And Sensor_prawy2 = 0 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 1 And Sensor_przedni = 1 And Sensor_prawy1 = 1 And Sensor_prawy2 = 1 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 1 And Sensor_srodkowy = 1 And Sensor_przedni = 1 And Sensor_prawy1 = 1 And Sensor_prawy2 = 1 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 1 And Sensor_przedni = 1 And Sensor_prawy1 = 0 And Sensor_prawy2 = 1 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 0 And Sensor_przedni = 1 And Sensor_prawy1 = 0 And Sensor_prawy2 = 1 Then Gosub Prosto Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 1 And Sensor_srodkowy = 1 And Sensor_przedni = 0 And Sensor_prawy1 = 1 And Sensor_prawy2 = 1 Then Gosub Prosto Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 1 And Sensor_srodkowy = 1 And Sensor_przedni = 0 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Lewo Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 1 And Sensor_srodkowy = 0 And Sensor_przedni = 0 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Lewo Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 0 And Sensor_srodkowy = 0 And Sensor_przedni = 0 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Lewo Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 1 And Sensor_przedni = 0 And Sensor_prawy1 = 1 And Sensor_prawy2 = 1 Then Gosub Prawo Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 0 And Sensor_przedni = 0 And Sensor_prawy1 = 1 And Sensor_prawy2 = 1 Then Gosub Prawo Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 0 And Sensor_przedni = 0 And Sensor_prawy1 = 0 And Sensor_prawy2 = 1 Then Gosub Prawo Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 0 And Sensor_srodkowy = 1 And Sensor_przedni = 0 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 1 And Sensor_przedni = 0 And Sensor_prawy1 = 0 And Sensor_prawy2 = 1 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 1 And Sensor_srodkowy = 0 And Sensor_przedni = 0 And Sensor_prawy1 = 1 And Sensor_prawy2 = 0 Then Gosub Prosto Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 0 And Sensor_srodkowy = 0 And Sensor_przedni = 0 And Sensor_prawy1 = 0 And Sensor_prawy2 = 1 Then Gosub Prosto Elseif Sensor_lewy1 = 1 And Sensor_lewy2 = 1 And Sensor_srodkowy = 0 And Sensor_przedni = 0 And Sensor_prawy1 = 1 And Sensor_prawy2 = 1 Then Gosub Prosto Elseif Sensor_lewy1 = 0 And Sensor_lewy2 = 0 And Sensor_srodkowy = 1 And Sensor_przedni = 0 And Sensor_prawy1 = 0 And Sensor_prawy2 = 0 Then Gosub Prosto End If If Przycisk_1 = 1 Then Gosub Prosto Elseif Przycisk_2 = 1 Then Gosub Tyl Elseif Przycisk_3 = 1 Then Gosub Prawo Elseif Przycisk_4 = 1 Then Gosub Lewo End If Loop Return Prosto: 'Tryby pracy silników dla poszczególnych ruchów Motor_lt = 1 Motor_pt = 1 Return Tyl: Motor_lt = 0 Motor_pt = 0 Return Prawo: Motor_lt = 0 Motor_pt = 1 Return Lewo: Motor_lt = 1 Motor_pt = 0 Return PS. Proszę o cierpliwość i wyrozumiałość do mnie. 🙂
  15. Z dwoma silnikami to juz myslalem wczoraj w szkole. Łódź wtedy miała by kształt kanadyjki (albo puszki po śledziach 😋) mam nawet szkic zrobiony ale jednak nie da się idealnie prosto płynąć więc ster byłby potrzebny a miejsce byłoby tylko po bokach. Po za tym nie mam rozwiązanej sprawy z naprowadzaniem... Co do kompasu to zrozumiałem instrukcję tak że czujnik pola magnetycznego kiedy jest ustawiony na jakis kierunek swiata wysyła odpowiednie napięcie i trzeba ustawić potencjometrem na jakim napięciu jest północ i to zostaje wysłane do wzmacniacza (nie wiem czy dobrze to nazwalem) i tam zostaje sczytane i rozdzielone napiecie na diody. Moim założeniem było sczytanie tego napięcia zaprogramowanie uC na jakim napięciu ma sie kierować (sorki za wyrazenie ale nic innego mi do głowy nie przychodzi 😃) Ale właściwie to ten pomysł chyba odpada... Bo faktycznie myslałem również o tym że mogą być małe odchyły ale dzis wracajac ze szkoly zdalem sobie sprawę że jeśli łódź będzie skręcać o 20 stopni to wystarczy żeby łódź nie ukończyła zawodów. Dziś się pytałem panią czy mozna dac podczerwien tak jak to sabre napisał ale odpowiedziała mi że nie może być ponieważ to jest wtedy zdalnie sterowane... hmm nie do końca się z tym zgadzam ale jakie argumenty były by dobre gdyby komisja się czepiała? Faktem jest że to nie ja steruje łodzią tylko ona sama (Za pomocą mikroprocesora, ktory jest odpowiednio zaprogramowany) płynie w stronę światła... Co do BASCOMA. Kiedyś czytałem o PWM ale niestety mój móżdżek nie pojmował tego spróbuje się tego nauczyć bo to przydatne. A czas mam do 15.10.2009 więc jeszcze jest go sporo! Myślałem o kupieniu dokładnego elektronicznego kompasu ale taki najtanszy ( w sklepie) to 50 zł i po za tym nie mam koncepcji jak miałbym zczytywać pomiar, pewnie musiałbym go rozkręcić albo coś... Zorientuję się trochę bardziej w tej sprawie, zbuduję prowizoryczną łódź z napędem z przodu i z tyłu przetestuję ją na pobliskim stawie i zobaczę. Cóż najwyżej zdobędę więcej doświadczenia w tej sprawie. [ Dodano: 09 Wrz 09 03:07 ] Jutro zacznę budować łódź i postaram się zrobić ten kompas i tez go przetestuje. [ Dodano: 09 Wrz 09 03:19 ] O żyroskopie też tak sobie myslę że przez komisje będzie to uznane za plus ale narazie nie umię pojąć jak ona ma naprowadzać kierunek... właśnie czytam na ten temat. [ Dodano: 09 Wrz 09 03:26 ] a teraz mi przyszedł pomysł do głowy mam silniczki z firmy tamiya i one są razem połączone może zrobić coś takiego że siła napędowa będzie na środku łodzi? tzn śruby będą po bokach Ehh czytając instrukcję to zaczynam mieć wątpliwości z pomysłem Sabre'a ponieważ w instrukcji jest napisane: Jutro w szkole się dopytam. Po za tym będą spotkania z komisją czy cos takiego to będzie mozna zadawac pytania więc pozostaje tylko czekac. [ Dodano: 09 Wrz 09 04:05 ] Studiując budowę łodzi żaglowej wpadłem na pomysł dodania balastu albo miecza a silnik dać pod łodzią przed sterem, Nie wiem na ile to może być przydatne w małym prowizorycznym modelu.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.