Skocz do zawartości

Kajeloki

Użytkownicy
  • Zawartość

    14
  • Rejestracja

  • Ostatnio

Informacje

  • Płeć
    Mężczyzna

Osiągnięcia użytkownika Kajeloki

Odkrywca

Odkrywca (4/19)

  • Za 5 postów
  • To już rok!
  • To już 5 lat!

Odznaki

0

Reputacja

  1. Witam. Chcę zaprogramować esp8266 przez arduino, niestety przy próbie wgrania kodu wyskakuje error "espcomm_upload_mem failed". Czy ktoś wie jak mogę wgrać ten kod? Używam Arduino Uno i Esp8266 RS232 (link: https://abc-rc.pl/esp8266).
  2. Ok. Serwa działają 🙂 Zrobiłem oddzielne zasilanie do arduino i oddzielne do serw. Musze jeszcze przewody lepsze ogarnąć bo te nie dają rady przy łączeniu: przewody od serwa- przewody-przewody od płytki stykowej. Działają jedynie przy łączeniu: przewody od serw-przewody od płytki stykowej. No i oprócz tego musze jeszcze kod napisać do sterowania telefonem przez wifi i gotowe 😃. Jakby były jakieś problemy z kodem to ktoś mógłby pomóc?
  3. Marek... - no właśnie zasilałem serwa z jednej "szyny" płytki stykowej. Jako, że aktualnie nie mam dostępu do ramienia, to dopiero jutro wypróbuje zasilić serwa poprzez osobne "szyny" (patrz załącznik) [ Dodano: 08-11-2017, 21:50 ] Deshipu - używam pinów PWM (9, 5 i 6), podczas testowania tych serw mierzyłem multimetrem napięcie na + serw cyfrowych - było 5V. Co do kodu: to jest kod na wysierodkowanie serw (w domu działał jak podłączałem pojedynczo kazde serwo osobno po kolei, w szkole po podpięciu wszystkich serw na raz tylko analogowe zadziałało, a cyfrowe tykały w środku) #include <Servo.h> //Biblioteka odpowiedzialna za serwa Servo myservo1; Servo myservo2; Servo myservo3;//Tworzymy obiekt, dzięki któremu możemy odwołać się do serwa int pozycja = 0; //Aktualna pozycja serwa 0-180 int zmiana = 6; //Co ile ma się zmieniać pozycja serwa? void setup() { // put your setup code here, to run once: myservo1.attach(9); myservo1.write(90); myservo2.write(90); myservo3.write(90); } void loop() { } A tutaj drugi kod "przykładowy" do testów (tak samo jak wcześniej: przy testach pojedynczego serwa osobno po kolei każde działało, później po podłączeniu wszystkich tylko analogowe) int pos = 0; // variable to store the servo position void setup() { // put your setup code here, to run once: myservo.attach(9); } void loop() { // put your main code here, to run repeatedly: for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } }
  4. Oto uaktualniony schemat. Pominąłem połączenie z Wifi ponieważ w tym temacie jest na razie mało istotne.
  5. Serwa są zasilane z 5V. Tylko elektromagnes jest zasilany z 12V. Wifi(zamiast BT) jest natomiast zasilane z 3,3V. Tak jak mówiłem - schemat jest aktualny tylko teraz nie wykorzystujemy pololu i zamiast BT mamy Wifi (serwa sa bezpośrednio sterowane z Arduino)
  6. Ok jest nowa sprawa. Otóż podczas testów z wykorzystaniem pololu nastąpiło zwarcie i pololu poszło się bujać (a przynajmniej jakaś jego część, w każdym bądź razie nie działa poprawnie), więc przerzuciłem się bezpośrednio na arduino. Przy tym korzystałem z pomocy jakiejś osoby która bardziej się na tym zna niż ja. Potwierdziła moją wersję z uszkodzonym pololu i pomogła mi przy kontrolowaniu serw z arduino. No i tutaj pojawił się problem. Na początku po podłączeniu serwa analogowego i wgraniu do arduino prostego przykładowego kodu wszystko ładnie działało. Niestety w przypadku serw cyfrowych nie było już tak kolorowo. Obydwa serwa (zarówno to które było podpięte pod pololu w momencie zwarcia, jak i to które nie było podpięte) zachowywały się jakoś dziwnie. Otóż nie reagowały wcale na kod, tylko w środku coś tykało. Później jakimś cudem zaskoczyły i normalnie działały. Na drugi dzień złożyliśmy z kolegami ramię i podłączyliśmy zasilanie. Efekt był taki jak tuż po awarii - serwo analogowe działą a cyfrowe tylko tykają w środku. Wiecie może, co jest prawdopodobną przyczyną takiego zachowania i czy to tykanie może oznaczać coś poważnego (np uszkodzenie serwa)? Tutaj wstawiam link do serw cyfrowych:https://botland.com.pl/serwa-typu-standard/9167-serwo-feetech-fr0115m-standard.html A na dole wstawiłem jeszcze załącznik do schematu.
  7. A może mógłbyś mi napisać jakiś prosty kod np na obracanie serwa od jednej skrajnej pozycji do drugiej? Serwo jest podłączone pod kanał 1 i w Pololu Maestro Control Center jego wartości graniczne to 550 - 2500. Bo ogólnie to potrzebuje kodu do sterowania serwami przez bt za pomocą suwaków, a to jest tylko po to by sprawdzić czy wszystko działa poprawnie i się trochę ogarnąć co i jak, żeby później jakiejś gafy w kodzie nie popełnić. [ Dodano: 05-11-2017, 20:33 ] Ok kod działa 😃 Przerzuciłem się z micro na uno i zadziałało. Coś jest nie tak z UART na micro i dla tego nie działało. Jeszcze pytanko. Wiesz może jak się piszę kod właśnie pod takie suwaki? Chodzi mi o to, żeby wartość, która jest wyznaczona przez suwak była przesyłana do arduino, przypisywana do danego elementu (jednego z serw), przesyłana dalej do pololu i wczytywana jako "target" dla danego serwa. Jakbyś mógł przesłać jakiś przykładowy kod z wytłumaczeniem co jest od czego lub jakiś link do strony z takim czymś to byłbym wdzięczny.
  8. Nie przypominam sobie. A gdzie dokładnie ten numer się zmienia? To jest ten "Device number" w "Maestro Control Center" czy o coś innego ci chodzi? Jeśli chodzi o ustawienia domyślne to w "Pololu Maestro User's Guide" jest napisane, że "Device number" wynosi 12.
  9. Ok sprawdziłem wszystko. Baud mam na 9600, resztę tak samo jak na screenie. Zmodyfikowałem program, podłączyłem zasilanie i serwo wykonało jeden ruch - wycentrowało swoją pozycję (1500u). #include <PololuMaestro.h> MicroMaestro maestro(Serial); void setup() { Serial.begin(9600); } void loop() { maestro.setSpeed(1, 0); maestro.setAcceleration(1, 0); maestro.setTarget(1, 6000); delay(2000); maestro.setTarget(1, 2200); delay(2000); maestro.setTarget(1, 8000); delay(2000); }
  10. Ok. Zrobiłem tak jak powiedziałeś. Załadowałem przykładowy kod do sterowania serwem i podpiąłem zasilanie. Nic się nie działo. Zmieniłem parametry xxx (maestro.setTarget(1, xxx)) na inne (z zakresu 550 - 2500, ponieważ taki zakres jest ustawiony na Pololu) i serwo się ruszyło, ale tylko raz i nic więcej. Jakbyś mógł to weź mi wytłumacz jak to jest z tym "maestro.setTarget(x, y)" , co do "x" to wiem, że jest to numer kanału, a "y"? Jest to ta sama wartość co w Maestro Controll Center "Target"? #include <PololuMaestro.h> MicroMaestro maestro(Serial); void setup() { Serial.begin(9600); } void loop() { maestro.setSpeed(1, 0); maestro.setAcceleration(1, 0); maestro.setTarget(1, 6000); delay(2000); maestro.setSpeed(1, 10); maestro.setAcceleration(1,127); maestro.setTarget(1, 7000); delay(2000); maestro.setSpeed(1, 20); maestro.setAcceleration(1,5); maestro.setTarget(1, 5000); delay(2000); }
  11. Oto mój kod : #include <SoftwareSerial.h> #include <PololuMaestro.h> MicroMaestro maestro(Serial1); SoftwareSerial mySerial(8, 9); void setup() { // Set the serial port's baud rate. Serial1.begin(9600); Serial.begin(57600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println("Goodnight moon!"); // set the data rate for the SoftwareSerial port mySerial.begin(4800); mySerial.println("Hello, world?"); } void loop() { if (mySerial.available()) { Serial.write(mySerial.read()); } if (Serial.available()) { mySerial.write(Serial.read()); } maestro.setSpeed(1, 20); maestro.setAcceleration(1, 0); // Set the target of channel 0 to 1500 us and channel 1 to 1750 us. maestro.setTarget(1, 2000); maestro.getPosition(1, 2000); // Wait 2 seconds. delay(2000); // Set the target of channel 0 to 1250 us and channel 1 to 2000 us. maestro.setTarget(1, 7000); // Wait 2 seconds. delay(2000); } Korzystam z Arduino Pro Micro i Pololou Maestro Micro 6, w zamierzeniu jest sterowanie serwami za pomocą aplikacji na telefon łączącej się przez moduł bt z arduino, a arduino połączone pinami TX i RX do Pololu RX i TX
  12. Witam. Ostatnio razem z kilkoma kolegami pracujemy nad projektem ramienia robotycznego. Pod względem sprzętowym -ramie jest już gotowe. Niestety ze strony programowej jest trochę (a nawet o wiele) gorzej. Otóż kod przeze mnie napisany jakby nie powoduje komunikacji pomiędzy arduino a pololu maestro. Zaznaczam, że wgrałem bibliotekę pololu, odwiedziłem kilkanaście stron o pololu i kodzie do sterowania serwami z arduino i nic to nie dało. Serwa są dobrze podłączone bo sprawdzałem za pomocą maestro servo control (program do pololu maestro servo controller) i wszystko ładnie działało. Jeśli ktoś ma jakieś doświadczenie z pololu, mógłby się za mną podzielić? Potrzebuje tego kodu na środę - 08.11.2017
  13. Treker zrobiłem sobie krótką przerwę od codziennych kursów elektroniki( zamiast tego musiałem trochę podciągnąć naukę w szkole itp. no i zamiast kursów elektroniki zacząłem czytać kurs lutowania i zaczynam się powoli brać za arduino 🙂 ) spowodowaną głównie zniechęceniem się do elektroniki przez ten nieszczęsny przerzutnik bistabilny... No ale wróciłem no i zacząłem znowu układać ten układ na płytce stykowej. Oczywiście bez zmian, więc w końcu zacząłem wszystko sprawdzać i interpretować fakty. Wywnioskowałem że coś jest nie tak z tranzystorami. Wpisałem w google ich nazwę... i po odczytaniu danych tych tranzystorów co kupiłem poszedł taki siarczysty facepalm że aż został ślad na kilka minut ( nie no żart) . Okazało się że kupiłem pnp zamiast npn. Tak jak mi radziłeś - trzeba było wcześniej wszystko dokładnie sprawdzić... We wtorek lecę do sklepu po prawidłowe tranzystory i kończę ten przerzutnik... w końcu 🙂
  14. Witam! Otóż zrobiłem ten ostatni układ (przerzutnik bistabilny) zgodnie ze schematem i mi nie działa ( a przynajmniej częściowo). W związku z tym zacząłem kombinować z tym układem , a kiedy się poddałem zerknąłem na zdj. w komentarzu z gotowym układem (shaslyk135) i zrobiłem ten układ identycznie (jedynie zamiast tych zworek dałem zwykłe przewody) i efekt jest taki sam jak wcześniej, tzn.: po podłączenie zasilania nic się nie dzieje, po wciśnięciu przycisku "1" zapalają się obie diody, jak puszcze przycisk to od razu gasną, tak samo jest w przypadku przycisku "2", a jeżeli podczas trzymania jednego przycisku nacisnę drugi to jedna z diod się świecie jaśniej (ale tylko na czas trzymania tego drugiego przycisku). Proszę o pomoc lub jakieś wskazówki ponieważ nie chcę tak zostawić tej pracy a nie mam pomysłu co może być nie tak.
×
×
  • 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.