Skocz do zawartości

Cała aktywność

Strumień aktualizowany automatycznie     

  1. Ostatnia godzina
  2. A jak zmierzysz miernikiem pobór prądu to co wychodzi? Rozwierasz obwód, wpinasz amperomierz pomiędzy baterie a układ.
  3. @Gieneq @Treker Zgłupiałem... Wymieniony odbiornik IR, dioda IR i ne555. Dalej nie działa, nie pomaga wpięcie diody przez kabelki i dotknięcie odbiornika. Zasilanie 6,3V
  4. Bo ta linijka jest absolutnie sprzeczna ze składnią języka. Z ciekawości - co to miało oznaczać? Przede wszystkim nie bardzo rozumiem, dlaczego chcesz koniecznie operować napisami, jeśli wystarczy porównanie pojedynczego znaku. Na początku bufora siedzi sobie znak odebrany przez UDP. Dalej nie ma co bufora analizować, przesyłany powinien być dokładnie jeden znak. Czyli coś w stylu: char odebrany = packetBuffer[0]; printf("Odebrano %c\n", odebrany); if (odebrany == 'A') { // tu coś robisz } else if (odebrany == 'V') { // a tu robisz coś innego } ewentualnie tak bardziej profesjonalnie: char odebrany = packetBuffer[0]; printf("Odebrano %c\n", odebrany); switch(odebrany) { case 'A': // coś robisz break; case 'V': // coś innego robisz break; default: printf("Co ty mi tu wysyłasz?\n"); } Czy to jasne? Proponuję jakiś najprostszy kurs C++...
  5. Cześć, mam pytanie co do analogii wodnej dotyczącej napięcia. Dlaczego "napięcie" na tym obrazku jest mierzone od poziomu wody w drugim zbiorniku, a nie od poziomu dolnego progu śluzy? Przecież z tego wynika, że gdyby wysokość wody nie dosięgałaby do progu śluzy, wciąż występowałoby "napięcie", ale nie płynąłby "prąd".
  6. Dzisiaj
  7. Z tym podpinaniem bendę miał na uwadze void loop() { int cb = udp.parsePacket(); if (cb) { int read = udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE); Serial.print(packetBuffer); packetBuffer[read] = 0; char odczyt[] = { packetBuffer["A"], packetBuffer["V"], '\0'}; if (strcmp( odczyt, "A") == 0 ) { digitalWrite(4, LOW); jedenMillis = millis() + 500; dwaMillis = millis() + 600; trzyMillis = millis() + 600; delay(100); digitalWrite(5, LOW); delay(50); digitalWrite(0, LOW); } if (strcmp( odczyt, "V") == 0 ) { digitalWrite(4, LOW); jedenMillis = millis() + 500; trzyMillis = millis() + 600; czteryMillis = millis() + 600; delay(100); digitalWrite(2, LOW); delay(50); digitalWrite(0, LOW); } } if(millis() >= jedenMillis) { digitalWrite(4, HIGH); } if(millis() >= dwaMillis) { digitalWrite(5, HIGH); } if(millis() >= trzyMillis) { digitalWrite(0, HIGH); } if(millis() >= czteryMillis) { digitalWrite(2, HIGH); } } Takie moje próby nie przechodzi kompilacji na: char odczyt[] = { packetBuffer["A"], packetBuffer["V"], '\0'}; wyrzuca błąd: invalid types 'char [8192][const char [2]]' for array subscript i brakło mi pomysłów jak to ugryźć bo A/V bez " " też nie pomaga.
  8. @sp3uqw Cześć. Ja również miałem ten problem. NDK r20 nie potrafiłem go rozwiązać. Będę próbował jeszcze raz. Sprawdzałem w Android Studio działa NDK w wersji r20 skompilowałem aplikację z natywnym kodem C++
  9. Pokaż jak próbowałeś. Przy okazji - podpinanie się pod inny wątek z problemem zupełnie nie na temat to głupi pomysł... @Treker - byłbyś tak miły i wydzielił to do nowego wątku?
  10. Witam Podepnę cię pod ten temat gdyż mam mały problem i nie umiem sobie z nim poradzić W Arduino dopiero zaczynam raczkować więc proszę o łaskawe traktowanie Komunikuję Się między dwoma ESP, do klienta mam podłączone dwa przyciski i wysyłam dwie informacje: #include <ESP8266WiFi.h> #include <WiFiUdp.h> const char *ssid = "circuits4you"; const char *pass = "password"; unsigned int localPort = 2000; IPAddress ServerIP(192,168,4,1); IPAddress ClientIP(192,168,4,2); WiFiUDP udp; void setup(){ pinMode(4,INPUT_PULLUP); pinMode(5,INPUT_PULLUP); pinMode(16, OUTPUT); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); Serial.begin(9600); Serial.println(); WiFi.softAP(ssid, pass); Serial.println("Starting UDP"); udp.begin(localPort); Serial.print("Local port: "); Serial.println(udp.localPort()); } void loop(){ int cb = udp.parsePacket(); if (!cb) { if(digitalRead(4) == LOW) { udp.beginPacket(ClientIP, 2000); udp.write("A"); udp.endPacket(); digitalWrite(LED_BUILTIN, LOW); delay(200); digitalWrite(LED_BUILTIN, HIGH); } } if (!cb) { if(digitalRead(5) == LOW) { udp.beginPacket(ClientIP, 2000); udp.write("V"); udp.endPacket(); digitalWrite(LED_BUILTIN, LOW); delay(200); digitalWrite(LED_BUILTIN, HIGH); } } } Serwer odbiera informacje, w moim przypadku przykładowe litery A i V Do serwera mam podłączone kilka przekaźników i po odebraniu informacji wykonują daną sekwencję załączeń. #include <ESP8266WiFi.h> #include <WiFiUdp.h> const char *ssid = "circuits4you"; const char *pass = "password"; unsigned int localPort = 2000; unsigned long jedenMillis = 0; unsigned long dwaMillis = 0; unsigned long trzyMillis = 0; unsigned long czteryMillis = 0; unsigned long zwlokaMillis = 0; IPAddress ServerIP(192,168,4,1); IPAddress ClientIP(192,168,4,2); WiFiUDP udp; char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; void setup(){ pinMode(0,OUTPUT); digitalWrite(0, HIGH); pinMode(2,OUTPUT); digitalWrite(2, HIGH); pinMode(4,OUTPUT); digitalWrite(4, HIGH); pinMode(5,OUTPUT); digitalWrite(5, HIGH); pinMode(16,OUTPUT); digitalWrite(16, LOW); Serial.begin(9600); Serial.println(); WiFi.begin(ssid, pass); Serial.println(""); while (WiFi.status() != WL_CONNECTED) { digitalWrite(16, HIGH); delay(500); Serial.print("."); digitalWrite(16, LOW); delay(500); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); Serial.println("Starting UDP"); udp.begin(localPort); Serial.print("Local port: "); Serial.println(udp.localPort()); } void loop() { int cb = udp.parsePacket(); if (cb) { udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE); Serial.print(packetBuffer); digitalWrite(4, LOW); jedenMillis = millis() + 500; dwaMillis = millis() + 600; trzyMillis = millis() + 600; delay(100); digitalWrite(5, LOW); delay(50); digitalWrite(0, LOW); } if(millis() >= jedenMillis) { digitalWrite(4, HIGH); } if(millis() >= dwaMillis) { digitalWrite(5, HIGH); } if(millis() >= trzyMillis) { digitalWrite(0, HIGH); } } Łączenie przebiega w porządku i odbieranie informacji też, na serial porcie tak to wygląda: ⸮txW⸮H$48⸮$<⸮⸮⸮ ....... Connected to circuits4you IP address: 192.168.4.2 Starting UDP Local port: 2000 AAVVVVA Problem dotyczy - jak rozróżnić te informacje, żeby po wysłaniu i odebraniu A wykonać przykładowo powyższą sekwencję a po wysłaniu i odebraniu V inną sekwencję Nie umiem puki co sobie z typ poradzić Próbowałem przeczytać bufor i go rozpoznać ale nie wychodzi mi...
  11. Witam wszystkich Mam na imię Michał i dopiero zaczynam raczkować w temacie Arduino Dołączyłem do Was aby poszerzyć swoją wiedzę i czasami poprosić o małą pomoc lub podpowiedź Pozdrawiam
  12. Witam. Z tego co wiem to w poprzedniej wersji MP1 były błędy krytyczne. Teraz je poprawili ale nie wiem czy już są lutowane do discoverek. Ktoś ma jakieś wiadomości odnośnie tego gdzie można w Polsce taką discoverkę kupić z nowym układem?
  13. Trochę takie dywagacje w stylu wszędzie dobrze gdzie nas nie ma. Szkoła ma uczyć, studia mają dać możliwości. Czytając wpisy mam wrażenie że większość osób wybierająca AiR szła tam z myślą "będę robił roboty, zbuduję sondę marsjańską albo od razu całą rakietę". A wystarczy czytać, jest internet, praktycznie każda uczelnia/wydział na swojej stronie zamieszcza plany studiów, opisy kierunków, są dni otwarte, itp. Można sprawdzić, porównać, dojść do wniosku co nas bardziej interesuje i że może to jednak nie to co chce w życiu robić. Narzekacie że czegoś nie było, a wg was być powinno. Ja skończyłem AiR na PB i miałem SolidWorksa, AutoCADa, dużo Matlaba i Simulinka, chyba na każdym semestrze jakieś programowanie, od C i asemblera przez C++ i VHDL po jakiegoś Pythona, SQL i sam już nie pamiętam co. Jakaś matematyka na każdym semestrze także. Miałem masę przedmiotów powiązanych z mechaniką, natomiast nie miałem praktycznie nic o projektowaniu elektroniki, samej elektrotechniki chyba 1 semestr i kolejny o napędach elektrycznych i tyle w temacie. Regulatorów naliczyłem się co nie miara, jakichś symulacji układów także (raz cały semestr męczyliśmy zadania z regulacji poziomu cieczy w zbiorniku na przykładzie spłuczki w różnych wariantach). Było sprawozdań co nie miara bo laborki napchane z czego się da (nawet z matematyki w Matlabie coś klepaliśmy) i z każdych zajęć sprawozdanie, człowiek podobno najlepiej się uczy przez praktykę więc nie wiem skąd narzekanie na ilość sprawozdań, dużo sprawozdań = dużo laborek = dużo praktyki. Zanim poszliście na studia mogliście sprawdzić plany studiów, przejść się na dni otwarte, poczytać o kierunku ale po co się wysilać, lepiej liczyć że będzie wszystko podane tak jak chcecie i narzekać że nie spełnili waszych oczekiwań bo nie zbudowaliście wielkiego mecha albo łazika marsjańskiego w ramach zajęć. Ale nie, tak jak napisałem na początku studia dają możliwości ile z nich wyciągniemy zależy tylko od nas samych. Możesz siedzieć w książkach i uczyć się teorii jeżeli tak pasuje, zapisać się do koła naukowego albo wstąpić do AZS bądź innej organizacji uczelnianej i zrobić np. Juwenalia. Jest masa możliwości i wyborów, nie każdy musi być dobry, ale każdy będzie zły jeżeli przed wybraniem kierunku nie stwierdzisz na co liczysz i nie zainteresujesz się planem studiów i ofertą uczelni/wydziału. Wiem, długi wpis umoralniający ale po przeczytaniu wypowiedzi aż mnie coś strzeliło.
  14. Czy ja dobrze zrozumiałem, chcesz diodę led w SMD 0603 przylutować do kabla? Moim zdaniem trochę bezsensowna robota, ale ok, kto, co lubi i też się zdarzało robić SMD na kablach. Trochę głupie pytanie, kabel pocynowałeś? Bo może zaraz się okazać że problemem nie jest sprzęt, a technika No i jaką lutownicą próbowałeś lutować?
  15. Biblioteka ArduinoJson uaktualniła się do wersji 6 i powyższe porady związane z nią są już nieaktualne. Rozwiązanie znajdziemy w rozdziale Summary na stronie Migrating from version 5 to 6 | ArduinoJson 6.
  16. Wczoraj
  17. Tak korzystamy u nas w pracy na PG w TASK-u mamy też kila przekaźników w 3mieście. Projekt ttn jest chyba najlepszym rozwiązaniem póki co
  18. Po wykonaniu kolejnych kroków z instrukcji i uruchomieniu programu RealTerm nie przesyłają mi się wiadomości. Poniżej załączam parę screenów. Miałby ktoś może pomysł co mogłoby być u mnie błędem?
  19. Zbyt dobrego aparatu nie mam by zrobić wyostrzoną fotkę, ale przesyłam link z tą diodą. http://s.click.aliexpress.com/e/bXlmP34M
  20. Pewnie o to, że wyszła nowa wersja. Ja na szczęście trochę zaczekałem i teraz czekam, aż będzie dostępna w sklepie wersja z 4 GB RAM-u.
  21. Akurat uważam że dla mnie pierwszy rok był najbardziej rozwijający, właśnie ze względu na matematykę. Teraz poszedłbym na matematykę stosowaną, ew. informatykę na wydziale matematyki. Klasyk, u mnie też tak było. Teraz kończę magisterkę z informatyki (dalej na AEI POLSL) i mimo że roboty jest z 3 razy mniej to wyciągam ze studiów 2x więcej niż na AIRze. Dorzuciłeś informatykę, CAD, energetykę i elektronikę, grubo zwłaszcza że narzekasz na brak czasu. Pewnie zależy od wydziału ale ja miałem na 2 roku bazy danych, na AIRze na wydziale obok maja CAD. A jeszcze z projektowania PCB co roku Mentor Graphic organizował szkolenie dla studentów, tylko tu był problem z czasem bo kiedyś trzeba zrobić sprawka.
  22. ESP32 ma dwa sprzętowe I2C których I/O można dowolnie remapować. Więc możesz po prostu przepinać sprzętowe I2C na te piny które potrzebujesz.
  23. Nie możesz tutaj użyć filtra RC z uwagi na sprawność. Tak jak napisał grg0 jednym rozwiązaniem jest znacznie zwiększenie częstotliwości PWM - to nie gryzie. Przecież możesz zrobić 1kHz i zapomnieć o wszelkich drganiach a nawet pojechać wyżej niż akustyka (>16kHz) i przestać słyszeć to upierdliwe piszczenie silnika. L298 spokojnie działa do 35-40kHz. Swoją drogą jest on tak beznadziejny (co wciąż ludzi składania do kupowania tego badziewia?), że ogromne straty związane z jego przewodzeniem i tak przekroczą straty na przełączanie. Drugim rozwiązaniem - owszem, jest filtr, ale LC. Tylko taki zestaw zapewni wystarczającą sprawność. Popatrz: układ RC jest z definicji układem stratnym, bo ma opornik. Jeżeli chcesz przez niego przesyłać moc do silnika (a nie tylko sygnał np. z czujnika do ADC) to musisz pogodzić się z tym , że opornik będzie się grzał i spora część energii (ta która nie przejdzie do wyjścia) wyparuje w postaci ciepła. Natomiast konfiguracja LC teoretycznie jest bezstratna, bo indukcyjność magazynuje energię w polu magnetycznym i może mieć zerową rezystancję a do wyjścia dociera tylko to co zostało pobrane z wejścia - nic po drodze nie znika. Oczywiście w praktyce tak nie jest( bo jesteśmy w realnym świecie miedzi i rdzeni a nie nadprzewodników), a na dodatek tak niska częstotliwość powoduje, że cewka musiałaby mieć ze 100mH i wciąż przepuszczać ponad 1A prądu (jaki masz silnik? jaki prąd? - to ważne dla projektu filtra). To już się robi klocek wielkości i pudełka zapałek.. Do tego dajesz jakiś bipolarny (nie-elektrolityczny) 100uF i powinieneś zauważyć znaczący (np 10-krotny) spadek tętnień prądu w silniku. Gdybyś wbrew wszelkiej logice zdecydował się na tak absurdalne rozwiązanie (może np. nie masz wpływu na częstotliwość PWM), to narysuj jakiś schemat i pokaż. Zobaczymy czy załapałeś o co chodzi.
  24. Wygląda jak coś w tym temacie. PDF Zastanawia mnie dlaczego na płytce jest dodatkowe wyprowadzenie magistrali. Jest tam też dodatkowy pin INT - zgaduje przerwanie, ale co robi to nie doczytałem. Może to będzie to coś do wyzwalania. Choć patrząc na to co jest w ww. pdf to chyba nie ma innego wyjścia.
  25. Posiadam owy czujnik https://botland.com.pl/pl/czujniki-medyczne/9432-maxrefdes117-czujnik-tetna-bezinwazyjny-pulsoksymetr-ir-i2c.html mam do podłączenia 5 takich czujników a wszystkie są o adresie 0x57 i zależy mi żeby zbierały dane z wszystkich czujników w miara w jednym czasie
  26. Jest możliwość podpięcia kilku urządzeń z tym samym adresem do jednej magistrali, tylko musiałbyś mieć możliwość wyboru - coś jak pin Chip Enable/Select w SPI. Jakie są te czujniki? Bo może posiadają właśnie takie wyprowadzenia które je aktywują, wiem że niektóre akcelerometry takie maja. Jeżeli nie mają, to możesz spróbować kluczować albo zasilanie albo dostęp do magistrali.
  27. A co będzie lepszym rozwiązaniem niż pomysł który ja przedstawiłem ??
  28. Ja niedługo będę się bronić na AiR na Uniwersytecie Zielonogórskim (skończyłem teraz trzeci rok). I tu kilka faktów: MATLAB'a praktycznie wszędzie wciskają: modelowanie i symulacja, metody komputerowe w obliczeniach inżynierskich, metody numeryczne, technika regulacji automatycznej, podstawy robotyki. Niestety większość wykładowców z ISSI ma podejście: macie tu helpa przeczytajcie sobie a jak nie działa to szukaj na necie. Ja na szczęście wybrałem sprecjalizację Automatyka Przemysłowa, gdzie dowiedziałem się sporo fajnych rzeczy m. in. były interfejsy RS 232/485, CAN, protokoły Modbus, Profibus, X2X itd. Mieliśmy też na specjalizacji zajęcia z falowników i napędów. Były również (jako przedmiot obieralny) dodatkowe zajęcia z Układów Energolektronicznych. Ogólnie pierwszy semestr wygląda tak, że dostajesz mokrą szmatą w twarz i masz się uczyć całek, pochodnych, pochodnych cząstkowych, macierzy, minorów, i innych głupot, których na początku nikt nie pokaże jak skorzystać w praktyce. Jak trafisz na dobrego wykładowcę bądź laboranta ( a niestety o takich ciężko) to coś tam się nauczysz. Drugi semestr to strzał w pysk dla osób takich jak ja czyli po technikum mechatronicznym. Podstawy elektotechniki i elektroniki to jakieś 10 % tego co było w pierwszej klasie technikum. Do tego kpina, ż wykładowca nie wytłumaczy ci wprost jak coś policzyć np. rezystory czy jak je dobrać np. czemu kilohmy anie mega ogmy. Jak masz więcej pytań to zostaniesz zgnojony czemu tego nie umiesz. Zajęcia z programowania w C a potem w C++ to już śmiech na sali. Pierwsze pod szumną nazwą Podstawy programowania ogarną tylko ludzie, którzy już coś wcześniej w tym robili. My w ogóle nie przerobiliśmy na tych zajęciach ani wskaźników, ani przydzielania i zwalniania pamięci. Potem z takimi tyłami przeszliśmy na Programowanie obiektowe, które prowadziło dwóch wykładowców (obecnie tylko jeden bo drugiego zwolnili). Pierwszy z którym mieliśmy zajęcia to cały czas chodził jakby na kacu i bywało, że po 5-6 razy powtarzał ten sam materiał, bo tak. Laboratorium mieliśmy z drugim, który uważał, że my urodziliśmy się koderami. Każdy z nas ratował się symfonią C++ Grębosza, dzięki której ledwo trzy udało się uzyskać. Na drugim roku było kilka spoko zajęć, chociaż na poziomie to raczej technikum a nie studiów inżynierskich. Na technice cyfrowej łączenie bramek i przerzutników na płytce stykowej i wieczna wojna CZEMU KABLI BRAKUJE! oraz CZEMU TO NIE DZIAŁA?. Na podstawach energo całkiem fajnie poza tym, że wykładowca wydrapie ci oczy jak użyjesz zwrotu ,,przetwornica" napięcia zamiast przekształtnik. Na programowaniu PLCkach całkiem spoko, bo język drabinkowy to dosyć prosta rzecz zwłaszcza na Siemensach 1200. Oczywiście inne języki to już po łebkach a takie rzeczy jak implementacja algorytmu PID czy sterowanie wejść/wyjść analogowych to już nie starczy czasu. Podsumowując nie polecam tego kierunku. Chciałem pójść na elektronikę i telekomunikację, ale od wielu lat jej nie otworzyli. Lepiej z perspektywy czasu byłoby studiować elektrotechnikę. Serio. No przez długi czas praktycznie co tydzień trzeba było zrobić 5-6 sprawozdań. Praktycznie jedyny czas, żeby czegokolwiek dodatkowo się nauczyć to wakacje. Raczej nie zamierzam pracować stricte jako automatyk, gdyż w naszym kraju zarobki w porównaniu do obowiązku i charakteru tej pracy to po prostu kpina. Ja obecnie uczę się front i back endu i zamierzam zostać programistą, gdyż to jeszcze jedna z niewielu dziedzin w naszym kraju, gdzie pracując na miejscu można zarobić prawdziwe pieniądze. EDIT: Ogólnie odwieczną wadą studiów jest to, że wtedy kiedy masz energię i chce ci się uczyć to walą suchą teorię, a jak są przykłady praktyczne to zaczyna się lato i nikomu już się nic nie chce. Brakuje zajęć takich jak np, programowanie sieciowe, bazy danych, tworzenie modeli 3D w 3DS maxie bądź blenderze, techniki wysokich napięć, dodatkowych zajęć z projektowania i tworzenia obwodów drukowanych. Do tego przydało by się jeszcze, żeby zajęcia z języka obcego były na wyższym poziomie w mniejszych grupach (max 6 osób). Ale trudno oczekiwać wysokiego poziomu jak na 200-250 osób jest dwóch nauczycieli angielskiego. Ja chodziłem prywatnie na dodatkowe zajęcia, bo inaczej bym się po prostu cofnął.
  1. Załaduj więcej aktywności
×
×
  • Utwórz nowe...