Piotr Rzeszut Arduino Każdy może zostać elektronikiem. Obsługa kart pamięci i generowanie dźwięku przy pomocy modułu ARD WAV Shield
|
|
- Daria Wiśniewska
- 9 lat temu
- Przeglądów:
Transkrypt
1 Obsługa kart pamięci i generowanie dźwięku przy pomocy modułu ARD WAV Shield 1
2 Wstęp Dzisiejszy wykład postanowiłem podzielić na 2 bloki, bo choć cały czas będziemy korzystać z modułu Wav Shield, to zrealizujemy z jego wykorzystaniem aż 2 różne zagadnienia a mianowicie: 1. Obsługa kart pamięci jako nośników danych czyli zapis i odczyt danych, np. w celu zapisywania wartości pomiarów itp. 2. Współpraca kart pamięci i przetwornika cyfrowo-analogowego w celu odtwarzania plików muzycznych z karty. Podczas omawiania tych zagadnień będziemy korzystać z 2 różnych bibliotek, gdyż jedna z nich jest specjalnie dedykowana i optymalizowana do odtwarzania dźwięku, druga zaś posiada funkcje przystosowane do odczytu i zapisu dowolnych danych do plików. To tyle słowem wstępu, a teraz czas na rozpoczęcie pracy. Przygotowanie modułu do pierwszego uruchomienia Moduł Wav Shield wymaga przed pierwszym użyciem montażu dostarczonych elementów przewlekanych, co nie powinno sprawiać większych trudności nawet początkującym korzystającym z prostych lutownic transformatorowych. Kolejną czynnością, którą należy wykonać, jest podłączenie odpowiednich wyprowadzeń układów i karty SD do wyprowadzeń naszej płytki. Mamy tutaj pełną dowolność w kwestii podłączenia pinu CS 1 karty SD oraz wszystkich używanych do komunikacji wyprowadzeń przetwornika cyfrowo-analogowego, jednak z racji tego, iż będziemy korzystać z gotowych bibliotek musimy podłączyć te wyprowadzenia tak, jak zostały wykorzystane w bibliotekach. Poprawne połączenie 2 pokazuje rysunek na następnej stronie. Opisałem na nim także niektóre elementy, a bardziej szczegółowych informacji możemy uzyskać z instrukcji obsługi oraz schematu elektronicznego tego modułu. 1 CS (z ang. Chip Select) pin wyboru i aktywacji układu, zwykle utrzymywanie tego pinu w stanie niskim powoduje, ze układ jest aktywny i może się komunikować, a podanie na ten pin stanu wysokiego dezaktywuje układ i pozwala na komunikację z innymi urządzeniami na tych samych liniach 2 Połączenia najlepiej wykonać za pomocą izolowanych i przyciętych na odpowiednią długość kawałków drutu miedzianego. 2
3 Potencjometr do regulacji głośności Slot karty SD/MMC, powyżej dodatkowe wyprowadzenia: CD Card Detect sygnalizacja włożenia karty WP Write Protect sygnalizacja ochrony zapisu na karcie (ustawiana mechanicznym przełącznikiem na karcie) Dodatkowy przycisk i jego złącze 2 diody LED aktywne w stanie niskim Przycisk RESET Złącze JACK 3,5mm, obok złącza do podpięcia dodatkowego głośnika Obsługa karty SD, jako nośnika danych Zgodnie z obietnicą na początek zajmiemy się wykorzystaniem karty SD jako nośnika danych dowolnego przeznaczenia. Właściwie do tej części kursu wystarczy tylko podłączenie pinu CCS do pinu 10, gdyż pozostałe linie sygnałowe karty są już na stałe podłączone do procesora (do pinów 5-3), jednak jeśli już będziemy takowe połączenia wykonywać połączenie wszystkich wyprowadzeń nie będzie sprawiało żadnego problemu 3. Oczywiście nie musze już chyba nadmieniać, że pinów tych raczej nie powinniśmy wykorzystywać do innych celów, chyba że dokładnie wiemy co robimy 4. Nadmienię jeszcze iż urządzenie na pewno współpracuje z kartami SD i MicroSD 5 o pojemnościach do 2GB włącznie. Większych kart nie testowałem, dlatego nie gwarantuję ich działania, tak samo jak kart SD HC. Skoro więc posiadamy już odpowiednio przygotowany sprzęt możemy napisać pierwszy program testujący działanie karty. Może on wyglądać np. tak: 3 Choć nie będziemy mogli dowolnie sterować także na razie nie używanym pinem 3 płytki, który powinien być pozostawiony jako wejście bez podciągania lub lepiej jako wyjście ustawione w stan wysoki to spowoduje iż przetwornik nie będzie zakłócał w żaden sposób transmisji między procesorem a kartą. 4 Na razie, na naszym etapie nauki uznajemy te piny jako wykorzystane i nie podłączamy do nich żadnych innych urządzeń. 5 w odpowiednim adapterze 3
4 #include <SD.h> //dołączamy bibliotekę do obsługi kart SD File plik; //tworzymy obiekt, który będzie przechowywać informacje konieczne do prowadzenia operacji na plikach char znak; void setup(){ Serial.begin(9600); Serial.print("Inicjalizacja karty SD: "); pinmode(10,output);//ustawiamy pin 10, podłączony do pinu CS karty jako wyjście (aby program mógł nim poprawnie sterować) if(sd.begin(10)){//do funkcji begin przekazujemy także numer tego pinu //UWAGA! Używając kiedyś innego pinu pamiętajcie o tym, aby pin 10 ustawić mimo wszystko jako wyjście i pozostawić takowy niepodłączony, gdyż jest on i tak "zajmowany" przez kontroler SPI //SPI - interfejs szeregowy wykorzystywany m. in. przez karty SD i inne układy Serial.println("OK"); //jeśli funkcja zwróci prawdę (logiczną 1) to oznacza to poprawną inicjalizację karty else{ Serial.println("BLAD - sprawdz karte"); //w przeciwnym razie wiemy, iż nie wszystko przebiegało poprawnie - wyświetlamy stosowny komunikat i zatrzymujemy działanie programu poprzez pętlę nieskończoną. Serial.print("Plik testowy.txt "); if(sd.exists("testowy.txt")){//tak sprawdzamy czy dany plik istnieje Serial.println("istnieje"); ///plik = SD.open("testowy.txt", FILE_READ);//otwieramy plik do odczytu plik = SD.open("testowy.txt");//przy otwieraniu pliku do odczytu nie musimy tego wyraźnie zaznaczać - plik zostanie domyślnie otwarty do odczytu if(plik){//powinniśmy sprawdzić czy plik został poprawnie otwarty Serial.println("Plik otwarty do odczytu"); else{ Serial.println("Plik nie został otwarty! - sprobuj ponownie"); //wystąpliły jakieś błędy - zatrzymujemy program while(plik.available()){//metoda available działa dokładnie tak samo jak w przypadku komunikacji RS232 - jeśli pozostały jakieś znaki do odczytania w pliku to funkcja zwraca wartość TRUE Serial.print(plik.read(), BYTE);//funkcja read plik.close();//zamykamy plik else{ Serial.println("nie istnieje"); plik = SD.open("testowy.txt", FILE_WRITE);//teraz otwieramy plik testowy.txt w trybie zapisu. 4
5 //jeśli plik wcześniej istniał zostanie otwarty w trybie dodawania danych, w przeciwnym razie zostanie on utworzony na karcie SD if(plik){//powinniśmy sprawdzić czy plik został poprawnie otwarty Serial.println("Plik otwarty do zapisu, wpisz linijke tekstu: "); else{ Serial.println("Plik nie został otwarty! - sprobuj ponownie"); //wystąpiły błędy - zatrzymujemy program while(znak!=10){ if(serial.available()){ znak=serial.read(); //plik.write(znak);//tak zapisujemy pojedyncze znaki plik.print(znak, BYTE);//równie dobrze możemy zastosować znane nam polecenia print i println - ich działanie jest dokładnie takie samo jak w przypadku komunikacji RS232 Serial.print(znak, BYTE);//dodatkowo wyświetlamy znaki w terminalu plik.print("program pracowal "); plik.print(millis()/1000.0, 2); plik.println(" sekund."); //dospisujemy jeszcze trochę tekstu Serial.println("Tekst zostal zapisany. Zresetuj urzadzenie aby wykonac operacje ponownie"); plik.close();//i pamiętamy koniecznie o zamknięciu pliku void loop(){ Mam nadzieję, że nie muszę już chyba wyjaśniać szerzej kwestii zapisu danych na kartę SD. No może oprócz jednego mianowicie nazwa pliku nie może być dłuższa niż 8 znaków, a rozszerzenie nie może być dłuższe niż 3 znaki, nie wspominając już o wykorzystaniu tylko i wyłącznie liter z alf abetu łacińskiego. Jednak chciałbym jeszcze wspomnieć o paru kwestiach, a mianowicie sposobie zapisu i odczytu liczb z plików na karcie. Moim zdaniem najwygodniejszym sposobem takiego zapisu są pliki CSV (z ang. Comma Separated Values wartości oddzielone przecinkami). Wielką zaletą takich plików jest możliwość ich szybkiego eksportu do wielu arkuszy kalkulacyjnych takich jak np. Excel. W plikach csv każda kolejna wartość oddzielona średnikiem 6 zostanie zapisana do kolejnej komórki w danym wierszu, zaś przejście w pliku do nowej linii spowoduje przejście do następnego wiersza komórek w arkuszu. Już zapewne widzicie jak przydatne mogą okazać się te pliki w przypadku chęci narysowania np. wykresu, czy porównania różnych danych. Pierwszą kwestię zapisu danych do pliku CSV przedstawię na przykładzie odczytu danych z wejść analogowych. Osobiście podłączyłem do tych wyprowadzeń potencjometry, ale nic nie stoi na przeszkodzie, aby podpiąć także dowolny układ pomiarowy 7. Stworzymy wtedy bardzo prosty, ale skuteczny rejestrator. 6 liczby zmiennoprzecinkowe są zapisywane z przecinkami (przynajmniej w polskiej wersji programu Microsoft Excel ) 7 np. układy, które konstruowaliśmy przy okazji omawiania zagadnienia pomiaru wartości analogowych 5
6 #include <SD.h> //dołączamy bibliotekę do obsługi kart SD File plik; //tworzymy obiekt, który będzie przechowywać informacje konieczne do prowadzenia operacji na plikach word analog; unsigned long last_time; void setup(){ Serial.begin(9600); Serial.print("Inicjalizacja karty SD: "); pinmode(10,output); if(sd.begin(10)){ Serial.println("OK"); else{ Serial.println("BLAD - sprawdz karte"); Serial.println("Rozpoczynam rejestracje, wpisz i wyslij \"a\" aby przerwac i bezpiecznie wyjac karte"); pinmode(a0, INPUT); pinmode(a1, INPUT); void loop(){ if(millis()%1000==0){ //dane zapisujemy co 1 sekundę - gdy reszta z dzielenia milisekund przez 1000 wynosi 0 //dzięki takiemu podejściu do zagadnienia... nie musimy korzystać z instrukcji delay(); dzięki czemu możemy w czasie oczekiwania wykonywać inne operacje plik=sd.open("dane.csv",file_write); //otwieramy plik do zapisu if(plik){ plik.print(millis()/1000,dec); plik.print(";"); Serial.print(millis()/1000,DEC); Serial.print(";"); analog=analogread(0); plik.print(analog,dec); plik.print(";"); Serial.print(analog,DEC); Serial.print(";"); analog=analogread(1); plik.print(analog,dec); plik.println(""); Serial.print(analog,DEC); Serial.println(""); //zapsiujemy do pliku wartości oddzielone średnikami, te same dane wysyłamy przez port RS232 do komputera plik.close(); else{ Serial.println("Blad odczytu pliku - zrestartuj urzadzenie"); if(serial.available()){ if(serial.read()=='a'){ 6
7 Serial.println("Urzadzenie zatrzymane - mozesz wyjac bezpiecznie karte. W celu ponownego uruchomienia zresetuj urzadzenie"); //jeśli odebraliśmy znak a to zatrzymujemy program w celu usunięcia karty SD z urządzenia Przykładowe dane i wykres wygenerowany na ich podstawie mogą wyglądać np. tak: Zanim przejdziemy do odczytu danych z pliku CSV, chciałbym jeszcze zwrócić uwagę na kwestę zapisu do plików CSV danych zmiennoprzecinkowych. Wszystko wydaje się być w tej kwestii bezproblemowe, jednak zapisuje liczby z częścią dziesiętną oddzieloną przecinkiem, zaś Excel 8 wymaga zapisu z przecinkiem. Napiszmy zatem bardzo prostą funkcję konwertującą liczbę na jej reprezentację z przecinkiem. Większość programu pozostaje bez zmian, zatem umieszczę tylko kluczowe fragmenty kodu. Pełny kod znajdziecie w plikach dołączonych do tej części kursu. #include <SD.h> //dołączamy bibliotekę do obsługi kart SD File plik; //tworzymy obiekt, który będzie przechowywać informacje konieczne do prowadzenia operacji na plikach word analog; float napiecie; //String konwersja; 8 przynajmniej jego polskojęzyczna wersja 7
8 String konwertuj(float liczba){ liczba*=100.0; //chcemy uzyskać dokładność 2 miejsc po przecinku, zatem "przesuwamy" go o 2 miejsca int liczba2=liczba; //pozostałe miejsca dziesiętne nas nie interesują zatem konwertujemy liczbę na całkowitą String konwersja; konwersja=string(liczba2/100); //na początku zapisujemy części całkowite konwersja+=",";//dodajemy przecinek konwersja+=string(liczba2%100); //i wypisujemy 2 miejsca dziesiętne return konwersja; void setup(){ //konfiguracja void loop(){ // sprawdzanie czasu, plik.print(millis()/1000,dec); plik.print(";"); Serial.print(millis()/1000,DEC); Serial.print(";"); napiecie=analogread(0); napiecie*=5.0; napiecie/=1023; plik.print(konwertuj(napiecie)); plik.print(";"); Serial.print(konwertuj(napiecie)); Serial.print(";"); napiecie=analogread(0); napiecie*=5.0; napiecie/=1023; plik.print(konwertuj(napiecie)); plik.println(""); Serial.print(konwertuj(napiecie)); Serial.println(""); plik.close(); // pozostała część obsługi rejestratora Teraz przyszła już kolej na odwrotną operację, czyli odczyt danych z pliku CSV. Operacja taka może przydać się nam choćby do wczytania wcześniej zapisanej konfiguracji, czy też ustawień urządzenia. Jak jednak zabierzemy się do odczytu takich danych liczbowych? Dokładnie tak samo, jak w przypadku pobierania ich poprzez terminal RS232 od użytkownika. #include <SD.h> //dołączamy bibliotekę do obsługi kart SD File plik; //tworzymy obiekt, który będzie przechowywać informacje konieczne do prowadzenia operacji na plikach int numery[3]; int i; int odczyt; void setup(){ Serial.begin(9600); 8
9 Serial.print("Inicjalizacja karty SD: "); pinmode(10,output); if(sd.begin(10)){ Serial.println("OK"); else{ Serial.println("BLAD - sprawdz karte"); plik=sd.open("licz.csv",file_read); i=0; while(plik.available()){//powtarzamy dopóki w pliku są jakieś nieodczytane dane odczyt=plik.read(); if(odczyt!=';'&&odczyt!=13&&odczyt!=10){//jeśli odczytywany znak to nie jeden ze znaków zakończenia linii lub średnik numery[i]*=10;//to aktualną wartość liczby przesuwamy o jedno miejsce numery[i]+=odczyt-'0';//i dodajemy odczytaną cyfrę (metoda jak w lekcji o RS232) else if(odczyt==';'){//jeśli natrafiliśmy na średnik i++;//to przechodzimy do następnej kolumny (następnej komórki w tabeli) else if(odczyt==10){//jeśli to już koniec linii to wyświetlamy liczby z niej odczytane Serial.print(numery[0], DEC); Serial.print("\t");//znak tabulacji spowoduje, że liczby będą ładnie wyrównane Serial.print(numery[1], DEC); Serial.print("\t"); Serial.println(numery[2], DEC); numery[0]=0; numery[1]=0; numery[2]=0; i=0; //następnie resetujemy zmienne przechowujące liczby void loop(){ W tej chwili wykorzystanie tych wielkich możliwości zależy już wyłącznie od waszej inwencji twórczej. Na zadanie domowe polecam Wam tak zmodyfikować nasz kod, aby odczytywał także liczby zmiennoprzecinkowe. Mam nadzieję, że po chwili zastanowienia i przeanalizowaniu obecnego kodu nie sprawi to nikomu większych trudności. Odtwarzanie dźwięku z karty SD Teraz przyszła już kolej na chyba najbardziej oczekiwaną część naszego kursu odtwarzanie dźwięków z wykorzystaniem naszej płytki i modułu. Pierwszą czynnością jaką musimy wykonać jest oczywiście przygotowanie karty SD. Na początek nadmienię tylko, że w przypadku odtwarzania plików dźwiękowych bardzo ważna jest odpowiednia szybkość ich odczytu z karty SD. Jeśli 9
10 zagłębilibyśmy się w szczegóły standardu FAT16/32 (których używamy) zobaczylibyśmy, że po usunięciu pliku dane nie są przesuwane na początek karty, ale zostaje po nim puste miejsce. Później, jeśli wgrywamy na kartę nowy, większy plik, zostanie on podzielony (fachowo: pofragmentowany) i wpasowany w pozostałe puste miejsca. Podczas odczytu zaś wystąpi konieczność skakania po tych miejscach, w których został on zapisany. Z tego powodu autorzy biblioteki dźwiękowej zalecają wgrywanie plików dźwiękowych bez ich usuwania. Jeśli zaś wcześniej już wielokrotnie usuwaliśmy i zapisywaliśmy pliki najlepiej ponownie sformatować kartę. Oczywiście nie jest to konieczne, ale w przeciwnym wypadku mogą wystąpić nieoczekiwanie zakłócenia (np. w formie trzasków). Drugą kwestią, którą muszę poruszyć jest format samego pliku z dźwiękiem. Plik powinien być zapisany jako format *.WAV, czyli pozbawiony jakiejkolwiek kompresji. Dodatkowo plik powinien posiadać tylko jeden kanał (nagranie mono, gdyż nasz odtwarzacz jest wstanie odtwarzać tylko jeden kanał), rozdzielczość powinna wynosić 16-bit, a częstotliwość próbkowania Hz. W przeciwnym wypadku podczas próby odtwarzania dźwięku wystąpi błąd. Wszystkich tych zmian możemy dokonać np. za pomocom programu Advanced WMA Workshop. W Internecie możemy znaleźć bez trudu jego wersję Shareware, która przez określony czas będzie w zupełności spełniać nasze oczekiwania. Aby dokonać konwersji przechodzimy w w.w. programie do katalogu, w którym znajduje się plik z dźwiękiem, który chcemy skonwertować. Następnie klikamy na pliku PPM 9 i wybieramy Convert to WAV. Później przechodzimy do zakładki WAV Settings i wybieramy Samplerate: Hz oraz Channels mode: Mono. Następnie zatwierdzamy działanie i po chwili w naszym katalogu mamy już gotowy plik z muzyką do skopiowania na kartę. Nazewnictwo plików muzycznych rządzi się takimi samymi prawami jak zwykłych, czyli maksymalnie 8 znaków nazwy i 3 znaki rozszerzenia oraz kropka. Zanim przedstawię Wam przykładowy program chciałbym nadmienić, iż oryginalna biblioteka jest nieco skomplikowana w obsłudze, dlatego stworzyłam specjalny zestaw funkcji ułatwiających pracę. W przyszłości wystarczy, że skopiujecie w odpowiednie miejsca deklaracje i definicje tych funkcji, aby tworzyć własne programy z wykorzystaniem dźwięku. A teraz kolej na program realizujący prosty odtwarzacz muzyki sterowany z komputera poprzez terminal RS232. Dołączenie bibliotek #include <WaveHC.h> #include <WaveUtil.h> Zmienne i obiekty systemu odtwarzania plików - nie modyfikować SdReader card; FatVolume vol; FatReader root; FatReader file; WaveHC wave; dir_t dirbuf; uint8_t part; przykładowe zmienne wykorzystywane w naszym programie UWAGA! tablica przechowująca nazwę pliku musi mieć dokładnie 13 elementów. 9 Prawym Przyciskiem Myszy 10
11 W przeciwnym wypadku może dojść do nieprawidłowego funkcjonowania programu lub nawet skasowania plików z karty SD uint8_t CARD_init_state; uint8_t WAV_play_state; char name[13]; byte opcja; uint8_t dirnametochararray(uint8_t *byte_table, char *char_table); funkcja konwertująca tablicę bajtów na tablicę znaków (tekst), używana tylk o i wyłącznie wewnetrznie #define CARD_INIT_OK 0 #define CARD_INIT_ERR 1 #define PARTITION_ERR 2 #define ROOT_OPEN_ERR 3 uint8_t init_sd(uint8_t slow_spi=0, uint8_t opt_read=1); inicjalizacja karty SD slow_spi=0 -> używanie szybkiego SPI 8MHz slow_spi=1 -> używanie wolnego SPI 4 MHz opt_read=1 -> optymalizacja odczytu włączona opt_read=0 -> optymalizacja odczytu wyłączona funkcja zwraca: 0 -> inicjalizacja prawidłowa 1 -> błąd inicjalizacji karty 2 -> błąd otwierania partycji 3 -> błąd otwierania systemu plików #define dir_read_init(); root.rewind(); #define dir_read_init() root.rewind() przyjazna nazwa dla inicjalizacji odczytu katalogu uint8_t find_wav(char *char_table); wyszukiwanie plików WAV na karcie SD funckja do tablicy podanej jako parametr zapisuje nazwę pliku, zwraca FALSE, jeżeli na karcie nie ma już więcej plików WAV należy wtedy użyć instrukcji dir_read_init();, aby rozpoczać wyszukiwanie o d początku #define is_playing(); wave.isplaying; #define is_playing() wave.isplaying przyjanza nazwa dla funkcji sprawdzającej, czy aktualnie jest odtwarzany ja kiś plik dźwiękowy #define stop_wav(); wave.stop(); #define stop_wav() wave.stop() przyjazna nazwa funkcji zatrzymującej odtwarzanie 11
12 #define pause_wav(); wave.pause(); #define pause_wav() wave.pause() przyjazna nazwa funkcji pauzującej odtwarzanie dźwięku #define resume_wav(); wave.resume(); #define resume_wav() wave.resume() przyjazna nazwa funkcji wznawiającej odtwzarzanie zapauzowanego dźwięku #define is_paused(); wave.ispaused(); #define is_paused() wave.ispaused() przyjazna nazwa funkcji sprawdzającej, czy dżwięk jest zapauzowany #define PLAY_OK 0 #define OPENING_ERROR 1 #define INVALID_WAV 2 uint8_t play_wav(char *char_table); funkcja ładująca dźwięk i rozpoczynająca jego odtwarzanie tablica podana jako parametr powinna zawierać nazwę pliku do odtwarzania funkcja zwraca: 0 -> odtwarzanie rozpoczęte poprawnie 1 -> błąd otwierania pliku (plik uszkodzony lub nie istnieje) 2 -> nieprawidłowy lub nieobsługiwany format pliku WAV należy pamiętać, że pliki dźwiękowe muszą być przygotowane zgodnie z poniżs zymi parametrami: rozdzielczość: 16-bit częstotliwośc próbkowania: 44,100 khz kanały: mono void setup() { Serial.begin(9600); Serial.println(""); Serial.println("Test odtwarzacza wav."); if(card_init_state=init_sd()){//inicjalizujemy kartę - jeden znak równości to nie błąd: taki warunek zadziała następująco: 1. zostanie wykonana funkcja init_sd() 2. wartość, którą ona zwróci zostanie zapisana w ziemmen CARD_init_state 3. do funkcji if zostanie przekazana wartość tej zmiennej (dla jasności - każda wartość różna od 0 jest traktowana jako prawda) Czyli całość mógłbym zapisać tak: CARD_init_state=init_SD(); if(card_init_state){... Serial.print("Blad inicjalizacji karty, kod: "); 12
13 Serial.println(CARD_init_state, DEC); void loop() { dir_read_init();//przewijamy katalog do początku (pliki wyszukiwane w kolejności dodania) while(find_wav(name)){//powtarzamy dopóki będziemy znajdować nowe pliki, których nazwy trafiają do tablicy name if(wav_play_state=play_wav(name)){//podobnie jak przy inicjalizacji karty, teraz sprawdzamy czy da się rozpocząć odtwarzanie pliku. Równie dobrze możemy wpisać stałą nazwę pliku, np: if(wav_play_state=play_wav("vivaldi.wav")){... Serial.print("!! Blad odtwarzania "); Serial.print(name); Serial.print(": Kod bledu: "); Serial.println(WAV_play_state); else{ Serial.print("-> Odtwarzam "); Serial.println(name); while(is_playing()){//powtarzamy dopóki plik jest odtwarzany if(serial.available()){ opcja=serial.read();//odczytujemy dane z RS232 i dokonujemy odpowiedniej operacji switch(opcja){ case 'q'://stop - następny utwór stop_wav(); Serial.println("[] Stop"); break; case 'w'://pauza/wzownienie odtwarzania if(is_paused()){//sprawdzamy czy odtwarzanie jest zapauzowane czy nie resume_wav(); Serial.println("-> Odtwarzanie"); else{ pause_wav(); Serial.println(" Pauza"); break; Serial.println(""); definicje funkcji wykorzystywanych przez odtwarzacz, nie zmieniaj nic poniż ej uint8_t dirnametochararray(uint8_t *byte_table, char *char_table){ 13
14 uint8_t is_wav=true; for(int i=0;i<=11;i++){ byte znak=*(byte_table); if(znak!=32)*(char_table++)=(char)znak; if(i==7)*(char_table++)='.'; byte_table++; if(i==7&&*(byte_table)!='w')is_wav=false; if(i==8&&*(byte_table)!='a')is_wav=false; if(i==9&&*(byte_table)!='v')is_wav=false; *(char_table)=0; return is_wav; uint8_t init_sd(uint8_t slow_spi, uint8_t opt_read){ if (!card.init(slow_spi)) return CARD_INIT_ERR; card.partialblockread(opt_read); for (part = 0; part < 5; part++) if (vol.init(card, part)) break; if (part == 5) return PARTITION_ERR; if (!root.openroot(vol)) return ROOT_OPEN_ERR; return CARD_INIT_OK; uint8_t find_wav(char *char_table){ while(root.readdir(dirbuf)){ if(dirnametochararray(dirbuf.name,char_table))return true; return false; uint8_t play_wav(char *char_table){ if(!file.open(root, char_table)) return OPENING_ERROR; if(!wave.create(file)) return INVALID_WAV; wave.play(); return PLAY_OK; Podsumowanie Oczywiście zachęcam do stworzenia własnego odtwarzacza, w którym sterowanie będzie realizowane poprzez przyciski, a dane o utworze będą wyświetlane na wyświetlaczu, tak aby urządzenie pracowało niezależnie od komputera. Możecie także wykorzystać ten sprzęt do odtwarzania dźwięków, czy ostrzeżeń, a nawet skonstruować mówiący zegarek z termometrem wszystko zależy od Waszej inwencji twórczej! 14
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać
instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI
instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI SPIS TREŚCI 04 Opis opcji terminala 05 SKANOWANIE 06 Skanowanie kod 07 Skanowanie kod ilość 08 Skanowanie kod ilość cena
1. Opis. 2. Wymagania sprzętowe:
1. Opis Aplikacja ARSOFT-WZ2 umożliwia konfigurację, wizualizację i rejestrację danych pomiarowych urządzeń produkcji APAR wyposażonych w interfejs komunikacyjny RS232/485 oraz protokół MODBUS-RTU. Aktualny
Przemysłowy odtwarzacz plików MP3
Przemysłowy odtwarzacz plików MP3 WWW.DIGINN.EU Spis treści 1. Opis odtwarzacza MP3... 3 2. Wyprowadzenia odtwarzacza... 4 2.1 Wymiary płytki... 6 4. Tryby pracy... 8 5. Podłączanie MP3 Playera... 9 6.
ze względu na jego zaokrąglony kształt musimy go umieścić w innych bloczkach np. ze zmienną: lub jeśli chcemy sprawdzić jaki właśnie znak odczytujemy:
Ostatnio kontynuowaliśmy temat "rozmawiania" z Arduino (komunikacji z wykorzystaniem portu szeregowego), która jest nam o tyle potrzebna, że właśnie w ten sposób później będziemy rozmawiać z płytką wykorzystując
ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1
Instrukcja obsługi aplikacji 1 1./ instalacja aplikacji. Aplikacja służy do zarządzania, konfigurowania i testowania modułów firmy Advance Electronic wyposażonych w RS485 pracujących w trybie half-duplex.
Zmierzyć się z żywiołami, czyli jak zbudować własną stację badawczą! Zaczynamy! Pole komunikatów programu. Nawigacja w programie Arduino
Zaczynamy! Lista zadań Menu programu sprawdzanie kodu Skróty wybranych poleceń wgrywanie kodu nowy program otwieranie zapisanych prog. Pole do wprowadzania kodu zapisywanie zmian wywołanie podglądu portu
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.
Nazwa implementacji: Termometr cyfrowy - pomiar temperatury z wizualizacją pomiaru na wyświetlaczu LCD Autor: Krzysztof Bytow Opis implementacji: Wizualizacja działania elementu zestawu modułu-interfejsu
MultiTool instrukcja użytkownika 2010 SFAR
MultiTool instrukcja użytkownika 2010 SFAR Tytuł dokumentu: MultiTool instrukcja użytkownika Wersja dokumentu: V1.0 Data: 21.06.2010 Wersja urządzenia którego dotyczy dokumentacja: MultiTool ver. 1.00
Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.
Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio. IComsat jest to shield GSM/GPRS współpracujący z Arduino oparty o moduł SIM900 firmy SIMCOM.
Przetwornik analogowo-cyfrowy
Przetwornik analogowo-cyfrowy Przetwornik analogowo-cyfrowy A/C (ang. A/D analog to digital; lub angielski akronim ADC - od słów: Analog to Digital Converter), to układ służący do zamiany sygnału analogowego
Przemysłowy odtwarzacz plików MP3 SD
Przemysłowy odtwarzacz plików MP3 SD WWW.DIGINN.EU Spis treści 1. Opis odtwarzacza MP3... 3 2. Wyprowadzenia odtwarzacza... 4 2.1 Wymiary płytki... 6 3. Opis funkcjonalności playera MP3... 7 4. Tryby pracy...
Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Instrukcja obsługi. Terminal SD for DB25 CNC
Instrukcja obsługi Terminal SD for DB25 CNC Wstęp Terminal służy do wysyłania i odbierania programów bezpośrednio z karty SD do maszyny CNC. Zapewnia bezproblemową komunikację ze sterownikami firmy Fanuc,
INFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
Klawiatura matrycowa
Klawiatura matrycowa Budowa matrycy klawiatury. Nieodzownym elementem każdego systemu mikroprocesorowego jest klawiatura. Umożliwia ona wpływ użytkownika na wykonywany przez niego program. Jednak teoretycznie
Poradnik programowania procesorów AVR na przykładzie ATMEGA8
Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Wersja 1.0 Tomasz Pachołek 2017-13-03 Opracowanie zawiera opis podstawowych procedur, funkcji, operatorów w języku C dla mikrokontrolerów AVR
Współpraca FDS z arkuszem kalkulacyjnym
Współpraca FDS z arkuszem kalkulacyjnym 1. Wstęp: Program Pyrosim posiada możliwość bezpośredniego podglądu wykresów uzyskiwanych z urządzeń pomiarowych. Wszystkie wykresy wyświetlane są jako plik graficzny
LabVIEW PLATFORMA EDUKACYJNA Lekcja 6 LabVIEW i Arduino programy wykorzystujące wyświetlacz LCD, czujnik temperatury, PWM i diodę LED
LabVIEW PLATFORMA EDUKACYJNA Lekcja 6 LabVIEW i Arduino programy wykorzystujące wyświetlacz LCD, czujnik temperatury, PWM i diodę LED Przygotował: Jakub Wawrzeńczak 1. Wprowadzenie Lekcja przedstawia wykorzystanie
Tworzenie pliku źródłowego w aplikacji POLTAX2B.
Tworzenie pliku źródłowego w aplikacji POLTAX2B. Po utworzeniu spis przekazów pocztowych klikamy na ikonę na dole okna, przypominającą teczkę. Następnie w oknie Export wybieramy format dokumentu o nazwie
1 Wskaźniki. 1.1 Główne zastosowania wskaźników
1 Wskaźniki Wskaźnik (ang. pointer) jest obiektem (zmienną) przechowującym adres pamięci. Definiowanie wskaźników: typ *nazwa wskaznika; np.: int *wsk na x;, double *xxx;, char *znak;. Aby można było pracować
LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2
LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2 1. Cel ćwiczenia Celem ćwiczenia jest pokazanie budowy systemów opartych na układach Arduino. W tej części nauczymy się podłączać różne czujników,
SystimPlus. Dokumentacja (FAQ) dla wersji: v1.14.05.12
SystimPlus Dokumentacja (FAQ) dla wersji: v1.14.05.12 Spis treści 1.Co to jest SystimPlus?... 1 2.Instalacja i wymagania... 1 3.Jakie drukarki fiskalne obsługuje SystimPlus?... 3 4.Jak połączyć się z drukarką
Zasady programowania Dokumentacja
Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika
dokument DOK 02-05-12 wersja 1.0 www.arskam.com
ARS3-RA v.1.0 mikro kod sterownika 8 Linii I/O ze zdalną transmisją kanałem radiowym lub poprzez port UART. Kod przeznaczony dla sprzętu opartego o projekt referencyjny DOK 01-05-12. Opis programowania
Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4
Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium cyfrowej techniki pomiarowej Ćwiczenie 4 Zapis danych do pliku w programie LabVIEW 1. Zapis i odczyt sygnałów pomiarowych Do zapisu
Pytania sprawdzające wiedzę z programowania C++
Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?
LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2
LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2 PRZEBIEG ĆWICZENIA 1. Wybrać z dostarczonych przez prowadzącego następujące elementy Układ Arduino Mega Płytka prototypowa Wyświetlacz 2X16 Potencjometr
Edytor materiału nauczania
Edytor materiału nauczania I. Uruchomienie modułu zarządzania rozkładami planów nauczania... 2 II. Opuszczanie elektronicznej biblioteki rozkładów... 5 III. Wyszukiwanie rozkładu materiałów... 6 IV. Modyfikowanie
Rejestrator danych pomiarowych Extech SD800, mierzone wielkości: temperatura, CO2, wilgotność
INSTRUKCJA OBSŁUGI Nr produktu 123728 Rejestrator danych pomiarowych Extech SD800, mierzone wielkości: temperatura, CO2, wilgotność Strona 1 z 8 Wprowadzenie Gratulujemy zakupu rejestratora danych Extech
Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe
Arduino C - stałe Systemy Wbudowane Arduino C Wersja 2018 Unikać redefiniowania istniejących stałych. Stosowane dla polepszenia zrozumiałości kodu. Lepiej HIGH niż 0x01 Lepiej INPUT_PULLUP niż 0x2 Uwzględniają
Schemat blokowy architektury AVR
Schemat blokowy architektury AVR Rejestry procesora AVR dostępne programowo Rejestry procesora AVR związane z pobraniem i wykonaniem rozkazu Schemat blokowy procesora ATMega 2560 ATMEL ATMEGA328P MEMORY
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
Rejestratory Sił, Naprężeń.
JAS Projektowanie Systemów Komputerowych Rejestratory Sił, Naprężeń. 2012-01-04 2 Zawartość Typy rejestratorów.... 4 Tryby pracy.... 4 Obsługa programu.... 5 Menu główne programu.... 7 Pliki.... 7 Typ
CAR MP3 PLAYER RDS 982 INSTRUKCJA kompatybilny z SD, USB, MP3
Wygląd panelu i opis funkcji CAR MP3 PLAYER RDS 982 INSTRUKCJA kompatybilny z SD, USB, MP3 1. Włącznik / MODE 2. Przycisk obuszczania panelu 3. Zegar 4. Numer 5 / TYPE 5. Numer 6 / D/ 5+ 6. 1/PAU 7. 2/INT
W dowolnym momencie można zmienić typ wskaźnika.
c++ Wskaźniki mają jeszcze jedną przydatną cechę. W dowolnym momencie można zmienić typ wskaźnika. Robi się to za pomocą operatora rzutowania. Najpierw zdefiniujemy sobie wsk_uniwersalny mogący pokazywać
Instrukcja do oprogramowania ENAP DEC-1
Instrukcja do oprogramowania ENAP DEC-1 Do urządzenia DEC-1 dołączone jest oprogramowanie umożliwiające konfigurację urządzenia, rejestrację zdarzeń oraz wizualizację pracy urządzenia oraz poszczególnych
2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Przykładowe zagadnienia na sprawdzian z wiedzy ogólnej. Linux to nazwa: A. Programu biurowego. B. Systemu operacyjnego. C. Przeglądarki internetowej.
Przykładowe zagadnienia na sprawdzian z wiedzy ogólnej Linux to nazwa: A. Programu biurowego. B. Systemu operacyjnego. C. Przeglądarki internetowej. Przycisk RESET znajdujący się na obudowie komputera,
Makropolecenia w Excelu
Makropolecenia w Excelu Trochę teorii Makropolecenie w skrócie nazywane makro ma za zadanie automatyczne wykonanie powtarzających się po sobie określonych czynności. Na przykładzie arkusza kalkulacyjnego
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
Instrukcja obsługi programu PLOMP PLUS FM
Instrukcja obsługi programu PLOMP PLUS FM Edata Polska Sp. z o.o. ul. Puławska 314 02-819 Warszawa Tel 22 545-32-40 Fax 22 678-60-29 biuro@edatapolska.pl Ver 1.04 Aplikacja PLOMP PLUS FM przeznaczona jest
Powtórka algorytmów. Wprowadzenie do języka Java.
Powtórka algorytmów. Wprowadzenie do języka Java. BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż 10! ) END. 1. Narysować schemat blokowy
Przemysłowy odtwarzacz plików MP3 SD ze wzmacniaczem 2x10 Watt
Przemysłowy odtwarzacz plików MP3 SD ze wzmacniaczem 2x10 Watt WWW.DIGINN.PL Spis treści 1. Opis odtwarzacza MP3... 3 2. Wyprowadzenia odtwarzacza... 4 2.1 Wymiary urządzenia... 6 3. Opis funkcjonalności
2 INSTALACJA OPROGRAMOWANIA. 3 3 GŁÓWNE OKNO PROGRAMU 3 4 MODUŁ OBSŁUGI ARCHIWUM 7
LUBUSKIE ZAKŁADY APARATÓW ELEKTRYCZNYCH LUMEL S.A. W ZIELONEJ GÓRZE PROGRAM DO KONFIGURACJI KONCENTRATORA DANYCH TYPU PD22 PD22Wiz.exe INSTRUKCJA OBSŁUGI Zielona Góra 2007 2 SPIS TREŚCI: 1 WSTĘP. 3 2 INSTALACJA
Jak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Kod produktu: MP01611
CZYTNIK RFID ZE ZINTEGROWANĄ ANTENĄ, WYJŚCIE RS232 (TTL) Moduł stanowi tani i prosty w zastosowaniu czytnik RFID dla transponderów UNIQUE 125kHz, umożliwiający szybkie konstruowanie urządzeń do bezstykowej
RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle
Uniwersalny rejestrator danych pochodzących z portu szeregowego RS 232 Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle - UNIWERSALNY REJESTRATOR DANYCH Max. 35 GB pamięci! to nowoczesne
Kod produktu: MP01105T
MODUŁ INTERFEJSU DO POMIARU TEMPERATURY W STANDARDZIE Właściwości: Urządzenie stanowi bardzo łatwy do zastosowania gotowy interfejs do podłączenia max. 50 czujników temperatury typu DS18B20 (np. gotowe
Instrukcja do ćwiczeń
Instrukcja do ćwiczeń SYSTEMY WBUDOWANE Lab. 3 Przetwornik ADC + potencjometr 1. Należy wejść na stronę Olimexu w celu znalezienia zestawu uruchomieniowego SAM7-EX256 (https://www.olimex.com/products/arm/atmel/sam7-ex256/).
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
OPIS PROGRAMU APEK MULTIPLEKSER RX03
OPIS PROGRAMU APEK MULTIPLEKSER RX03 wer.2.3.3.9 - Program współpracuje z dwoma typami systemów pomiarowych AL154: multiplekserami M1.. lub RX.. oraz interfejsami DA.. - Wymagany system operacyjny: WIN
Programator procesorów rodziny AVR AVR-T910
Programator procesorów rodziny AVR AVR-T910 Instrukcja obsługi Opis urządzenia AVR-T910 jest urządzeniem przeznaczonym do programowania mikrokontrolerów rodziny AVR firmy ATMEL. Programator podłączany
Ćwiczenie: JavaScript Cookies (3x45 minut)
Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
1 Moduł Inteligentnego Głośnika
1 Moduł Inteligentnego Głośnika Moduł Inteligentnego Głośnika zapewnia obsługę urządzenia fizycznego odtwarzającego komunikaty dźwiękowe. Dzięki niemu możliwa jest konfiguracja tego elementu Systemu oraz
Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak
MARM Odtwarzacz plików MP3 z kardy SD
Warszawa, 01.02.2016 MARM Odtwarzacz plików MP3 z kardy SD Hubert Kasprzyk 1. Założenia projektowe Celem projektu jest zaimplementowanie odpowiednich algorytmów, umożliwiających odtworzenie plików MP3
16MB - 2GB 2MB - 128MB
FAT Wprowadzenie Historia FAT jest jednym z najstarszych spośród obecnie jeszcze używanych systemów plików. Pierwsza wersja (FAT12) powstała w 1980 roku. Wraz z wzrostem rozmiaru dysków i nowymi wymaganiami
I. Program II. Opis głównych funkcji programu... 19
07-12-18 Spis treści I. Program... 1 1 Panel główny... 1 2 Edycja szablonu filtrów... 3 A) Zakładka Ogólne... 4 B) Zakładka Grupy filtrów... 5 C) Zakładka Kolumny... 17 D) Zakładka Sortowanie... 18 II.
1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania
1. Opis aplikacji Interfejs programu podzielony jest na dwie zakładki. Wszystkie ustawienia znajdują się w drugiej zakładce, są przygotowane do ćwiczenia i nie można ich zmieniac bez pozwolenia prowadzącego
OBSŁUGA ZA POMOCĄ PROGRAMU MAMOS.EXE
OBSŁUGA ZA POMOCĄ PROGRAMU MAMOS.EXE SPIS TREŚCI 1. OBSŁUGA SENSORA IRMA ZA POMOCĄ PROGRAMU MAMOS.EXE...2 1.1. USTAWIENIE PARAMETRÓW POŁĄCZENIA Z SENSOREM...2 1.2. NAWIĄZYWANIE POŁĄCZENIA Z SENSOREM...2
1 Moduł Inteligentnego Głośnika 3
Spis treści 1 Moduł Inteligentnego Głośnika 3 1.1 Konfigurowanie Modułu Inteligentnego Głośnika........... 3 1.1.1 Lista elementów Modułu Inteligentnego Głośnika....... 3 1.1.2 Konfigurowanie elementu
INSTRUKCJA OBSŁUGI DŁUGOPIS PODSŁUCH 16GB AKTYWACJA GŁOSEM
INSTRUKCJA OBSŁUGI DŁUGOPIS PODSŁUCH 16GB AKTYWACJA GŁOSEM Opis urządzenia: 1.Przycisk nagrywania 2.Wskaźnik świetlny LED 3.Klips 4.Kasetka z tuszem (wkład) 5.Poprzedni utwór/ VOL+ 6.Przycisk Play -odtwarzania
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Rejestrator temperatury i wilgotności AX-DT100. Instrukcja obsługi
Rejestrator temperatury i wilgotności AX-DT100 Instrukcja obsługi Wstęp Rejestrator temperatury i wilgotności wyposażony jest w bardzo dokładny czujnik temperatury i wilgotności. Głównymi zaletami rejestratora
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM
5.4. Tworzymy formularze
5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania
WWW.ICOMFORT.PL e-mail: biuro@icomfort.pl tel.061 622 75 50 fax. 061 622 76 50
I. WIADOMOŚCI WSTĘPNE... 2 1. Podłączenie czytnika ekey module FS IN... 2 2. Podłączenie czytników i elektrozamka... 2 3. Jak poprawnie korzystać z czytnika... 3 4. Jak nie korzystać z czytnika... 3 II.
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można
Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium przyrządów wirtualnych. Ćwiczenie 3
Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium przyrządów wirtualnych Ćwiczenie 3 Wykorzystanie technologii ActiveX do rejestracji danych z przyrządów wirtualnych 1. Wstęp Do
Czytnik kart SIM instrukcja obsługi
Czytnik kart SIM instrukcja obsługi Spis treści I. Zawartość opakowania II. III. IV. Wymagania sprzętowe Instalacja Funkcje V. Podstawy VI. VII. VIII. IX. X. Języki XI. Edycja Książki Adresowej Edycja
Wykrywacz kłamstw. Grzegorz Puzio, Łukasz Ulanicki 15 czerwca 2008
Wykrywacz kłamstw Grzegorz Puzio, Łukasz Ulanicki 15 czerwca 2008 1 Wstęp Tematem naszego projektu był wykrywacz kłamstw. Naszym celem było zrealizowanie sprzętowe urządzenia oraz wizualizacja w postaci
Kod produktu: MP01105
MODUŁ INTERFEJSU KONTROLNO-POMIAROWEGO DLA MODUŁÓW Urządzenie stanowi bardzo łatwy do zastosowania gotowy interfejs kontrolno-pomiarowy do podłączenia modułów takich jak czujniki temperatury, moduły przekaźnikowe,
Odczyty 2.0 Spis treści
Opracowanie i skład: MMSoft s.c Copyright MMSoft s.c. Wszelkie prawa zastrzeżone. All Rights Reserved Powielanie w jakiejkolwiek formie całości lub fragmentów podręcznika bez pisemnej zgody firmy MMSoft
Karty SD posiadają 9 wyprowadzeń. Dodatkowo karta SD ma na brzegu przełącznik blokujący możliwość zapisu. Karta SD operuje na napięciu 3,3V.
Rejestrowanie danych Czujniki pozwalają uzyskiwać informację o otaczającym świecie. Najczęściej nie są to pojedyncze odczyty lecz zbierane są informacje o zmianach badanych wielkości w dłuższym okresie
Spis treści. 1 Moduł Modbus TCP 4
Spis treści 1 Moduł Modbus TCP 4 1.1 Konfigurowanie Modułu Modbus TCP................. 4 1.1.1 Lista elementów Modułu Modbus TCP............ 4 1.1.2 Konfiguracja Modułu Modbus TCP.............. 5 1.1.3
Współpraca mikrokontrolera z wyświetlaczami: ciekłokrystalicznym i siedmiosegmentowym
Instrukcja do ćwiczenia: Współpraca mikrokontrolera z wyświetlaczami: ciekłokrystalicznym i siedmiosegmentowym Materiał do samodzielnego opracowania: elementy języka C: typy danych i ich deklarowanie,
utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
FastStatic czyli jak wykonać pomiar statyczny
FastStatic czyli jak wykonać pomiar statyczny POMIAR W TERENIE Aby wykonać pomiar statyczny nie ma potrzeby uprzedniego nawiązywania połączenia internetowego, ani rozpoczynania procedury podłączenia do
Zgrywus dla Windows v 1.12
Zgrywus dla Windows v 1.12 Spis treści. 1. Instalacja programu. 2 2. Pierwsze uruchomienie programu.. 3 2.1. Opcje programu 5 2.2. Historia zdarzeń 7 2.3. Opisy nadajników. 8 2.4. Ustawienia zaawansowane...
Radio z odtwarzaczem CD Lenco
INSTRUKCJA OBSŁUGI Radio z odtwarzaczem CD Lenco Nr produktu 325823 Strona 1 z 9 1. Przycisk CD Program 2. Przycisk CD Repeat 3. Przycisk BBS 4. Wskaźnik zasilania 5. Wyświetlacz CD 6. Głośnik 7. Pokrywa
lekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
SCL > Pin 21 SDA > Pin 20 VCC > 5V GND > GND
Nazwa implementacji: Budowa RTC w oparciu o DS1307 Autor: Krzysztof Bytow Opis implementacji: Układ DS1307 jest to zegar czasu rzeczywistego (Real Time Clock) służy do odliczania czasu niezależnie od stanu
Spis treści. 3. Nośniki i nagrywarki...z...38 CD i DVD 38 Pojemność płyt 41 Format płyt 42
3. Nośniki i nagrywarki...z...38 CD i DVD 38 Pojemność płyt 41 Format płyt 42 Spis treści Wstęp...Z... 5 1. Zakup nagrywarki...z... 7 Wybór typu nagrywarki 7 Rodzaje złącz 8 Technologia Burn-Proof 8 Formaty
CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM
CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM 1.1. PODSTAWOWE INFORMACJE PC to skrót od nazwy Komputer Osobisty (z ang. personal computer). Elementy komputera można podzielić na dwie ogólne kategorie: sprzęt - fizyczne
Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.
Nazwa implementacji: Nauka języka Python wyrażenia warunkowe Autor: Piotr Fiorek Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nasz kalkulator umie już liczyć, ale potrafi przeprowadzać
INSTRUKCJA UŻYTKOWNIKA
INSTRUKCJA UŻYTKOWNIKA OV-CAM-01 Dziękujemy za zakup przenośnej kamery DVR naszej firmy. Aby obsługiwać ją we właściwy sposób, prosimy o uważne przeczytanie instrukcji przed rozpoczęciem korzystania z
Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest
Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik
Ustalanie dostępu do plików - Windows XP Home/Professional
Ustalanie dostępu do plików - Windows XP Home/Professional Aby edytować atrybuty dostępu do plikow/ katalogow w systemie plików NTFS wpierw sprawdź czy jest Wyłączone proste udostępnianie czyli przejdź
I - Microsoft Visual Studio C++
I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i
Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski
Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 90-236 Łódź, Pomorska 149/153 https://std2.phys.uni.lodz.pl/mikroprocesory/
3-kanałowy termometr z buforem danych Model SD200 Nr produktu
INSTRUKCJA OBSŁUGI 3-kanałowy termometr z buforem danych Model SD200 Nr produktu 000123726 Strona 1 z 8 USER GUIDE 3-kanałowy termometr z buforem danych Model SD200 Strona 2 z 8 Wstęp Gratulujemy zakupu
Częstościomierz wysokiej rozdzielczości
Zakład Elektroniczny SECURUS Marek Pyżalski ul. Poplińskich 11 61-573 Poznań www.securus.com.pl marekp@securus.com.pl Częstościomierz wysokiej rozdzielczości Precyzyjny pomiar częstotliwości klasyczną
Instrukcja użytkownika ARSoft-WZ1
05-090 Raszyn, ul Gałczyńskiego 6 tel (+48) 22 101-27-31, 22 853-48-56 automatyka@apar.pl www.apar.pl Instrukcja użytkownika ARSoft-WZ1 wersja 3.x 1. Opis Aplikacja ARSOFT-WZ1 umożliwia konfigurację i
Laboratorium Komputerowe Systemy Pomiarowe
Jarosław Gliwiński, Łukasz Rogacz Laboratorium Komputerowe Systemy Pomiarowe ćw. Zastosowania wielofunkcyjnej karty pomiarowej Data wykonania: 06.03.08 Data oddania: 19.03.08 Celem ćwiczenia było poznanie