Skocz do zawartości

TomXV

Użytkownicy
  • Zawartość

    13
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O TomXV

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna
  1. Też poszukuję zestawu startowego do nauki fpga do ok. 600zł Mam kilka kandydatów który byłby najlepszy? AES-S6MB-LX9-G http://www.kamami.pl/index.php?ukey=product&productID=179965 Nexys2 500k http://www.kamami.pl/index.php?ukey=product&productID=178190 Nexys3 http://www.kamami.pl/index.php?ukey=product&productID=184334 Basys2-500 http://www.kamami.pl/index.php?ukey=product&productID=103137 Skłaniam się ku Nexys3, ponieważ posiada Spartan6 i ok 2 000 000 bramek. Czy ktoś używał ten zestaw?
  2. Witam, Potrzebuję uzyskać gotową płytkę, czy może ktoś polecić jakąś firmę która się tym zajmuje? W internecie jest dużo firm produkujących PCB, ale mało która montuje SMD. __________ Komentarz dodany przez: Treker Poprawiłem błąd w tytule.
  3. Tak, chciałem nawet zastosować sterownik podany przez Ciebie ale okazało się, źe jest za mały abym mógł wytrawić płytkę pod niego. Widziałem też sterowniki o większym rozmiarze ale ich ceny to ponad 15zł, co jest za dużo jak dla mnie, muszę ten projekt zrobić za jak najniższą cenę.
  4. W trakcie projektowania mojego interfacu dotykowego napotkałem kolejny problem. Mianowicie próbowałem dwóch metodo pomiaru pojemności: 1. http://tuomasnylund.fi/drupal6/content/capacitive-touch-sensing-avr-and-single-adc-pin Niestety wskazanie ADC przy dotknętym(ok 620) jest niewiem większa od niedotkniętego(600). Co wraz z dużym szumem nie pozwala jednoznacznie określić, wciśniętego klawisza. Stosowałem rezystor między płytką a avr o wartości 500Ohm, 10kOhm i 24kOhm i te same rezultaty. 2. http://mathmed.blox.pl/2011/01/Czujnik-dotykowy-touch-sensor-na-AVR.html Tutaj tak samo jak w punkcie 1. Stosuję rezystor 1MOhm między GND a płytką i 200Ohm między avr a płytką. Wskazanie to ok 18-21 nie dotknięty i 23-24 dotknięty. Czy robię coś źle?
  5. Witam, Istnieje możliwość zrobienia wewnętrznego pull-up dla pinów ADC6 i ADC7. Robię interface dotykowy na atmega'e dlatego potrzebuje najpierw naładować płytkę testową.
  6. Witam, Chciałem dodać trochę dźwięku do mojego robota więc rozebrałem stary kalkulator i mam membranę piezoelektryczną. Chciałbym uzyskać jak najgłośniejszy dźwięk bez żadnej szczególnej melodii. Gdy podaje sygnał PWM ok 5kHz, dźwięk jest cichy (słyszalny ale nie głośny). Jak bardzo polepszy się głośność jeżeli zastąpię PWM(stałe wypełnienie, stała częstotliwość), sinusem (generowanym PWM), jeżeli poprawa jest mała to niebęde zabierał czasu mikrokontrolerowi (piszę program na AVR Atmega). Membranę podłączam poprostu pod port mikrokontrolera i do masy. Czy zastosowanie kluczującego tranzystora da lepszy efekt. Korzystam z napięcia 5V. Wiem, że najlepszy próg słyszalności dla człowieka występuje 1kHz-3kHz, ale zwykły PWM daje niewielką głośność dla tego zakresu.
  7. Witam, Chciałby zaimplementować algorytm LQR czy istnieją jakieś gotowe biblioteki w języku C++ które są przeznaczone do sterowania (zawierają regulatory, sterowanie predykcyjne, estymatory itd)? Zna ktoś jakieś dobre książki, artykuły dotyczące implementacji sterowania predykcyjnego?
  8. Witam, Potrzebuje napisać transmisje UART, lecz nie wykorzystując portów RxD i TxD atmegi. Chciałbym to zrobić na dowolnym innym pinie poprostu zmienijąc jego stan (TxD) lub odczytując stan pin (RxD). Wszystkie znalezione przez mnie kody są robione na rejestrach UART'a, czy da się jakoś prostu zrobić to bez korzystania z nich? Chciałbym również nie korzystać z timerów tylko wyłącznie z opóźnień czasowych _delay_ms(); Bardzo proszę o pomoc.
  9. Witam, Dodając do mojego robota moduł radiowy, dzięki któremu mogę sterować nim bezprzewodowo, napotkałem narazie teoretyczny problem z bezpieczeństwem. Robot może poruszać się prosto, do tyłu i skręcić w prawo bądź lewo, te komendy wysyłam mu radiowo zgodnie z ramką: (adres urządzenie docelowego)(adres nadawcy)(komenda)(crc). Jak zabezpieczyć się przed tym, że ktoś obserwuje mojego robota i odbiera moją wiadomość? Jeżeli całą ramkę przepuszczę przez AES to "złoczyńca" widzi, że robot skręca przy wiadomości xxx i jak ją skopiuje i wyśle to robot wykona jego komendę! Zna ktoś sposoby aby przesyłanie wiadomości było bezpieczne?
  10. To jest dobre rozwiązanie, ale zależało by mi na czymś tańszym czyli połączenie przez kabel USB.
  11. Witam, Czy zna ktoś jakiś sposób w jaki możne połączyć układ z AVR Atmega do tabletu z Androidem. Na razie dopiero uczę się programować aplikacje na Androida, a w przyszłości chciałbym sterować robotem z tabletu. Na początek chciałbym napisać aplikacje zapalającą diody na avr, ale google nie daje żadnych rozwiązań.
  12. Witam, Chciałbym zamontować do swojego robota jakiś czujnik temperatury i zdecydowałem się na ds18b20 korzystając z strony: http://www.jaglarz.com/ja/elektronika/ds18b20.pdf napisałem kod. Lecz niestety on niedziała (nie odczytuje temperatury tylko wskazuje temp1 i temp2 równe 255, natomiast wykrywa urządzenie) czy mógłby ktoś wskazać błąd? #ifndef F_CPU #define F_CPU 16000000UL #endif // prędkość transmisji 9600 #define UART_BAUD_RATE 9600 #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #include <avr/interrupt.h> #include "uart.h" #define WE 6 #define PORT_1wire PIND #define SET_1wire DDRD&=~_BV(WE) #define CLEAR_1wire DDRD|=_BV(WE) #define DELAYUS(x) _delay_us(x) unsigned char reset_pulse(void){ unsigned char PRESENCE=0; CLEAR_1wire; DELAYUS(500); //500us SET_1wire; DELAYUS(30); if(bit_is_clear(PORT_1wire,WE)) {PRESENCE=1;} else {PRESENCE=0;} DELAYUS(470); if(bit_is_set(PORT_1wire,WE)) {PRESENCE=1;} else {PRESENCE=0;} return PRESENCE; } void send(char bit){ CLEAR_1wire; DELAYUS(5); if(bit==1) SET_1wire; DELAYUS(80); SET_1wire; } unsigned char read(void){ unsigned char PRESENCE=0; CLEAR_1wire; DELAYUS(2); SET_1wire; DELAYUS(15); if(bit_is_set(PORT_1wire,WE)) PRESENCE=1; else PRESENCE=0; return(PRESENCE); } void send_byte(char wartosc){ unsigned char y; unsigned char pom; for (y=0;y<8;++y){ pom = wartosc>>y; pom &= 0x01; send (pom); } DELAYUS(100); } unsigned char read_byte(void){ unsigned char y; unsigned char wartosc=0; for(y=0;y<8;++y){ if(read()) wartosc |= 0x01<<y; DELAYUS(15); } return (wartosc); } int main(void) { uart_init(UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU)); // włączenie modułu UART, ustawienie prędkości transmisji sei(); //wlaczenie obslugi przerywan uart_puts("start "); unsigned char sprawdz; char temp1=0; char temp2=0; char buf[10]={0,0,0,0,0,0,0,0,0,0}; while(1) { int i=0; int y=0; sprawdz=reset_pulse(); if(sprawdz){ send_byte(0xCC); send_byte(0x44); _delay_ms(750); sprawdz=reset_pulse(); send_byte(0xCC); send_byte(0xBE); temp1=read_byte(); temp2=read_byte(); sprawdz=reset_pulse(); float temp=0; temp=(float)(temp1+(temp2*256))/16; //dtostrf(temp,1,1,buf); uart_putc(temp1); uart_putc(temp2); uart_putc('\n'); _delay_ms(200); } else{ uart_puts("\npresence: "); uart_putc(sprawdz); _delay_ms(750); } } } Bardzo proszę o pomoc.
  13. Mi działa komunikacja przez SPI, dzięki kodu udostępnionemu przez Kamami. Wie ktoś jak zaprogramować ten układ używając interfejsu I2C w języku C. Bardzo potrzebny mi jest kod do tego, a mam spore problemy z odpaleniem I2C.
×
×
  • Utwórz nowe...