Skocz do zawartości

Kurs budowy robotów - #8 - zdalne sterowanie IR (RC5)


Pomocna odpowiedź

html_mig_img
Zdalne sterowanie za pomocą latarki testowane podczas #6 części kursu budowy robotów było bardzo proste, ale miało jednak wiele ograniczeń.Tym razem zajmiemy się prawdziwą łącznością bezprzewodową! Zamiast światła widzialnego wykorzystamy podczerwień. Robotem będzie można więc sterować za pomocą pilota od TV.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

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

Świetny artykuł jak zawsze. Troszkę się tylko czepnę do terminologii. Wiem, że w artykule został użyty skrót myślowy i mam nadzieję, że nikt nie pomyśli, że fala podczerwona ma częstotliwość 36 kHz 😉

Pozdr.

Link do komentarza
Share on other sites

Raf11, nie chciałem zagłębiać się zbyt mocno w terminologię. W tekście są odnośniki do kolejnych artykułów na temat podczerwieni, więc zainteresowani na pewno zaspokoją głód wiedzy 😉

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

robert10, pewnie już wcześniej instalowałeś biblioteki (we wcześniejszych lekcjach) więc powinno być ok. Próbowałeś jeszcze tego kroku: "Po ponownym uruchomieniu środowiska biblioteka będzie zainstalowana i gotowa do działania". I jeszcze taka porada. Ja zawsze dodaję tak biblioteki:

  • Lubię! 1
Link do komentarza
Share on other sites

Tak instalowałem już biblioteki. Mam wersje Arduino 1.7.10

Zainstalowałem bibliotekę, ponownie uruchomiłem program, ale nie działa. Próbowałem instalować jeszcze raz, ale pojawia się informacja, że biblioteka jest zainstalowana - Biblioteka RC5 już istnieje. W internecie znalazłem, że mogą być problemy z biblioteką z nazwą RC5-master.zip. Jako wskazówkę podano aby po rozpakowaniu usunąć człon nazwy w folderach -master. Próbowałem, ale i to nie działa

poniżej prezentuje zrzuty

Link do komentarza
Share on other sites

robert10, czy w katalogu RC5 (z powyższego zrzutu) są już pliki biblioteki, czy jest tam może jeszcze jeden folder? Restartowałeś środowisko? Ta biblioteka nie ma w sobie nic nadzwyczajnego, skoro inne działały, to ta również powinna 🙂

  • Lubię! 1
Link do komentarza
Share on other sites

W folderze RC5 jest podfolder RC5 a w nim pliki

Poniżej załączam zrzut ze ścieżką dostępu

Tak restartowałem środowisko

Spróbuję przenieść pliki do folderu RC5 z podfolderu

Pozdrawiam

[ Dodano: 03-03-2017, 10:59 ]

Chyba rozwiązane tak jak podawałem we wcześniejszej wiadomość przeniosłem pliki z podfolderu RC5 do folderu RC5 i przeszedł proces kompilacji prawidłowo.

Niem mam możliwości wgrania kodu na Arduino ponieważ jestem w pracy, ale proces kompilacji przeszedł prawidłowo

Serdecznie pozdrawiam i dziękuję serdecznie użytkownikom Treker i leepa79

Link do komentarza
Share on other sites

Witam,

niestety program testujący rc5 nie działa w moim przypadku.

Biblioteka zaimportowana prawidłowo, program się kompiluje, dla pewności kod skopiowany ze strony, próbowałam z różnymi pilotami, prędkość transmisji w monitorze jest taka sama jak w programie i wyświetla komunikaty jeżeli nie są w warunku if(rc5.read ...), piloty "sprawdzone" aparatem cyfrowym.

W jaki sposób mogę jeszcze sprawdzić, czy odbiornik ir na shieldzie działa prawidłowo?

Link do komentarza
Share on other sites

Dzięki.

Kod poniżej.

Zastanawiam sie dlaczego w tym przypadku nie konfigurujemy pinu 3 w funkcji Setup.

Używam pilot dołączonego do zestawu "Pilot zdalnego sterowania for Philips TV/DVR/VCR 3939#" w momencie naciśnięcia przycisku ma dodatkowo podświetlany przycisk POWER więc widać że działa.

Arduino z shieldem podpięte do komputera, zasilanie z baterii odłączone. Zdjęłam dodatkowo koszyk z bateriami z podstawy robota, żeby nie zasłaniać odbiornika 🙂

#define TSOP_PIN 3

#include <RC5.h>
RC5 rc5(TSOP_PIN); //Informacja o podłączeniu odbiornika TSOP

//Zmienne dla RC5
byte address; 
byte command;
byte toggle;

void setup() {                
 Serial.begin(9600);
}

void loop() {

 Serial.println("test");

 //Jeśli odebrano komendę
 if (rc5.read(&toggle, &address, &command))
 {
   Serial.print("A:");
   Serial.print(address);
   Serial.print(" K:");
   Serial.print(command);
   Serial.print(" T:");
   Serial.println(toggle); 
 }
}

[ Dodano: 18-03-2017, 20:33 ]

Sam pin 3 w arduino działa poprawnie (sprawdzone po zdjęciu shield).

Link do komentarza
Share on other sites

jessej, taki program nie zadziała - nie umieszczałem go w kursie 😉

W tej chwili wysyłasz do komputera napis "test" w każdym obiegu pętli. Arduino jest całkiem szybkie, więc ilość wysyłanych danych jest olbrzymia. Powoduje to zapchanie wszystkich buforów i zwyczajnie w monitorze portu szeregowego nie widać informacji o RC5. Po usunięciu tej zbędnej linijki (poniższy fragment) całość działa dobrze - sprawdzone przed chwilą na dwóch shieldach i dwóch pilotach.

 Serial.println("test"); 
wyświetla komunikaty jeżeli nie są w warunku if(rc5.read ...)

Wklejony program, nie mówi nic o wysyłaniu żadnych danych, gdy brak sygnału od RC5 - do tego należałoby skorzystać z polecenia else w warunku. Jednak nawet z else bombardowania PC informacjami bez żadnych odstępów zakończy się problemem 😉 Daj znać, czy bez tej dodatkowej linijki działa dobrze.

Link do komentarza
Share on other sites

Przepraszam za zamieszanie, linię Serial.print("test") dorzuciłam już w procesie eliminowania kolejnych możliwych przyczyn problemu...

Program nie działa na oryginalnym kodzie (poniżej).

Jak wspomniałam sprawdziłam dodatkowo sam pin 3 w arduino (bez nakładki) i działa.

Stąd pytanie czy można w jakiś sposób jeszcze sprawdzić sam odbiornik.

#define TSOP_PIN 3

#include <RC5.h>
RC5 rc5(TSOP_PIN); //Informacja o podłączeniu odbiornika TSOP

//Zmienne dla RC5
byte address; 
byte command;
byte toggle;

void setup() {                
 Serial.begin(9600);
}

void loop() {

 //Jeśli odebrano komendę
 if (rc5.read(&toggle, &address, &command))
 {
   Serial.print("A:");
   Serial.print(address);
   Serial.print(" K:");
   Serial.print(command);
   Serial.print(" T:");
   Serial.println(toggle); 
 }
}
Link do komentarza
Share on other sites

jessej, ok rozumiem. Do tej pory nikt nie zgłaszał podobnego problemu, więc nie mam gotowego rozwiązania 😉 Wyślij proszę do mnie przez prywatne wiadomości nr zamówienia w Botlandzie (lub imię i nazwisko osoby zamawiającej), to sprawdzimy inny shield z tej serii. Jeśli okaże się, że to problem sprzętowy, to wymienimy płytkę 🙂

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.