Skocz do zawartości

Linefollower z mikrokontrolerem XMega


TenWernyhor

Pomocna odpowiedź

Hej, jeśli komuś chciałoby się rzucić okiem na schemat mojego LF'a i sprawdzić czy wszystko jest jak należy, to bardzo proszę:

ptm.thumb.png.f7d088dadceed102626cfcc32bcd650d.png

Będę wdzięczny za wszelkie uwagi. Przede wszystkim chciałbym się upewnić, czy sterownie diodami IR jest na pewno ok.

Pozdrawiam!

Edytowano przez TenWernyhor
Link do komentarza
Share on other sites

Kompletnie skopałeś załączanie diodek tranzystorami T2 i T3. Wskazówka: zakładając, że emiter jest ciągnięty do +5V przez LED(y) z opornikiem a bazę sterujesz z potencjałów 0-3.3V to zastanów się jakie napięcia w takim połączeniu a) na bazie, b) na emiterze uzyskasz. Dlaczego nie zrobiłeś narzucającej się tutaj konfiguracji OE na npn?

Wyjście odbiornika TSOP jest w zasadzie typu open collector. Niektóre mają tam jakiś podciąg do Vcc rzędu 30k, ale nawet jeśli, to obciążenie takiego czegoś dzielnikiem R6/R7 spowoduje, że nie masz szans na sensowne napięcie w stanie wysokim na pinie procesora. I po co w ogóle te kombinacje skoro akurat TSOP4836 może pracować od 2.5V umożliwiającym zasilanie z 3.3V i "direct drive" procesora? Upewnij się, że linia sygnału z TSOPa może być przerwaniem a nie jest jakimś przypadkowym pinem. Takie transmisje dobrze jest odbierać równolegle do wszelkich innych procesów zachodzących w programie.

Marnujesz mnóstwo mocy na rezystorach, zasilając z 5V aż 8 diod podczerwonych połączonych równolegle. Mając aż 5V możesz spokojnie połączyć po 3 w szereg albo skorzystać z zasilania 3.3V i dać cztery grupy po dwie sztuki.

Co robi zespół D1/T1? Czy to jakiś czujnik przeszkód? Dlaczego pompujesz w LED prawie 100mA?

na wszelki wypadek dałbym jakieś zabezpieczenie przed odwrotnym podłaczeniem akumulatora. To oczyiwście może być odpowiednie złącze - tym bardziej jeśli kupisz gotowy pakiet modelarski), ale jeśli jeszcze nie wiesz jak to będzie rozwiązane, wstaw może PMOS na wejściu albo chociaż diodę szeregową. Bez tego oba stabilizatory i mostek widzą bezpośrednio szynę akumulatora więc pierwsze pójdą z dymem a dalej to trudno powiedzieć.. 

Debugger nie zawsze jest wystarczającym narzędziem do uruchamiania programu, szczególnie takiego który "odjeżdża" gdzieś po podłodze pokoju. Dałbym UART (a XMEGA ma ich trochę) gdzieś na złącze razem z zasilaniem 3.3V. W najprostszym przypadku podłączysz tam konwerter UART/USB i zobaczysz co procesor mierzy albo co akurat robi, a gdy kabelka nie starczy zawsze możesz podstawić tam mały moduł WiFi i mieć zdalną telemetrię z toru testowego. Program do dobrego LFa nie powstaje w jeden dzień więc zawsze podczas projektowania sprzętu miej z tyłu głowy to jak będziesz go uruchamiał, testował i poprawiał. Nie tylko na biurku, ale także podczas przejazdów. Logi ze stanów automatów, odczytów czujników i wysterowania silników są bezcenną pomocą w podkręcaniu osiągów 🙂 a jak wiesz poziom tej konkrencji jest w Polsce niesamowity.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

(edytowany)

Dzięki za poświęcony czas. Poprawiłem tranzystory, jestem prawie pewny, że jest już okej. Emitery podłączyłem bezpośrednio do 3,3V, bazy prze rezystory 4,7k co powinno umożliwić sterowanie prądem do 140mA przy minimalnym β : (3,3V-0,7V)/4,7kΩ*250 ≈ 140mA, jeśli dobrze rozumiem. 

TSOPa zasiliłem 3,3V i podłączyłem według dokumentacji, bezpośrednio do mikrokontrolera. Istnieją dwie wersje czujników TSOP48xx - starsza może pracować tylko z 5V i różni się nieco od nowszej, poprawionej wersji. Popatrzyłem na złą dokumentacje, stąd te kombinacje z dzielnikiem 😛 W XMegach każdy pin ma przerwania.

Diody pogrupowałem po dwie i zasiliłem 3,3V, żeby uprościć płytkę zrezygnowałem z 5V.

7 godzin temu, marek1707 napisał:

Co robi zespół D1/T1? Czy to jakiś czujnik przeszkód? Dlaczego pompujesz w LED prawie 100mA?

Tak, to czujnik przeszkód. Teraz, przy 3,3V będzie mniejsze natężenie. Pierwotnie dałem tyle, bo już kiedyś używałem jej w parze w z fototranzystorem jako czujnik odległości i zasilałem podobnym natężeniem, grzała się mocno, ale zasięg czujnika był bardzo satysfakcjonujący, zwłaszcza przy kiepsko dobranym fototranzystorze. Poza tym jest podłączona do DAC, więc mógłbym regulować natężenie. Nie wiem, na ile założenie, że większe natężenie na diodzie to lepszy zasięg jest poprawne. Obecnie może być na niej maksymalnie około 40mA. Myślę że to wystarczy, zwłaszcza że teraz będę miał lepszy fototranzystor.

Zamierzam przylutować kabel z odpowiednią wtyczką, powinno wystarczyć. Jeśli chodzi o zasilanie to zaczynam się zastanawiać, czy dip switch to na pewno dobry przełącznik do takiego zastosowania. Chyba poszukam czegoś innego, bo oczami wyobraźni widzę stopiony plastik.

Mam wyprowadzone I2C i piny z SPI/UART, dodałem też jeden przycisk - będę mógł sobie chociaż ustawić na nich  +/- do jakiejś nastawy. Nie wiem czy ten robot kiedykolwiek wystartuje na jakichś zawodach, na razie chcę tylko zdać laboratoria z podstaw techniki mikroprocesorowej na ładną ocenę 😛

Aktualny schemat:

1670650816_PTMnacel.thumb.png.43b5186e9893b7dba6d886e2e8c0793d.png

Edytowano przez TenWernyhor
Link do komentarza
Share on other sites

Odwracając zasilanie diodek zapomniałeś o istnieniu LED3/LED4. 

Oszacuj całkowity prąd pobierany z 3.3V (LEDy, mostek, procek) i policz radiator dla stabilizatora. Nie podałeś na schemacie napięcia akumulatora. LiPol 2S?

Złącz UART/I2C nie zauważyłem - napaplałem się bez sensu..

Współczynnik β podawany jest dla pewnych warunków. Tu masz małe tranzystory więc 140mA to już dla nich spory prąd a producent zapewnia, że wzmocnienie 250 dostaniesz przy 100mA i napięciu Uce 1V czyli na granicy pracy "analogowej". Weź to pod uwagę przy liczeniu prądów diodek, szczególnie przy niskim, 3.3V zasilaniu. Zamiana wzmacniacza liniowego w klucz i zjechanie np. do Uce <200mV może kosztować np. 10x więcej prądu bazy i 5-krotny spadek wzmocnienia.

Nie wysyłaj na złącze silnika własnego zasilania i masy. To bardzo zakłócone kable i puszczanie obok nich (po co?) żyły z 3.3V to proszenie się o powrót tego śmiecia przez pojemności do procesora.

R1 i R29 wydają się zbędne.

C5 i C6 zamontuj bezpośrednio na pinach silników. Tutaj przy mostku są zbędne, a wręcz szkodliwe. Skorzystaj z nikłej (ale przecież niezerowej) rezystancji/indukcyjności kabelków płytka-silnik. Być może dasz na nich w razie potrzeby dławiki szeregowe a mając kondensatory na PCB filtrów LC już nie zrobisz.

Datasheet procka sugeruje, że nie powinieneś obciążać wyjścia DACa, jego parametery są podawane dla R(load)=100k a więc wydajność prądowa tego pinu jest mikropamperowa. Albo daj bufor porządny bufor (lub choćby tranzystor npn jako wtórnik emiterowy) albo zapomnij o regulacji analogowej potrzebującej obecnie jakichś miliamperów (1000 razy więcej?) w bazie tranzystora.

Pamiętaj, że czułości tego typu prostych detektorów reguluje się nie tylko prądem diody LED/IR, ale i opornikiem obciążającym tranzystor. W przypadku T1 jest to R25: zmiana z 10k -> 22k da dwa razy większą czułość. 

Tak, DIP-switch to typowo sygnałowy przełącznik, do zasilania nie nadaje się zupełnie. Daj coś od razu na 2A albo tranzystor. Dzisiaj MOSFET nawet 4-5A to przecież obudowa SOT23.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)

Myślę, że całkowity prąd pobierany ze stabilizatora nie powinien przekraczać 300mA, więc radiator nie jest wymagany. Tak, planuje zasilanie akumulatorem LiPol 2S.

Planuje wykorzystanie enkoderów magnetycznych od Pololu, dlatego potrzebuje tam 3,3V. Usunąłem kondensatory C5 i C6, płytka od enkoderów ma kondensator 3,3nF podłączony do pinów silnika. Prawdopodobnie dolutuje jeszcze po 100nF do każdej płytki wykorzystując przelotki.

W takim razie z DACa zrezygnuje. Zamieniłem rezystory na bazach na 2,2k. Dam przełącznik suwakowy 0,5A/12V, powinien wystarczyć widziałem go na kilku robotach z forum, ciężko znaleźć coś około 2A, co nie jest krową.

1788422317_ptmnowy.thumb.png.205177032342df61e0bfa011bc3400c9.png

Edytowano przez TenWernyhor
Link do komentarza
Share on other sites

(8V-3.3V)*0.3A to prawie 1.5W mocy strat. Ja bym się zastanowił nad większą obudową niż SOT223 a Ty mówisz, że radiatora nie potrzeba.. Przecież nie chodzi o jakąś blachę , bo w przypadku wersji 1117MP to nawet mechanicznie byłoby trudne, tylko o porządne pole miedzi na PCB i mnóstwo przelotek wokół, a na to w małym robocie może miejsca nie być. Tragedii jeszcze nie ma, ale przy takich stratach to stabilizator w SOT223 będzie parzył.

1 godzinę temu, TenWernyhor napisał:

co nie jest krową.

Dlatego sugerowałem tranzystor i wtedy dowolnie mały przełącznik..

1 godzinę temu, TenWernyhor napisał:

dlatego potrzebuje tam 3,3V.

To może chociaż zmień kolejność sygnałów w tasiemce do silników:

  • GND
  • SILNIK A
  • SILNIK A
  • GND
  • SILNIK B
  • SILNIK B
  • GND
  • 3.3V

Na złączu do płytki czujników weź pod uwagę, że cały prąd powrotny diodek będzie płynął jednym kabelkiem GND. Ta sama linia jest też odniesieniem wszystkim sygnałów z czujników. Może warto dać dwie linie masy albo nawet rozdzielić je na czujnikach a połączyć dopiero na głównym PCB?

Link do komentarza
Share on other sites

Tak, masz rację 1,5W to za dużo na SOT223, pracowałem nad tym po nocy i źle przeczytałem dokumentację - (125°C-40°C)/1,5W < 136 więc "heatsink is required." Zamieniłem obudowę na TO252 i uwzględnię duże pole masy na płytce. 

1 godzinę temu, marek1707 napisał:

Dlatego sugerowałem tranzystor i wtedy dowolnie mały przełącznik..

Wydaje mi się, że ten przełącznik da radę 0,5A/12V odpowiadałoby, jeśli się nie mylę 0,75A przy 8V w pełni naładowanego akumulatora, zakładając 0,3A prądu przez stabilizator, na silniki zostaje 0,45A na silniki, bez obciążenia pobierają łącznie 0,14A myślę, że stosunkowo lekki robot nie spowoduje przy zwykłej jeździe jakiegoś wielkiego obciążenia. Mam w domu te silniki i postaram się to zmierzyć w wolnej chwili. Większe obciążenia nie powinny też trwać jakoś długo. Mogę się mylić...

2 godziny temu, marek1707 napisał:

Na złączu do płytki czujników weź pod uwagę, że cały prąd powrotny diodek będzie płynął jednym kabelkiem GND. Ta sama linia jest też odniesieniem wszystkim sygnałów z czujników. Może warto dać dwie linie masy albo nawet rozdzielić je na czujnikach a połączyć dopiero na głównym PCB?

Na złączu na masę mam przeznaczone 2 piny, mogę dać IDC 16 i wtedy 4, ale myślę że to wystarczy. Jeśli dobrze rozumiem taśmę IDC można potraktować tu jako rezystor, na którym wystąpi spadek napięcia, a zwiększając ilość żył na masie zmniejszę rezystancję, a tym samym spadek napięcia. Dodam jeszcze po 100nF na każde źródło zasilania na płytce. Nie jestem pewny, czy dobrze zrozumiałem ten problem.

Link do komentarza
Share on other sites

Problem podniesienia potencjału odniesienia na tasiemce jest tu trochę dmuchaniem na zimne, bo przecież (czy na pewno?) sygnałów z czujników opto nie będziesz mierzyć przetwornikiem ADC a jedynie ulegną dyskryminacji do poziomów 0/1 na poziomach przełączania bramek wejściowych procesora. W każdym razie chciałem zwrócić na to uwagę, bo problem istnieje i czasem można się o niego przewrócić a jakoś takie rzeczy w projektach mnie uwierają.. Dobrze się domyślasz: chodzi o rezystancję połączenia między płytkami (złącze -> taśma -> złącze) i spadek napiecia na nim. Wyjściem "siłowym" jest rzecz jasna zmniejszanie rezystancji czyli zwielokrotnianie pinów i kabelków na GND. Rozwiązaniem "inteligentnym" jest podział sieci GND na płytce czujników na dwie: masę "brudną" do której podłączasz katody wszystkich LEDów czujnikowych i masę "czystą" poprowadzoną osobnym kabelekiem na której stoja emitery wszystkich tranzystorów. Obie masy łączysz do GND dopiero na płycie głównej. Dzieki temu spadek napięcia na linii dirty-gnd w ogóle Cię nie obchodzi a LEDom to nie przeszkadza. Natomiast przez ten drugi kabelek płynie tylko znikomy prąd sumy emiterów/kolektorów tranzystorów czujników. Mimo takiej samej rezystancji połączenia powoduje to dużo mniejszy spadek i błąd widziany już na płycie głównej może być zaniedbywalny. To na przyszłość, gdybyś kiedyś robił coś pomiarowego, ale oczywiście nie ma przeciwwskazań byś zrobił tak i tutaj.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.