Skocz do zawartości

Schemat elektroniczny line-follower do sprawdzenia


Gizmo112

Pomocna odpowiedź

Cześć,

zaprojektowałem schemat elektroniczny mojego pierwszego line-followera i chciałbym żeby ktoś sprawdził jego poprawność zanim zacznę projektować płytkę. Użyłem jako uC atmegi16A, chcę korzystać z wewnętrznego oscylatora (xtal1, xtal2 wiszące?) oraz przetwornicy ADC. Zastanawia mnie poprawność pinów po lewej stronie uC, ale podłączałem zgodnie z tym co znalazłem na botlandzie. Skorzystałem z biblioteki atmela do wyjścia na programator, ale nie wiem czy ten najtanszy z botlandu będzie miał wyjście 2x5 czy 2x3 (jakiego użyłem). Z góry dziękuję za sprawdzenie.

Pozdrawiam 🙂

Panel.sch

plytka.sch

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

W opcjach drukowania było tylko do pdf gdzie sie nie miescil schemat ale faktycznie jest export jako obraz. Wybaczcie spam i proszę o sprawdzenie poprawnosci połączeń oraz ogólnie schematu czy nic mu nie brakuje.

Pozdrawiam.

Link do komentarza
Share on other sites

Gizmo112, marnotrawisz dużo prądu na zasilanie diod IR czujników. Wielokrotnie o tym pisałem, połącz po kilka diod szeregowo. Ja w moich konstrukcjach łączyłem po 4 w szeregu z bardzo małym rezystorem szeregowo. Przy zasilaniu z 5V i prądzie 20mA/dioda wychodzi spadek na diodach 4,8V.

Link do komentarza
Share on other sites

Gizmo112, tak jak pisałem wyżej, jeśli przez diodę czujnika ma płynąć nominalny prąd 20mA rezystor dla 4 diod szeregowo i zasilania z 5V musi mieć tak jak policzyłeś 10Ω. Przy prądzie 20mA na jednej diodzie odłoży się spadek 1,2V. Miej świadomość jednak tego co robisz, to musi być 5V zasilania i rezystor zdałoby się 1%, jeśli wstawisz typowy o tolerancji 5% to wartość rezystora może wynieść 9,5 do 10,5Ω, ale z mojego doświadczenia nie wpłynie to znacząco na wartość prądu diody. Co najwyżej w najgorszym wypadku prąd skoczy do 21-22mA co nie zaszkodzi diodzie. Dzięki temu zaoszczędzisz 120mA, bo w diody popłynie tylko 40mA zamiast 160mA.

Link do komentarza
Share on other sites

Spróbuj myśleć perspektywicznie. Wiem, że to trudne rysując schemat pierwszego czy drugiego robota, ale warto wybiegać myślami trochę do przodu. Mam kilka sugestii:

1. Nie wiem czy aż tyle diodek LED jest potrzebnych. Może liczysz na oszałamiające efekty choinki, ale ja bym część linii zmarnowanych na diodki przeznaczył na ciekawsze cele. Zrobiłeś "nosek" z czujnikami linii. Puściłeś tam dokładnie tyle sygnałów ile jest wymagane, ale co będzie gdy zechcesz dospawać np. czujnik odległości dla LF enhcanced? Bez niego na 100% wrypiesz się w cegłę leżącą na trasie. Jeden czy dwa sygnały - nawet cyfrowe, dodane do tasiemki mogą się bardzo przydać.

2. Na LEDy poszło też I2C. To bardzo cenna magistrala, możesz do niej podłączać wiele różnych czujników. Zostaw te dwa piny wolne lub wyciągnij je na jakieś złącze wraz z GND i VCC. W każdej chwili będziesz mógł doczepić np. akcelerometr i pobawić się w kontrolę zakrętów. Nawet jeśli nie w wyścigu LF, to ta sama konstrukcja podwozia może posłużyć do innych testów gdy już LF-owanie Ci się znudzi. Nawet bez kół i silników taka płytka może być platformą do zabawy w pomiary wilgotności, temperatury czy pola magnetycznego Ziemi.

3. Nie zostawiaj pinów UART (TXD, RXD) gołych. Im także daj jakieś złącze, żebyś nie musiał za chwilę lutować się do pustych nóżek procesora. Podłączysz tam choćby moduł Bluetooth do zdalnej telemetrii lub do zdalnego sterowania z kompa czy telefonu, gdy akurat czarnej linii na podłodze nie będzie.

4. Jeżeli kiedykolwiek będziesz chciał wykorzystać SPI, to w trybie MASTER musi mieć ono linię SS ustawioną jako wyjście. Przesuń odbiornik IR na inny pina (najlepiej na któreś wejście przerwania) a jeśli już musisz wykorzystać SS, daj tam choćby diodkę LED albo zostaw pusty. SPI jest teraz interfejsem programatora, ale przecież możesz wgrać bootloader Arduino i potem programować procesor już tylko przez UART - a nawet zdalnie przez BT. Złącze JP1 zrób takie jaki kabelek przewidujesz. Zwykle programatory mają chyba jednak 10-pin.

5. Jakie zasilanie zaplanowałeś? LM317 plus dioda szeregowo (dlaczego wstawiłeś ją od strony masy??) będą potrzebowały w sumie z 2.5-3V spadku by dobrze działać i dawać pewne 5V. Ile będzie na wejściu?

6. Tantal na akumulatorze to bardzo zły pomysł - zmień na zwykły, okrągły elektrolit.

7. Zwykłego VCC dla procesora nie musisz filtrować przez dławik.

8. Nie podpinaj AREF bezpośrednio do VCC. Daj tam kondensator a żądane napięcie odniesienia dla ADC wybierzesz sobie programowo.

9. Pamiętaj o kondensatorach obowiązkowo montowanych na silnikach.

10. Filtr zasilania odbiornika IR jest bez sensu - do zmiany.

11. Brakuje mi pomiaru napięcia zasilania. Skąd będziesz wiedział, że właśnie nie niszczysz akumulatora rozładowując go poniżej granicy uszkodzenia? Co chwila będziesz ganiał robota z multimetrem?

No i czekamy na poprawiony schemat 🙂

Link do komentarza
Share on other sites

Właśnie ostatnio zacząłem się uczyć programować STM32F030 (żeby przeprogramować motor shield do D1 Mini, bo oryginalny firmware ma bugi) i muszę powiedzieć, że jest to drogą przez mękę. Dwa dni zajęło mi ustawienie środowiska tak, żeby móc cokolwiek skompilować i wgrać -- praktycznie zerowa dokumentacja na ten temat. Teraz próbuję napisać miganie diodą, ale jest ciężko -- liczba rejestrów, które trzeba poustawiać żeby cokolwiek działało jest straszna i ciężko dojść co się robi źle.

A w przypadku takich 8-bitowych AVR to jest bajecznie proste. Właśnie ostatnio przepisałem dwa swoje projekty z Arduino na czyste C (bo jest konkurs z ograniczeniem wielkości firmware-u do 1kB) i pomimo, że w jednym projekcie miałem do poustawiania timery, a w drugim jeszcze oprócz tego ADC, to wyczytanie wszystkiego z noty katalogowej i poustawianie zajęło jakieś pół godziny.

Tak więc sądzę, że ośmiobitowce mają gigantyczną przewagę dla początkujących -- nie stajesz pod pionową ścianą, tylko szybko i łatwo masz jakieś efekty.

Link do komentarza
Share on other sites

Wow niezly bałagan się zrobił 🙂

Dlaczego wybrałem Atmege a nie Stm? Ze względu na to że znajomy powiedział żę to będzie mi z tym łatwiej zacząć a ostatnio też wypożyczyłem książkę Pana Francuza do AVRów 🙂

Jedyne co przemawiało ze STM to więcej kanałów ADC, ale pomyslałem że 8 czujników na poczatek wystarczy, a nie chciałem korzystać z komparatorów.

odniosę się do postu Marka

ad 1. Pomyślałem, że wyswietlanie stanu każdego czujnika znacznie pomoże w debugowaniu złego działania robota i myślę, że przy tym zostanę.

ad 2. Dziękuję za takie uwagi, rozważe na pewno 🙂

ad 3. specjalnie przepiąłem mostek wyżej aby je zostawić wolne i ktoś mógł powiedzieć dlaczego są tanie ważne

ad 4. ok

ad 5. myślałem o 7,4V dwu celowych akumulatorach. Dioda jako bezpiecznik więc moge z niej zrezygnować. Bez niej wystarczy napiecia?

ad 6. dobrze, jeśli chce wykonać płytkę w SMD to takie okrągłe musze lutować tht i wtedy plytka będzie dwustronna?

ad 7. ok, a AVCC musze prawda?

ad 8. Czyli AREF do uziemienia z kondensatorem szeregowo tak? Atmege polaczalem wg schematu z botlandu.

ad 9. oczywistość! 😉

ad 10. 1047-3177.jpg robilem wg dokumentacji, czy cos jest nie tak?

ad 11. Planowałem co 2-3 przejazdy mierzyć napięcie i wtedy decydować czy ladować czy nie powód prozaiczny - chce wszystkie kanaly adc wykorzystac na czujniki

Dzięki wszytskim za uwagi. Jak ktoś rozwieje reszte moich watpliwości zabieram sie za poprawe schematu i plytke.

Pozdrawiam.

Link do komentarza
Share on other sites

1. Dobrze pomyślałeś, dużo diodek to komfort, ale tu coś tracisz, tu coś zyskujesz. Przy ograniczonej liczbie pinów procesora musisz sobie radzić, a szkoda cennych portów na zwykłe diodki. Zostaw sobie jedną czy dwie bezpośrednio sterowane z procka a 8 "czujnikowych" podłącz przez rejestr przesuwający na SPI. Kosztuje 1zł więc to żaden koszt. Potrzebujesz wtedy tylko 1 linię do zatrzaskiwania nowego stanu diodek, bo MOSI i SCK i tak idą do złącza programatora. Mogą też sterować rejestrem i - uprzedzając pytanie - nie, nie pogryzą się:

http://www.tme.eu/pl/details/sn74hc594d/rejestry-przesuwne/texas-instruments/

2. Po dołączeniu rejestru diodek szyna I2C zostaje wolna i jeszcze coś w zapasie 🙂

3. Właśnie napisałem dlaczego są ważne.To tylko jeden z przykładów.

5. Najlepiej byłoby gdybyś sam to zdecydował. Ludzie w internecie mogą pisać dowolne głupoty, nie wolno wierzyć na słowo. Weź kartę katalogową LM317 i zobacz ile potrzebuje spadku (tzw. dropout) między Uwe a Uwy dla danego prądu (oszacuj go). Jeżeli np. przy 100mA musi mieć na wejściu o 1.5V (zmyślam na poczekaniu) więcej niż daje na wyjściu, to 2 akumulatory LiPol (które możesz rozładowywać do 2x3V) będą za niskie i pod koniec zabawy 5V zacznie zdychać a procesor resetować się.

6. Nie, istnieją też okrągłe elektrolity w obudowach SMD.

7,8. AVCC to zasilanie części analogowej procesora. W zależności od tego jak bardzo masz zaśmiecone VCC, jego AVCC powinieneś filtrować lub nie. Bezpieczniej jest zachować filtr. VREF jest jednak dużo ważniejsze - bo z tym napięciem przetwornik porównuje wszystko co mierzy. W procesorze jest rejestr wyboru miejsca pochodzenia i wartości napięcia VREF, ale Ty dając czujniki zapięte do 5V nie masz wyboru i musisz skorzystać z VREF=5V a taką opcję też możesz ustawić. Tak więc kondensator podłączony drugim końcem wprost do masy procesora (to nie jest uziemienie) wystarczy. Schemat z Botlandu też zadziała, ale nie jest polecany, bo niechcący możesz wybrać programowo wewnętrzne źródło VREF i wtedy przywrzesz je do VCC.

10. No to zabaw się w "poszukaj różnic".

11. I świadomie wybrałeś takie głupie bieganie i mierzenie w zamian za dokładnie 8 czujników? Naprawdę?? W aplikacjach z akumulatorami oczywistą oczywistością jest pomiar napięcia przez procesor więc:

- albo rezygnujesz z jednego KTIRa,
- albo wstawiasz komparator oddający sygnał cyfrowy LOW_BATT,
- albo dajesz multiplekser analogowy (nie gryzie) i oszczędzasz 4 lub więcej pinów ADC. Przetwornik w ATmega i tak nie ma funkcji automatycznego skanowania kanałów więc po każdym pomiarze i tak będziesz musiał programowo wybierać kolejny (co de facto jest przełączeniem numeru kanału wewnętrznego multipleksera). Co za problem przełączyć przy tym jeden czy dwa piny sterujące multiplekserem zewnętrznym? Układ typu np. 74HC4051 to także koszt 1PLN i tak, jest dostępny w obudowie SO16 a nawet TSSOP16:

http://www.tme.eu/pl/details/74hc4051d.652/dekodery-multipleksery-przelaczniki/nxp/

Link do komentarza
Share on other sites

Generalnie błąd jest w podpięciu AREF i Filtru dla odbiornika podczerwieni (rezystor10kOhm+ jest opisany jako opcjonalny?)

Tantale przy stabilizatorze sa uzyte w datasheecie

Chyba większym błędem jest podpięcie PWM z mostków pod losowe piny, nie wiedziałem że do tego służy OC1A i OC1B (chyba ze mozna do dowolnego?) i na wytknięciu takich błędów mi zależało.

Nie za bardzo wiem jak podpiąc rejestr przesuwny i nie moge znalezc biblioteki eagle do tego co mi podeslales.

Komparator jest dobrym rozwiązaniem ze względu na łatwe ustawianie odniesienia, rozważe to.

Pozdrawiam.

[ Dodano: 29-11-2016, 23:46 ]

Dobra wrzucam poprawione. Prosiłbym o sprawdzenie czy dobrze jest:

-mostek

-rejestr przesuwny

-czy nie pomieszałem nic w komparatorach

-czy zostawiłem dobre linie wyprowadzone

-czy dam rade tak zmierzyc napiecie baterii

schottiego jak będzie za duzo zabieral to po prostu wyrzuce i zmostkuje a stabilizator wezme low drop out. Odbiornik podpiałem pod przerwanie (tak sądze) i dodałem ten rezystor.

Zostały mi dwa piny. Dodać po jednym ledzie i switchu? (mam po jednym z uC)

Mam nadzieję że juz wszystko gra, bo chciałbym wziąć się za projektowanie płytki. Jaką firme od płytek mi polecicie? Satland robi w dobrej cenie ale 2 tygodnie trzeba czekac a widziałem na fabryka pcb ze max czas to 4 dni tylko nie wiem jak z cena u nich?

Pozdrawiam.

Link do komentarza
Share on other sites

Moim zdaniem postąpiłeś głupio. Miałeś fajnie rozwiązany system czujników analogowych, wystarczyło tylko dodać jeden kanał pomiaru napięcia. Wstawiłeś masę bezsensownych komparatorów z których każdy wymaga dwóch oporników (histereza) i żaden z nich nie działa w zakresie napięć wejściowych 0-5V a tyle dostarczają twoje czujniki. Za chwilę zobaczymy niezłą rzeźbę gdy zabierzesz się za poprawianie tego wszystkiego.

Karta katalogowa stabilizatora "nie wie" co jest źródłem mocy na wejściu. Może sobie pokazać kondensator tantalowy, ale Ty nie możesz bezmyślnie kopiować takich rzeczy. Nie piszę tego bo mam takie widzimisie tylko by Cię ustrzec przed wybuchem lub zwarciem akumulatora. Na wejściu musi być zwykły elektrolit, bo podłączanie akumulatora zabija tantale i to nie jest żadna magia.

Dlaczego uparcie dajesz diodę zabezpieczającą w gałęzi masy? Wyobraź sobie: zapinasz się multimetrem na masę układu i mierzysz różne napięcia: na procesorze, na czujnikach, na wszystkim.. tylko nie na plusie akumulatora. Dlaczego? Bo ten "nie stoi" na masie tylko na diodzie i pomiar jest błędny. Bez sensu. Daj diodę w kabel plusowy. Jeśli naprewdę nie masz dobrego powodu, nie wstawiaj niczego w masę, bo przestaje być ona potencjałem odniesienia.

R15 potrzebuje równolegle kondensatora do masy.

Niczego nie poprawiłeś w obwodzie filtrowania zasilania odbiornika IR. Naprawdę nie widzisz błędu? Jest podstawowa różnica między tym co sam narysowałeś a co pokazałeś jako wzorzec z datasheet. Opornik R13 rzeczywiście jest opcjonalny, bo procesor ma podciąganie w sobie, ale oczywiście może zostać.

Złącza JP3 i JP5 wyposaż w pin GND i ew. pin VCC. Jeśli cokolwiek będziesz kiedyś do nich podłączał, nie będziesz musiał szukać kabelkami masy a to nowe coś i tak będzie potrzebowało zasilania - będą na tym samym złączu. Generalnie nigdy nie rób złącz sygnałowych bez masy.

Link do komentarza
Share on other sites

Nie wiem czy przetwornik ADC atmegi moze jednoczesnie porownywac 7 kanalow do jednego napiecia i 1 kanal do drugiego.

Zastanawiałem sie od poczatku nad komparatorami bo dzieki nim nie musze przy zmianie progu wykrywania dla czujnikow wgrywac nowego programu. Zastanawiało mnie tylko czemu w data sheecie sa takie duze napiecia zasilania potrzebne, ale pomyslalem ze potrzebująć tylko5V wystarczy mi tyle na zasilanie, w takim razie wróce do poprzedniej wersji i uzyje 7 czujników, choć zastanawia mnie czy jest sens używać nieparzystej liczby czujników skoro środkowy nie wnosi nic do sterowania. (gdy mysle o sterowaniu to jedyna sytuacja kiedy moze sie przydać to skryzzowania trasy gdzie bedzie miał nadrzędną fukncje czujnik srodkowy widzi linie = bezwzgledu na wszytsko jedz prosto)

diodę przepnę

kondensator dodam

rezostor przed kondensatorem? jakiej pojemności?

GND wystarczy?

czy obsluga rejestru przesuwnego jest skomplikowana? szczerze mówiąc jesli tak to wole zaoszczedzic czas i nerwy niż domniemywać ze kiedys będe mierzyl wilgotność powietrza.

poprawione

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.