Skocz do zawartości

Pierwszy Linefollower - sprawdzenie schematu


bialasek33

Pomocna odpowiedź

Cześć,
projektuję schemat pierwszego robota (linefollower) i chciałbym zasięgnąć waszej rady.

Schemat:

Opis:

- Zasilanie z dwóch akumulatorków Li-Ion 3.7 V z telefonów. Pojemności różne: 890 mAh i 1020 mAh. Połączenie szeregowe. Ładowane oddzielnie.

- Stabilizator LM1117 5V 800 mA. Nie powinien dostać więcej niż 300 mA.

- Mikrokontroler ATmega88 w obudowie DIP28. Kwarc 20 MHz.

- Mostek H. Na schemacie jest L293D, pod uwagę biorę jeszcze L298N, jednak musiałbym uzupełnić go ośmioma diodami, a miejsca na płytce nie mam dużo. Silniki, których chcę użyć link tme.eu pobierają maksymalnie 800 mA, średnio 400-500 mA. Mostek może przyjąć 600 mA na kanał, szczytowo 1.2 A i rozproszyć do 5 W. Pytanie jest takie: próbować chłodzić L293D przez rozlaną masę czy zamienić na L298N i spać spokojnie?

- Odbiornik IR - TSOP4836. Do komunikacji przez pilot. Funkcja start/stop.

- RS232 - komunikacja z komputerem po kablu.

- Czujniki linii - 7 x CNY70. Pięć środkowych (na listwie) podłączone do pinów ADC mikrokontrolera z podciągniętym wewnętrznym rezystorem. Dwa najdalej wysunięte na boki - przez komparator LM393 do pinów cyfrowych, mają wywoływać przerwanie.

- Enkodery, także oparte o CNY70. Podłączenie jak wyżej, przez komparator na piny przerwania.

Macie może jakieś uwagi? Co zrobilibyście inaczej?

Proszę o sugestie i z góry dzięki za zainteresowanie.

Link do komentarza
Share on other sites

Całkiem porządny schemat, choć nie wychodzi w niczym poza standard takich konstrukcji. No może konwerter TTL/RS232 montowany na płytce jest rzadko spotykanym rozwiązaniem, bo z powodu zaniku "prawdziwych" portów COM w komputerach, większość ludzi używa przejściówek USB/UART z wyjściami TTL wpinanymi wprost do układu. Kilka uwag na gorąco:

1. Przy stosowaniu akumulatorów a w szczególności Litowo-cośtam bardzo ważna - wręcz krytyczna - jest kontrola stanu ich naładowania. Ta technologia jest bardzo czuła na rozładowanie poniżej pewnego progu więc pomiar napięcia to minimum. Jednakże w tym przypadku.. patrz pkt.2.

2. Z różnymi pojemnościami i generalnie typami ogniw łączonych szeregowo trzeba bardzo uważać. Najsłabszy zawsze rozładuje się pierwszy a ponieważ pozostałe jeszcze mają zapas ładunku, sumaryczne napięcie widziane na szczycie stosu ogniw nie daje prawidłowego obrazu całości. W Twoich planach są dwa różne ogniwa i na Twoim miejscu po prostu wydałbym kasę na normalny pakiet 2S - to najlepsze wyjście. Jeżeli jednak chcesz zrobić to budżetowo i skorzystać z ogniw z telefonów, to: a) jeżeli są używane to z pewnością nie mają już tych pojemności jakie napisano na opakowaniu, b) ich wydajności prądowe mogą nie wystarczyć do stałego obciążenia 1A dwoma silnikami i paroma drobiazgami, c) mogą mieć wbudowane układy ograniczenia prądu/napięcia co z jednej strony zapobiega nadmiernemu wyładowaniu, ale z drugiej może być powodem spadków napięć pod dużym obciążeniem. Na twoim miejscu szczególnie zaopiekowałbym się tym słabszym, tzn. postawił je szeregowo tak, by słabsze stało minusem na masie a to silniejsze na nim. Wtedy pomiar napięcia może dotyczyć tylko tego dolnego ogniwa a będzie odniesiony do masy co ułatwia pomiar. Masz jak się zdaje jeszcze jedno wejście ADC.

3. Typy myk z diodami IRED z CNY70: połącz je po dwie lub trzy szeregowo i przelicz oporniki dla takich łańcuchów. Zaoszczędzisz sporo mocy wytracanej teraz na każdym oporniku osobno.

4. Złącze DB9 jest duże. Jeżeli chcesz oszczędzić na powierzchni, możesz użyć jakichś trzech szpilek (masa + TXD + RXD) i zrobić prostą przejściówkę z nich na typowe DB9 do kabla RS232.

5. To samo z konwerterem. Układ 232 potrzebuje kondensatorów 1uF, ale są wersje (np. 202) obywające się pojemnościami 100nF - wielokrotnie mniejszymi (szczególnie w SMD) niż elektrolity 1uF.

6. Odbiornik IR podpiąłbym do wejścia przerwania. Nie wiem jak planujesz pisać oprogramowanie (BASCOM czy C czy jeszcze jakoś inaczej), ale sprzętowe przerwanie i liczenie czasu w timerach bardzo ułatwia dekodowanie kodów IR i znacznie zmniejsza obciążenie procesora.

7. To samo z enkoderami. Programowe zliczanie impulsów o częstotliwościach rzędu setek Hz i więcej to już poważne obciążenie. Widzę kwarc 20MHz, ale wszystko jedno. Akurat mega88 to mały procesorek i nie ma odpowiednich zasobów sprzętowych (tylko jedno wejście Input Capture i to niestety do timera 1 który będzie napędzał silniki) - przemyśl sobie jak chciałbyś to zrobić w programie. Może chociaż przerwania? Inaczej będziesz zamulał system ciągłym sprawdzaniem stanu dwóch prostych wejść.

8. Mimo wszystko dałbym oporniki podciągające na wyjściach czujników tj w kolektorach tranzystorów. Możesz wtedy przynajmniej jakoś wpływać na ich (czujników) czułość. Teraz jesteś skazany na wartości - dość słabo określone - oporników na wejściach portów a to jest słabo przewidywalne.

9. Dlaczego pewne czujniki mają wywoływać przerwanie? Przecież w programie i tak czytasz stan wszystkich naraz i od razu wiesz które na co patrzą? Masz tu inne sygnały (enkodery) które o wiele bardziej potrzebują szybkiej reakcji niż czujniki trasy.

10. Nie bardzo rozumiem po co wstawiłeś R12 i R14. Przecież te komparatory pracują bardzo dobrze od napięć 0V na wejściu. To zbyt duże napięcie im przeszkadza tak więc jeżeli już ograniczać napięcie z potencjometru to raczej od góry.

11. No i te mostki... Tak, wiem są tanie, ale nawet cena kilku zł nie usprawiedliwia stosowania tych elementów przy słabiutkim zasilaniu z dwóch akumulatorków od telefonu i straty 3V z definicji. Poza tym, pomijając że prawdopodobnie nie wyciągniesz z tych akumulatorów takich prądów, 5W ciepła to straszliwie dużo. Nie patrz na pierwsze linijki danych katalogowych tylko na rzeczywiste osiągi opisane dalej. Ten scalak musi mieć nieskończenie dobry radiator (0°C/W) by wytrzymywać 5W w temperaturze pokojowej a dobry miedziany kawał blachy wystarcza już tylko do rozpraszania niecałych 3W. Naprawdę spory obszar miedzi na PCB to już ograniczenie do 1-2W. Naprawdę chcesz tyle energii z tych bateryjek pompować w powietrze?

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

Miałem nadzieję, że coś napiszesz 🙂

Konstrukcja z założenia miała być standardowa, abym mógł opierać się na gotowych, sprawdzonych rozwiązaniach.

Całkowicie zapomniałem rozwinąć tematu zasilania. Nie znalazłem żadnych gniazd na akumulatorki z telefonów, więc będę musiał ulepić samoróbkę. Materiałem, z którego zrobiłbym koszyczek byłby laminat pcb, ze względu na to, że mógłbym go sobie (mam nadzieję) wygodnie polutować w całość, przylutować złącza i na obudowie wyprowadzić kolejne komparatory i po jednej diodzie sygnalizującej napięcie ~3.1 V na ogniwie. To chyba rozwiązuje problem.

3) Myk z rezystorami wykorzystam na pewno. Na początku dałem jeden rezystor na wszystkie czujniki, później zmieniłem na jeden rezystor dla każdej diody czujnika i jakoś tak zostało.

4) Złącze DB9 ma swoje miejsce i raczej nic bym zamiast niego ciekawego nie upchnął. Gdyby coś się jednak dało fajnie poprzestawiać, chętnie skorzystam z trzech goldpinów. Będę o tym pamiętał przy projektowaniu płytki. Załączam szkic ze SketchUpa.

Skoro już jest poglądowy rysunek i nie muszę tłumaczyć położenia enkoderów. Mają one (CNY70) rację bytu w tym miejscu? Na wewnętrzną stronę koła dałbym czarno-białą tarczę. Czujnik nie wystaje poza krawędź koła.

5) MAX202. Faktycznie wystarczają 100 nF. Dobrze wiedzieć, że coś takiego istnieje. Również wezmę pod uwagę przy projektowaniu płytki.

6)

Odbiornik IR jest podpięty pod PCINT20, jeżeli dobrze rozumiem, bo póki co miałem w ręku tylko uC ATmega8, PCINT jest to przerwanie zewnętrzne. Jeżeli źle rozumuję to mogę mieć problem. Program będzie w C.

8) Oporniki podciągające, rozumiem. W tej kwestii miałem niejasność.

9) Fakt. Chociaż jeżeli nie będzie to miało wpływu na konstrukcję to w fazie testów i tak pokuszę się o te przerwania. Liczę na szybkie wychwytywanie ostrych zakrętów, aczkolwiek 20 MHz powinno w miarę sprawnie przeczesywać wszystkie piny. Sprawdzę z ciekawości.

10) Teraz to przemyślałem na spokojnie. Miałem w głowie widmo zwarcia Vcc z GND, ale już wszystko jasne. Poprawię na pewno.

11) Czyli L298N. Akumulatorki będę rozładowywał, kiedy wymyślę jak je pewnie podłączyć do obciążenia. Wtedy dopiero poznam rzeczywiste parametry. Walczę z czymś takim

Dzięki za odpowiedź.

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

Ech, to Forum jest pełne łebskich ludzi. Na razie dostałeś tylko kilka moich powierzchownych zdań. Poczekaj na resztę. A przy okazji:

Wiem, że budowanie rzeczy standardowych jest bezpieczne, ale czyż nie trochę.. no, nudne? Jeśli już podejmujesz trud zbudowania nowego urządzenia to może warto puścić wodze fantazji i odważyć się na coś leżącego tuż poza granicą własnej (obecnej) wiedzy? Spróbuj sobie wyobrazić tego robota już gotowego. Masz wizualizację, więc będzie łatwiej 🙂 Stoi na stole i próbujesz pisać do niego program. No tak, najpierw osobno silniki, PWM, potem pewnie jakiś regulator PID bo przecież masz sygnał błędu z enkoderów, wczytywanie stanu czujników, obróbka, filtrowanie błędnych odczytów, inteligencja śledzenia trasy plus wypracowanie prędkości obu silników. W międzyczasie odbiór komend IR, jakaś otoczka związana z pomiarami napięcia baterii, sygnalizacją (jakieś LEDy?) i.. koniec? Będziesz już wtedy wiedział jakie są problemy przy śledzeniu linii, jakie przy regulacji prędkości i jakie przy zarządzaniu dynamiką pojazdu. Co dalej? Może wcale nie trzeba budować nowego. Pomyśl nad przyszłą zmianą czujników. Może jednak osobna płytka na złączu? Wtedy bezboleśnie podmieniasz kilka CNY na np. 16 sztuk albo na 3. Dużo kabli? To może od razu interfejs szeregowy? Programowa zmiana jasności diodek oświetlających IR? To nadal proste. Programowa zmiana poziomu komparacji? Także. Telemetria on-line przez radio? Może warto wyciągnąć jakieś złącze sygnałów TTL z UARTa i zapodać tam jakieś zasilanie dla ew. modułu Bluetooth? Z przodu analogowy czujnik odległości dla toru LF z przeszkodami? Może nie jeden a trzy rozchylone na boki? Łatwiej wtedy ominąć cegłę. Dodatkowa płyteczka czujników bezwładnościowych powieszona na I2C? To dzisiaj taniocha, w końcu nauczysz się je obsługiwać a wtedy będzie jak znalazł przy wycofywaniu się po zgubieniu trasy albo do utrzymania kierunku gdy linia urwie się celowo na zawodach z przeszkodami. A do tego wszystkiego radocha z kolejno opanowywanych zagadnień - zupełnie za darmo 🙂

Na koniec trochę marudzenia (a jakże): układ L298 to praktycznie te same rozwiązania co w L293 (bipolarny stopień wyjściowy z dużymi spadkami napięcia) przeskalowane do troszkę większych prądów i zapakowane w większą obudowę. Moim zdaniem to zamiana siekierki na kijek. W aplikacjach, gdzie energii nie jest dużo a dysponowalne napięcie jest tylko o kilka V wyższe od spadku napięcia na samym mostku (w L298 dochodzi do 5V przy 2A a przy 1A gwarantują nie więcej jak 3.2V) nie można sobie pozwolić na stosowanie takich staroci. Naprawdę, wymyślono już znacznie lepsze rozwiązania - poszukaj choćby tu, na Forum. Zaraz Koledzy podrzucą jakieś sprawdzone nazwy albo zajrzyj do swojego ulubionego sklepu (na tę wyższą półkę). Stare mostki bipolarne nie bez powodu wytrzymują tak wysokie napięcia - np. 42V dla L298. Dopiero przy takich poziomach zasilania przestają boleć ich tragiczne parametry a sterowane moce znacznie przewyższają straty. Przy 7, czy nawet 12V spadek 3-5V na mostku to czysta rozrzutność. Przy 40V osiągasz sprawność jakieś 90% ale zjeżdżając do 7V masz już tylko ok. 50% i nic tu nie wskórasz- połowa cennej energii akumulatorów idzie w ciepło.

Link do komentarza
Share on other sites

skmskm, Dzięki za wskazówkę. Raczej nie wykorzystam gotowej ładowarki, bo to trochę nieekonomiczne, ale będę coś kombinował wzorując się na gotowcach. W ogóle nie miałem pojęcia, że coś takiego istnieje. :->

marek1707, To co dla niektórych z Was jest standardem, dla mnie jest czymś zupełnie nowym i ciekawym. Fajnie jest pomarzyć, ale nie chcę wybiegać aż tak daleko w przyszłość. Robot ma być podstawą do nauki robotyki. Pierwszy raz będę miał kontakt z czujnikami linii, RS232, komunikacją przez podczerwień czy nawet komparatorami w praktyce. Czekają mnie godziny ogarniania tego wszystkiego i zgrywania ze sobą. Tak to widzę. Mogę zaciąć się na regulatorze PID czy zbyt dużym spadku napięcia na ścieżce i robot w ogóle nie ruszy.

Na razie oczekuję od robota, aby kurczowo trzymał się linii, pokonywał zakręty, skrzyżowania, linie przerywane i inne udziwnienia. Chcę to zrobić solidnie i na tym się skupić. Jak uda się zrealizować założenia, to będę myślał dalej. Co prawda dużo się nie namyślę, bo już nakreśliłeś mi ciekawe drogi rozwoju. 🙂 Kolejny robot na pewno będzie oparty na smd, a to da mi większe możliwości.

Co do mostka, zapewne chcesz mnie nakierować na mosfety TB6612. Jeszcze nigdy nie trawiłem płytki i nie chcę porywać się od razu na smd. W ofercie Botlandu znalazłem układ SN754410NE. W Internecie nie ma za dużo informacji o nim, jest więc czemuś mało popularny. Nota podobna do noty L293D. Czy istnieje układ o którym nie wiem, a powinienem widzieć?

Link do komentarza
Share on other sites

Niee, 754410 to ta sama chała tyle, że przepołowiona (półmostek).

Wiesz, nie trzeba kupować browaru żeby napić się piwa. Jakoś tak się przyjęło, że każdy początkujący musi zaczynać od wytrawiania płytek. Dlaczego?

Po pierwsze możesz to zmontować a płytce uniwersalnej i to wcale nie jest gorsze niż druk. Płytka zawierająca tylko morze niepołączonych padów z otworami w rastrze 100mils kosztuje pewnie z 10zł/dm² a możesz na niej zrobić wszystko. Lutujesz wszystkie elementy, sygnały puszczasz cienkim drucikiem w izolacji a zasilania czy masę grubszą srebrzanką. Że nieestetyczne? To zrób tak, żeby było. Usiądź do programu CAD i umieszczaj elementy przewlekane w rastrze 100mils. Kombinuj z ułożeniem tak, aż będziesz zadowolony a potem zacznij rysować ścieżki masy tak by jak najlepiej rozprowadzić "poziom odniesienia" po płytce - tylko to musi być dobre. Reszty ścieżek nie musisz rysować, nitki brakujących połączeń wyświetlane przez CAD będą za chwilę prawdziwymi drucikami. Zrobiłem tak dziesiątki prototypów, które mogę poprawić w każdej chwili i które często działają lepiej niż PCB właśnie z powodu braku kompromisów co do położenia i obecności bardzo dobrej masy. Tak, rzeczywiście jest problem z elementami SMD (i np. DB9), ale to nie ten przypadek. Zastanów się, czy potrzebujesz mostka. Będziesz jeździł do tyłu? Nie? To może wystarczy jeden tranzystor na silnik? MOSFET w obudowie TO220 sterowany wprost z 5V procesora potrafi bez radiatora zasilić 20A silnik z o niebo lepszą sprawnością niż te żałosne scalaki Texasa. Dodasz obok drugi tranzystor i masz dynamiczne hamowanie w miejscu zamiast swobodnego wybiegu silnika do 0rpm. W nagrodę dostajesz napięcie na silniku praktycznie identyczne z zasilaniem - tak wielkich struktur krzemowych nikt nie wsadza w małe scalaki tanich mostków. Boisz się takiego przesterowania silnika? To nie sterujesz go do 100% PWM, a układ odpłaca się prawie 100% sprawnością.

Po drugie możesz płytkę zamówić. Przejrzyj cenniki, to dziś nie wychodzi drogo i naprawdę nie ma sensu babranie się w chlorki, drukowanie na laserowej, cudowne flamastry czy naświetlanie UV. Tutaj dostajesz z kolei dużo lepsze parametry wymiarowe (szerokość ścieżki/izolacji) - prawie nie do osiągnięcia w domu, soldermaskę no i metalizację otworów a więc koniec z lutowaniem elementów z dwóch stron czy drucikowanie przelotek.

A jeśli szukasz czegoś w DIP, to może rzuć okiem na to:

http://www.tme.eu/pl/details/l6202/drivery-silnikowe-i-pwm/st-microelectronics/#

Wyjście DMOS gwarantuje Rdson < 0.5Ω więc 1A prądu ciągłego łyka z 0.5V spadkiem i niewielkim polem miedzi (to jednak 0.5W) na PCB.

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

TB6612. Jeszcze nigdy nie trawiłem płytki i nie chcę porywać się od razu na smd.

No to może to będzie dobrym rozwiązaniem? http://botland.com.pl/sterowniki-silnikow-moduly/32-tb6612-dwukanalowy-sterownik-silnikow-modul-pololu.html

Nie musisz bawić się w lutowanie smd, a w przyszłości możesz wykorzystać ten moduł w innym robocie 😉

Link do komentarza
Share on other sites

marek1707, Podoba mi się koncepcja z mosfetami, choć nie bardzo ją rozumiem. Mam podać sygnał PWM przez rezystor na bramkę tranzystora, silnik między 7 V i dren, źródło do masy?

@edit

Wygląda na to, że tak. Dynamiczne hamowanie w ten sposób? Pytam, bo zawsze korzystałem ze scalonego mostka i jestem zielony. 😕

W sprawie płytki jeszcze się wstrzymam z decyzją. Mam niemiłe wspomnienia z płytką uniwersalną.

sosnus, Jeżeli mosfety nie wypalą to będę musiał zaprzyjaźnić się z tym modułem.

Link do komentarza
Share on other sites

Tak, to jest właśnie ten pomysł.

Z jednym tranzystorem układ jest banalnie prosty: silnik DC jako obciążenie klucza stojącego źródłem na masie i sterowanego przez opornik z wyjścia PWM. Do tego, równolegle do silnika dioda chroniąca tranzystor przed przepięciami z komutatora (to ważne) i już. Być może nawet coś tak prostego będzie wystarczające w pierwszej fazie eksperymentów bo straty w samym silniku i przekładni są na tyle duże, że po wyłączeniu zasilania koło robota będzie się zatrzymywało w ok. sekundę. Dla większej dynamiki można dołączyć drugi, górny tranzystor. Niestety sterowanie górnych kluczy jest już trudniejsze i zwykle spędza sen z powiek konstruktorom starającym się zrobić to prosto, tanio i dobrze (o ile to w ogóle możliwe). Tutaj zastanowiłbym się nad tym, co chcesz uzyskać dodając górny klucz.

Pierwszy przypadek nazwałbym "krótką smyczą" na której będzie pracował silnik. Najprościej zrozumieć jej działanie gdy założymy, że dolny tranzystor "dostarcza" energię do silnika a górny ją "wysysa". Sterując kluczami naprzemiennie zgodne z PWM możesz bardzo dokładnie regulować przepływ energii: zwiększając wypełnienie zwiększasz prąd średni/moment i tym samym prędkość obrotową a zmniejszając powodujesz jej natychmiastowy odpływ. Silnik w jednej fazie PWM jest rozpędzany przez podłączenie do zasilania a w drugiej hamowany dynamicznie przez zwarcie jego zacisków. Generujesz PWM i nie musisz się o nic więcej martwić, silnik w każdej chwili robi dokładnie to co mu każesz (z dokładnością do bezwładności walczącej z momentami mechanicznymi generowanymi przez prąd), ale taki układ wymaga sprawnego sterowania dwoma kluczami najlepiej z niezerowym czasem martwym, czyli rozsunięciem momentów załączania kluczy tak by stany przewodzenia nigdy na siebie nie zachodziły. To nie jest łatwe i to m.in. (zwykle) robią scalone mostki.

Drugi przypadek jest inny: zakładamy, że mamy tylko jeden (dolny) klucz pracujący w takt PWM a energia do silnika jest tylko dostarczana. "Zwykłe" hamowanie bazuje na oporach i bezwładności zespołu mechanicznego, bo zmniejszając PWM jedynie pozwalasz silnikowi na "wolny wybieg". Dynamiczne hamowanie jest wtedy osobnym stanem sterowania osiąganym poprzez wyłączenie PWM do 0% (to ważne) i załączenie (być może na regulowaną lub obliczaną na podstawie enkoderów chwilę) górnego klucza. To nie musi być tak dobry klucz jak ten "napędowy" więc może być słabszym tranzystorem, nie musi być NMOSem (jak na schemacie) ani nawet w ogóle MOSem. Jeżeli tranzystor stoi wysoko na zasilaniu to łatwiej się go steruje gdy jest to PMOS lub pnp. Tak więc oprócz wyjścia PWM będzie wtedy potrzebny jeszcze jeden pin w którym np. stan wysoki załączy górny tranzystor i zatrzyma silnik. Przydałoby się wyjście typu open-collector a skoro procesor ich nie ma, będziesz musiał użyć jeszcze jednego, małego tranzystora npn. Jest to prostsze układowo niż próba robienia czasów martwych i rozsuwanie załączeń dwóch kluczy PWM a moim zdaniem spełnia zadanie równie dobrze.

Wybieraj 🙂

EDIT: Nie jesteś taki zielony jak piszesz i w sumie to nie wiem, czy w ogóle pasujesz do działu "Zupełnie zielonych".

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

Druga opcja bardziej do mnie przemawia. 🙂

Trochę poszukałem, poczytałem i z tego szperania wynikł poniższy schemacik.

Zostały do dobrania mosfety i diody, ale myślę że dam sobie z nimi radę. Chciałbym dowiedzieć się, czy faktycznie wymagana jest taka ilość rezystorów i czy ich wartości są właściwe.

Z góry dzięki za pomoc.

Link do komentarza
Share on other sites

Hm, nie ma się do czego przyczepić. Chociaż... no, może diody 🙂

Użyłeś diod krzemowych tylko trochę szybszych od zwykłych 50Hz-owych 1N4004. W sumie prawie takie same diody masz za darmo w strukturach obu tranzystorów, więc te na zewnątrz niczego nie poprawią. Mają czas przełączania na poziomie 4us więc będą miały kłopoty z zauważaniem i wycinaniem przepięć od komutacji silnika. Albo je wytnij i polegaj na tych w tranzystorach - to tańsza opcja (ale przy tych niewielkich mocach i przewymiarowaniu tranzystorów w TO220 wcale niezła), albo wstaw coś klasy Ultrafast Recovery Rectifier lub - lepiej - jakieś diody Schottky'ego.

Reszta OK. Pamiętaj tylko, że w tym układzie bramkę górnego klucza sterujesz pełnym napięciem UB więc nie może ono być zbyt duże, co najwyżej kilkanaście V - gdybyś kiedyś chciał podnosić zasilanie. No i zaraz na początku pisania kodu zrób poprawną funkcję sterującą wyjściem HAMOWANIE tak, by nigdy nie odpaliła stanu wysokiego gdy PWM pracuje (i wzajemnie). Acha, i blokowanie zasilania pojemnościami - elektrolity plus ceramiczne. Tu ich nie ma lecz nie wątpię, że w docelowym układzie się znajdą. 🙂 Możesz też wyposażyć bramkę PMOSa w rezystor szeregowy (100R-1k) który trochę złagodzi proces załączania tego klucza bo przecież zwykle będzie to się działo gdy silnik całkiem nieźle daje.

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

Wrzucam schemat po poprawkach.

Dobrałem diody - 1N5819.

Z kondensatorów dałem 100 uF i 100 nF, ale trochę niepewnie. Nie mogłem doszukać się jakie faktycznie powinny być. Kondensatory przy złączach SILNIK docelowo będą na nóżkach silnika.

Bramka górnego tranzystora wyposażona w rezystor 100R.

Zgodnie z notą dołączyłem rezystory podciągające 15K na wyjściach komparatorów. Diody w transoptorach CNY70 połączyłem szeregowo.

Dodatkowo zdecydowałem się jednak na płytkę uniwersalną. Zauważyłem ich dwa rodzaje, jeden - TME - materiał papier, drugi - TME - materiał FR2. Rozumiem, że pod masę ~300 gram kierować się ku temu drugiemu? Wygląda na solidniejszy.

Link do komentarza
Share on other sites

Tranzystory są OK, oba będą dobrze działać przy tym sterowaniu. Diody też.

Papierowe laminaty do niczego się nie nadają a szczególnie do eksperymentów i wielokrotnego lutowania. Pady się odklejają a sam materiał jest słaby. FR2 to trochę lepiej, ale proponuję jednak coś z FR4. To typowy, standardowy laminat. Płytki są niewiele droższe a komfort pracy nieporównywalny. Może takie coś?

http://www.tme.eu/pl/details/pp-um26/plytki-uniwersalne/#

lub pady kwadratowe (większe, więc lepiej trzymają):

http://www.tme.eu/pl/details/re317-lf/plytki-uniwersalne/roth-elektronik-gmbh/#

Ja kupuję takie płytki w Elpinie. Nie wiem, czy mają coś na swojej stronie, ale zawsze gdy zaglądam na Służew po odbiór moich projektów, leży tego na półce wiele rodzajów i wielkości. Pewnie wystarczy zadzwonić i dopytać o szczegóły.

Teraz o schemacie.

Wciąż brakuje nadzoru stanu akumulatora - aż się prosi o pomiar napięcia tym bardziej, że masz wolne wejście ADC.

W sumie dopiero teraz do mnie dotarło, że Twoje enkodery są jednokanałowe, tzn. jedna oś obsługiwana jest przez jeden transoptor. To znaczy, że nie masz szans odróżnić zakłóceń generowanych przez zatrzymany na zboczu enkoder od prawdziwych impulsów. W rozwiązaniach kwadraturowych (dwa sygnały przesunięte w fazie o 90°) nie jesteś czuły na wystąpienie jednego zbocza tylko na dwa kolejne z dwóch różnych kanałów. To - oprócz tego, że zapewnia detekcję kierunku (co tu nie jest potrzebne) - bardzo poprawia odporność właśnie na sytuacje w których silnik zatrzymał się tak niefortunnie, że układ jest na granicy detekcji stanu 0 i 1. Wtedy najlżejsze drgania konstrukcji powodują wysyłanie do procesora ciągów zer i jedynek zupełnie bez związku z pracą silnika. Dlatego aby choć trochę poprawić pracę w tej sytuacji proponuję histerezę przynajmniej na dwóch komparatorach obsługujących enkodery, bo tylko tam istotnym zdarzeniem będzie zbocze a nie poziom sygnału. W czujnikach - trudno, i tak procesor odczytuje stan kilku wejść równolegle. Niezdecydowanie układu na granicy taśmy i podłoża można potraktować zarówno na 1 jak i na 0. I tak dalsza obróbka cyfrowa musi to zrozumieć i wypracować komendę dla silników. Tak więc hasło: histereza. Układ odczytu fototranzystora musi mieć dodatnie sprzężenie zwrotne i dwa stany stabilne. To znaczy dwa oporniki więcej i dużo zadowolenia z dobrze wykonanej pracy.

Przyznam, że dałbym jeszcze jakieś diodki LED. Ja wiem, UART, kabelek itd, ale nie ma to jak zobaczyć kiedy dokładnie dzieją się rzeczy w programie. Filmując z góry swój pojazd z jednoczesnym zapalaniem diodek będziesz mógł w czasie rzeczywistym sprawdzać jak program radzi sobie ze sterowaniem, w jakim jest stanie pokonując zakręty lub czy wartości ważnych zmiennych są w odpowiednich zakresach. Dwa wolne piny procesora to niewiele a i tak warto mieć coś na zapas. Proponuję rejestr przesuwający, nawet najprostszy np. 74HC164 podłączony do SPI (SCK i MOSI) i sterujący 8 (to oczywiście max) diodkami LED. No tak, trzeba przełożyć jedno HAMOWANIE na inny pin.

Blokowanie zasilania: 100uF + 100nF może być, jeśli każdy driver silnika (a będą pewnie w pewnej odległości od siebie) dostanie swój komplet.

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

Myślałem, że to ze mną jest coś nie tak, a to te papierowe płytki. Niedawno jedna dała mi nieźle w kość. Z kolei FR4 wychodzi dość drogo jak na przewidziany budżet, raczej jednak wezmę coś z FR2.

O pomiar napięcia się nie martwiłem, bardziej o gniazdo na te Li-Ion'y z komórek. Komparator, kilka rezystorów, potencjometr, dwie diody sygnalizacyjne i to wszystko. Myślę, że jeden port ADC to za mało na dwa akumulatorki.

Enkodery, zabieram się za poszukiwanie. Jeżeli miały dojść kolejne komparatory, to lepiej, bym dał więcej komparatorów w jednym układzie.

Co do diod, to chodziły mi po głowie. Dam mniejsze silniczki i będę próbował jakoś to wszystko upchnąć. Istnieje jakieś optymalne miejsce dla LEDów? Może równolegle do czujników linii, żeby jasno było widać który czujnik coś łapie?

Zauważyłem, że w TME podskoczyły ceny silniczków, kół i scalaków, które miałem na oku i zrównały się z tymi chociażby z ElectroParku. Muszę przyznać, że poprzestawiało mi to szyki. Jest teraz promocja na takie silniczki. -> Electropark

Mają mieć takie same wymiary jak oryginalne Pololu, dałoby mi to więc możliwość potencjalnej wymiany na silniczki o lepszych parametrach. Z plastikami Pololu nie byłoby takiej możliwości.

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!

Gość
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.