Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Mikrokontroler AVR w hamowni silników rakietowych

Awatar użytkownika
Tomasz Gumny
-
-
Posty:685
Rejestracja:4 lut 2004, o 23:31
Lokalizacja:Trzcianka/Poznań

Postautor: Tomasz Gumny » 30 sie 2008, o 00:58

[...]Na jakiej zasadzie urządzenie to sczytywało by dane (impulsy elektryczne) płynące z mostka tensometrycznego?
Na wyjściach mostka masz prawdopodobnie niewielkie napięcie proporcjonalne do nacisku.
Wy1 i Wy2 są wyjściami mostka tensometrycznego (całościowego, złożonego sumarycznie z czterech elementów pomiarowych
Podłącz do mostka jakieś zasilanie (np. 5V) a do wyjść mostka miernik. Sprawdź jak sie zmienia napięcie pod wpływem obciążenia, bez wzmacniacza będą to zapewne mV...
W mikrokontrolerze musisz obsłużyć przetwornik ADC, żeby odczytać napięcie z mostka i port szeregowy USART, żeby wysłać wyniki pomiarów do komputera.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 30 sie 2008, o 16:59

zakres pomiarowy do 180kg z rozdzielczością 60g przy częstotliwości 250 próbek na sekundę
W mikrokontrolerze musisz obsłużyć przetwornik ADC, żeby odczytać napięcie z mostka i port szeregowy USART, żeby wysłać wyniki pomiarów do komputera.
Tyle jeszcze, że:
180 kg = 180000 g => 180000 / 60 = 3000 -> 3000 tys unikalnych wartości, najbliższą większą potęgą dwójki jest 4096, a to oznacza przetwornik 12 bitowy (pomijając już że 12 bitowy opisany przetwornik nie ma 12 bit rozdzielczości rzeczywistej), więc albo mniej dokładne rozwiązanie z interpolacją, albo przetwornik nie z AVR'a (te maja przetworniki 10 bit). A już tak zupełnie przy okazji, to rozdzielczość przy 180 kg i 12 bit przetworniku wyniosła by ≈44g.

Awatar użytkownika
Tomasz Gumny
-
-
Posty:685
Rejestracja:4 lut 2004, o 23:31
Lokalizacja:Trzcianka/Poznań

Postautor: Tomasz Gumny » 30 sie 2008, o 17:21

180 kg
Teraz dopiero zauważyłem ten zakres... Mortan, kogo Ty chcesz wysłać w kosmos?

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 31 sie 2008, o 12:31

Podłącz do mostka jakieś zasilanie (np. 5V) a do wyjść mostka miernik. Sprawdź jak sie zmienia napięcie pod wpływem obciążenia, bez wzmacniacza będą to zapewne mV...
Z testów wychodzi na to, ze całość jest dość czuła i bardzo ładnie pracuje.
Tyle jeszcze, że:
180 kg = 180000 g => 180000 / 60 = 3000 3000 tys unikalnych wartości, najbliższą większą potęgą dwójki jest 4096, a to oznacza przetwornik 12 bitowy (pomijając już że 12 bitowy opisany przetwornik nie ma 12 bit rozdzielczości rzeczywistej), więc albo mniej dokładne rozwiązanie z interpolacją, albo przetwornik nie z AVR'a (te maja przetworniki 10 bit). A już tak zupełnie przy okazji, to rozdzielczość przy 180 kg i 12 bit przetworniku wyniosła by ≈44g.
Hmm... raczej musi to być przetwornik do AVR. Można obniżyć maksymalny zakres do 100kg.


Jak to by działało?
Z tego co mi się wydaje: przetwornikiem A/D odczytuje się napięcie wysyłane z mostka co 0,4s (mozna to zrealizowac timerem?). Następnie gdzie te wyniki będą zapisywane? Teraz tak mi zaświtało, że można by je zapisywać do karty pamięci, i wtedy już bez problemu wyniki można przenieść na kompa... Jest to do zrealizowania? Czy jednak nie jest to najprostsza metoda zapisu i odczytu?

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 31 sie 2008, o 16:54

Może być ten zakres i dokładność ale... z uśrenianiem. Czyli: wykonujesz np. 4 razy więcej pomiarów i liczysz z nich średnia... dopiero to uważasz za pojedynczy pomiar.
Tylko teraz znów czegoś nie rozumiem... albo odczyt co 0,4 sek, albo 250 probek /sek (czyli 0,004 sek, a z uśrednianiem powyższym to 0,001 s).

Pozatym znacznie łatwiej zrobić wysyłanie wyników przez UART niż zapis do karty pamięci, ale to już tak między nami.

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 6 wrz 2008, o 22:08

Może być ten zakres i dokładność ale... z uśrenianiem. Czyli: wykonujesz np. 4 razy więcej pomiarów i liczysz z nich średnia... dopiero to uważasz za pojedynczy pomiar.
Skoro tak jest najepiej, może być :)
Tylko teraz znów czegoś nie rozumiem... albo odczyt co 0,4 sek, albo 250 probek /sek (czyli 0,004 sek, a z uśrednianiem powyższym to 0,001 s).
Chodziło mi o 0,004s (250 próbek na sek)
Pozatym znacznie łatwiej zrobić wysyłanie wyników przez UART niż zapis do karty pamięci, ale to już tak między nami.
Łatwiej to nie zawsze znaczy lepiej, ale jak na pierwszy taki projekt może być jakkolwiek, byle by działało...

Interesuje mnie jakie części będą mi niezbędne do wykonania elektroniki hamowni, jak i co z czym połączyć.

Dzięki z góry za odpowiedź
Pozdro

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 15 wrz 2008, o 22:07

Dalej poszłem za tematem i doszedłem do wniosku, że zanim sam wykonałbym takie urządzenie minie jeszcze kupa czasu, jeszcze wiele godzin przed komputerem.

Dlatego, chciałbym zlecić płatne wykonie tego projektu od strony elektronicznej dla zainteresowanej osoby. Oferty mozna zgłaszać na pw bądź w tym wątku. Mam nadzieję, że starczy komuś czasu, którego mi ostatnio coraz bardziej brakuje i zgodzi się wykonać ten układ.

A to co się już nauczyłem o programowaniu napewno nie zginie, będę się starał w miarę wolnego czasu wiedzę poszerzać i mam nadzieję, że w przyszłości przysłuży się do wykonania innych ciekawych projektów. A zapotrzebowania na nie w modelarstwie rakietowym nie brakuje :)

Tak więc czekam na propozycje.

P.S.
najlepszym rozwiązaniem będzie zastosowanie karty pamięci w komunikacji między układem a komputerem. Było by to bardzo wygodne, ale inne rozwiązania również biorę jak najbardziej pod uwagę.


Pozdrawiam

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 11 paź 2008, o 17:31

Ciekaw jestem jak by wyglądał kod do tego.
Na razie mam takie program:
Kod:

Kod: Zaznacz cały

Config Timer0 = Timer , Prescale = 64 Enable Interrupts Enable Timer0 'ustawiam Timer0 On Timer0 Skok 'co 4ms skocz do etykiety skok Do Loop End Skok: I2cstart 'start I2cwbyte 145 'adres odbiorczy dla PCF8591 I2crbyte Licz , Nack 'odzczytuje jeden bajt do zmiennej licz I2cstop ' koniec

Jednak brakuje czegoś takiego jak: zrealizowanie zapisu zmiennej "licz" np co 2ms do kolejnych komórek pamięci oraz wyzerowania tej zmiennej.
Jak to zrealizować?

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 18 paź 2008, o 22:44

Zmiana koncepcji :608:
Problem mnie trochę przerósł, jak dla początkującego programisty-elektronika, wykonanie takiego urządzenia jest dość skomplikowaną sprawą, najtrudniejszy byłby chyba zapis próbek na kartę pamięci...
Postanowiłem więc znacznie uprościć projekt, stosując kupiony na Allegro za 100-150zł laptop. Praca mikroprocesora ograniczyła by się wtedy jedynie do wysyłania do komputera wyników pomiaru przez port rs232.

Co o tym myślicie? Jakich elementów elektronicznych będę potrzebował?
Wiem już, że muszę mieć:
- wzmacniacz lm358
- Przetwornik ADC 16 bit
- mikrokontroler - najlepiej AVR, ale pajączek wspominał, że one się nie nadają do większych przetworników;
- jakąś płytkę, żeby to wszystko połączyć;


No i własnie, jak się do tego zabrać? Jak będzie wyglądał program obsługujący mikrokontroler? Jakie minimalne wymagania sprzętowe musi mieć laptop?

Proszę o odpowiedź
Pozdrawiam

P.S.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 19 paź 2008, o 00:08

najlepiej AVR, ale pajączek wspominał, że one się nie nadają do większych przetworników;
Niezupełnie... wspominałem że nie maja wbudowanych "większych" przetworników, jedynie 10 bit. Inne uC miewają 24 bit, a 12/14/16 są dość powszechne.

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 19 paź 2008, o 09:42

No to super!
Ponawiam resztę pytań z poprzedniego postu:

1. Jakich elementów elektronicznych będę potrzebował?
2. Jak je wszystkie połączyć?
3. Jakie minimalne wymagania sprzętowe musi mieć laptop?

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 25 paź 2008, o 18:19

OK, już prawie wszystko znalazłem.

Przy okazji spotkałem się z opinią, że wcale niepotrzebny jest przetwornik A/C w układzie. Czy w związku z tym można bezpośrednio podawać napięcie z mostka tensometrycznego na nóżki mikroprocesora AVR?

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 25 paź 2008, o 20:30

Przetwornik w układzie... ale co przez To rozumiesz, w uC faktycznie nie jest konieczny, może być zewnętrzny (tylko po co, skoro może być w).

Czy można podłączyć bezpośrednio... można, tyle że pod względem pomiarowym nic z tego nie wyniknie (zakładając jeszcze że napięcie na mostku nie przekroczy dopuszczalnych dla uC).

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 26 paź 2008, o 10:25

Chodzi o to, czy można podłączyć bezpośrednio mostek do dwóch portów wejść mikroprocesora? Wartość napięcia 0-30mV
Ale napisałeś, że wartości nie da się odczytywać, więc bez sensu takie połączenie.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 26 paź 2008, o 12:44

Mortan. Wejścia uC (poza kilkoma specyficznymi o czym dalej) są cyfrowe, załóżmy dla uproszczenia że zasilanie 5V i zgodne z TTL. Wówczas jeśli podasz do wejścia napięcie niższe niż 0,8V względem masy uC, to zostanie rozpoznane jako logiczne 0, jeśli wyższe niż 2V - jako 1, coś pośredniego (między 0,8 a 2V) nieokreślone... może zostać rozpoznane jako 0 lub 1. I dlatego pod względem pomiarowym nic takie podłączenie nie wniesie. Oczywiście należy dopowiedzieć że podanie napięć niższych niż masa i wyższych niż zasilania, może uszkodzić układ.

Teraz o tych specyficznych wejściach, które są analogowe (ale mogą pełnić oczywiście też funkcję wejść cyfrowych). Są to wejścia do których w układzie uC podłączone są (wbudowane w) takie peryferia jak A/C, C/A, komparatory, WO (wzmacniacze operacyjne). Tyle że te peryferia muszą być wbudowane w układ, i dane wejście pełni tylko rolę taką na jaką pozwalają wbudowane peryferia.

I jeszcze uwaga... mówiąc o portach mamy na myśli raczej zestaw (zbiór) wejść, w przypadku AVR/'51 jest to 8 wejść/wyjść, w przypadku np. ARM będzie to już 32 We/Wy (chyba że port jest niepełny, bo takie sytuacje również się zdarzają i ARM'owy zwiera np. 24 We/Wy, czy AVR'owy tylko 5, ex. PG w ATMEGA128). Wówczas oznaczamy to P1.1 (Port 1 pin 1), albo PA.4 (Port A pin 4) - piny zwykle numerujemy od 0.

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 15 lis 2008, o 18:05

Projekt jest już (mam nadzieje) na ukończeniu. Całą koncepcję mam, program w bascomie również, części będą w poniedziałek.
Wykorzystuje:
- mikrokontroler AVR AT90S2313
- przetwornik A/D 16bit - ADS1110
- wzmacniacz LM358

Zastanawiam się jeszcze nad podłączeniem dodatkowej pamięci flash na wyniki pomiarów, lub zapis w eepromie, którego jednak mam trochę mało, bo tylko 128 bajtów. Alternatywą, którą zastosowałem w programie jest wysyłanie wyników w czasie rzeczywistym do komputera poprzez uart. Rozwiązanie to jest prostsze, ale musze przyznać troche jednak gorsze, dla moich zastosowań.

Pytania:
- Ile pamięci zajmuje jeden pomiar, zapisany np w eepromie?
Wydaje mi się, że jeden pomiar to jeden bajt, ale pewien nie jestem...
- Jaką dokupić pamięć dodatkową do procesora, gdybym jednak chciał się obyć bez targania laptopa na poligon?

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 15 lis 2008, o 23:14

Co do tego ile zajmuje jeden pomiar... to już tylko Ty wiesz (znając kod). Ale odpowiedz mi na pytanie, ile bitów ma jeden bajt... przetwornik masz 16 bitowy, czyli jakiej wielkości wynik Ci on zwraca?

Co do pamięci, jeśli nie będzie tam wielkiej ilości szybko zbieranych pomiarów, to wystarczy pamięć na I2C/spi.

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 16 lis 2008, o 00:38

Co do tego ile zajmuje jeden pomiar... to już tylko Ty wiesz (znając kod). Ale odpowiedz mi na pytanie, ile bitów ma jeden bajt... przetwornik masz 16 bitowy, czyli jakiej wielkości wynik Ci on zwraca?
Sorry, coś mnie przyćmiło.

Taki chyba powinien się nadać:
http://www.sklep.avt.pl/p/pl/484367/ukl ... lc256.html

Znalazłem też takie coś, ale nie wiem czy będzie dobre:
http://www.sklep.avt.pl/p/pl/71633/ukla ... 4c256.html

Mortan
-
-
Posty:44
Rejestracja:4 sie 2008, o 14:58
Lokalizacja:Kielce

Postautor: Mortan » 22 lis 2008, o 11:07

Dobra, aktualnie jestem przy próbie wzmocnienia sygnałów z tensometrów. Mam w domu kilka wzmacniaczy LM358. Czy one będą się nadawać? Jeżeli tak, to jak je powinienem podłączyć, która nóżka do którego wejścia?

Bardzo proszę o pomoc.

Wróć do „Elektronika - tematy dowolne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 52 gości