Skocz do zawartości

cesiek

Użytkownicy
  • Zawartość

    33
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

cesiek wygrał w ostatnim dniu 1 sierpnia 2013

cesiek ma najbardziej lubianą zawartość!

Reputacja

5 Neutralna

O cesiek

  • Ranga
    3/10
  • Urodziny 24.01.1960

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Zyrardów
  • Zainteresowania
    Robotyka

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Wita wszystkich Mam problem z zasilaniem swojego robota , jak dotąd zasilanie było z pakietu akumulatorków AA, , ale chciałbym zmienić na Lipo, 12V , i tu mam pytanie i zarazem prożbę o podanie odpowiedniego modelu akumulatorka i dostosowanej do niego ładowarki , bardzo proszę o podanie konkretnego modelu w/w , i jeszcze jedno - aby nie uszczuplić za bardzo budżetu. Za pomoc z góry bardzo dziekuję.
  2. cesiek

    Robot balansujacy - problem z programem

    Witam No to żeś pomógł - dzieki
  3. Witam , buduje pierwszego robota balansującego na bazie Arduino Nano i MPU 6050 , część mechaniczna jest już zrobiona , ale program który znalazłem w necie przy pompilacji wywala błąd w linii zaznaczonej w podanym niżej programie , nie mogę z tym sobie poradzić więc proszę o pomoc i z góry dziękuję. Pozdrawiam #include #include #include "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif #define MIN_ABS_SPEED 20 MPU6050 mpu; // MPU control/status vars bool dmpReady = false; // set true if DMP init was successful uint8_t mpuIntStatus; // holds actual interrupt status byte from MPU uint8_t devStatus; // return status after each device operation (0 = success, !0 = error) uint16_t packetSize; // expected DMP packet size (default is 42 bytes) uint16_t fifoCount; // count of all bytes currently in FIFO uint8_t fifoBuffer[64]; // FIFO storage buffer // orientation/motion vars Quaternion q; // [w, x, y, z] quaternion container VectorFloat gravity; // [x, y, z] gravity vector float ypr[3]; // [yaw, pitch, roll] yaw/pitch/roll container and gravity vector //PID double originalSetpoint = 175.8; double setpoint = originalSetpoint; double movingAngleOffset = 0.1; double input, output; int moveState=0; //0 = balance; 1 = back; 2 = forth double Kp = 50; double Kd = 1.4; double Ki = 60; PID pid(&input, &output, &setpoint, Kp, Ki, Kd, DIRECT); ??????? to ta linia z błędem double motorSpeedFactorLeft = 0.6; double motorSpeedFactorRight = 0.5; //MOTOR CONTROLLER int ENA = 5; int IN1 = 6; int IN2 = 7; int IN3 = 8; int IN4 = 9; int ENB = 10; LMotorController motorController(ENA, IN1, IN2, ENB, IN3, IN4, motorSpeedFactorLeft, motorSpeedFactorRight); //timers long time1Hz = 0; long time5Hz = 0; volatile bool mpuInterrupt = false; // indicates whether MPU interrupt pin has gone high void dmpDataReady() { mpuInterrupt = true; } void setup() { // join I2C bus (I2Cdev library doesn't do this automatically) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); TWBR = 24; // 400kHz I2C clock (200kHz if CPU is 8MHz) #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif // initialize serial communication // (115200 chosen because it is required for Teapot Demo output, but it's // really up to you depending on your project) Serial.begin(115200); while (!Serial); // wait for Leonardo enumeration, others continue immediately // initialize device Serial.println(F("Initializing I2C devices...")); mpu.initialize(); // verify connection Serial.println(F("Testing device connections...")); Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed")); // load and configure the DMP Serial.println(F("Initializing DMP...")); devStatus = mpu.dmpInitialize(); // supply your own gyro offsets here, scaled for min sensitivity mpu.setXGyroOffset(220); mpu.setYGyroOffset(76); mpu.setZGyroOffset(-85); mpu.setZAccelOffset(1788); // 1688 factory default for my test chip // make sure it worked (returns 0 if so) if (devStatus == 0) { // turn on the DMP, now that it's ready Serial.println(F("Enabling DMP...")); mpu.setDMPEnabled(true); // enable Arduino interrupt detection Serial.println(F("Enabling interrupt detection (Arduino external interrupt 0)...")); attachInterrupt(0, dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus(); // set our DMP Ready flag so the main loop() function knows it's okay to use it Serial.println(F("DMP ready! Waiting for first interrupt...")); dmpReady = true; // get expected DMP packet size for later comparison packetSize = mpu.dmpGetFIFOPacketSize(); //setup PID pid.SetMode(AUTOMATIC); pid.SetSampleTime(10); pid.SetOutputLimits(-255, 255); } else { // ERROR! // 1 = initial memory load failed // 2 = DMP configuration updates failed // (if it's going to break, usually the code will be 1) Serial.print(F("DMP Initialization failed (code ")); Serial.print(devStatus); Serial.println(F(")")); } } void loop() { // if programming failed, don't try to do anything if (!dmpReady) return; // wait for MPU interrupt or extra packet(s) available while (!mpuInterrupt && fifoCount < packetSize) { //no mpu data - performing PID calculations and output to motors pid.Compute(); motorController.move(output, MIN_ABS_SPEED); } // reset interrupt flag and get INT_STATUS byte mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus(); // get current FIFO count fifoCount = mpu.getFIFOCount(); // check for overflow (this should never happen unless our code is too inefficient) if ((mpuIntStatus & 0x10) || fifoCount == 1024) { // reset so we can continue cleanly mpu.resetFIFO(); Serial.println(F("FIFO overflow!")); // otherwise, check for DMP data ready interrupt (this should happen frequently) } else if (mpuIntStatus & 0x02) { // wait for correct available data length, should be a VERY short wait while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount(); // read a packet from FIFO mpu.getFIFOBytes(fifoBuffer, packetSize); // track FIFO count here in case there is > 1 packet available // (this lets us immediately read more without waiting for an interrupt) fifoCount -= packetSize; mpu.dmpGetQuaternion(&q, fifoBuffer); mpu.dmpGetGravity(&gravity, &q); mpu.dmpGetYawPitchRoll(ypr, &q, &gravity); #if LOG_INPUT Serial.print("ypr\t"); Serial.print(ypr[0] * 180/M_PI); Serial.print("\t"); Serial.print(ypr[1] * 180/M_PI); Serial.print("\t"); Serial.println(ypr[2] * 180/M_PI); #endif input = ypr[1] * 180/M_PI + 180; } } __________ Komentarz dodany przez: Treker Kody programów należy umieszczać przez narzędzie KOD (znajdziesz je w edytorze pod ikonką ""). Dzięki niemu składania programów jest automatycznie kolorowana, a wtedy wszystkim znacznie łatwiej analizować wklejone programy. Proszę to poprawić - z góry dziękuję za zrozumienie i pomoc przy utrzymaniu porządku na forum.
  4. Witam Chciałbym się podzielić uwagami na temat zawodów , w Opolu , ale dotycz to wszystkich organizowanych imprez tego typu , gro konstrukcji w kategorii Freestyle jest prezentowana przez ekipy z ośrodków akademickich , sponsorowanych od początku do końca przez uczelnie, przejazdy i inne nakłady finansowe , są też sponsorowane. Ja jako osoba prywatna startując w tej kategorii z marszu jestem na straconej pozycji , chyba że wymyśle jeszcze raz koło , moje środki nigdy nie dorównają tym z ekip sponsorowanych , ja muszę dojechać na własny koszt , kupić sobie jedzenie itp. Minęły czasy kiedy robiło się coś z niczego . Nie jest to rozgoryczenie z powodu braku nagrody , ale taka jest prawda , wchodząc na zawody można z dużą dozą prwdopodobieństwa określić kto zajmie czołowe lokaty.Proponuję podzielić w/w konkurencję da dwie kategorie , niech uczelnie powalczą między sobą , a ci ,, prywaciarze " jak ja pokarzą na co ich naprawdę stać w odrębnej klasie - według mnie byłoby to sprawiedliwiej .Rozmawiałem na Opolskich zawodach z jednym z zawodników z uczelni Białostockiej i moje tezy się potwierdziły , przejazd , jedzenie i sponsorowanie budowy urządzenia przez uczelnie jest faktem . Mimo to pojechałem , spędziłem miło czas .Proszę o wypowiedzi na ten temat . Pozdrawiam
  5. cesiek

    Arduino biped - zasilanie

    No to stawiaj to piwo , Twój wywód na temat mojego pytania przypomina mi pisanie powieści , jak na tak (przyznaje ) krótkie pytanie można prowadzić takie wywody.Mój biped istnieje naprawdę i to nie na papierku , czy komputerze , do tej pory popełniłem kilka maszyn , i byłem z nimi na zawodach i zajmowałem miejsca na pudłach , a że tego rodzaju robot jet pierwszym to z tąd to pytanie , i to forum gdzie takowe można zadać
  6. cesiek

    Arduino biped - zasilanie

    Terminem serwo standardowe określiłem to że nie jet micro serwo, a pytanie brzmi jakie baterie / akumulatory zastosować i gdzie można takowe nabyć.
  7. Witam , mam pytanie odnośnie zasilania bipeda zbudowanego na bazie arduino.Maszyna ma 6 serw standard .Chodzi mi o zasilanie elektroniki i serw , i oczywiście małą masę. Za zainteresowanie i ewent. odpowiedż z góry dziękuję.
  8. Witam, kupię części , lub kompletnego , zepsutego iIDROIDA 01 , TEL. 660-631-422
  9. Witam wszystkich , mam pytanie czy nie wybiera się ktoś z Warszawy na te zawody samochodem , chetnie dorzucę sie do paliwa tel. 660-631-422
  10. Witam wszystkich , mam prożbę o pomoc w przeróbce programu do mojego robota, w założeniu ma on jechać do przodu, zatrzymywać się na około 3-4 sekundy po zobaczeniu przeszkody , zmienić kierunek.Problem jest taki że napęd jest zrealizowany na jednym silniku, a czujnik podczerwieni znajduje się na obracanej platformie( która powinna się się obrócić z w/w czujnikiem) którą napędza drugi silnik.Chodzi o to aby czujnik współpracował z jednym , jak i z drugim silnikiem , nie wiem jak to zrobić programowo.W podanym szkicu oba silniki występują jako napędowe . Podaje szkic programu do przeróbki i liczę na pomoc i z góry dziękuję. int pwm1 = 6; int pwm2 = 5; int kierunek1 = 7; int kierunek2 = 4; int buzzPin = 3; //Connect Buzzer on Digital Pin3 int czujnik = 2; int dioda= 4; boolean MA = false; void Silnik1(int predkosc, boolean kierunek) { analogWrite(pwm1, predkosc); //set pwm control, 0 for stop, and 255 for maximum speed if(kierunek) digitalWrite(kierunek1,HIGH); else digitalWrite(kierunek1,LOW); } void Silnik2(int predkosc, boolean kierunek) { analogWrite(pwm2, predkosc); if(kierunek) digitalWrite(kierunek2,HIGH); else digitalWrite(kierunek2,LOW); } void setup() { int i; for(i=4;i<=7;i++) pinMode(i, OUTPUT); pinMode(dioda, OUTPUT); pinMode(czujnik, INPUT); pinMode(buzzPin, OUTPUT); } void loop () { Silnik1(120, false); Silnik2(120, true); if (!digitalRead(czujnik)) { Silnik1(110, true); Silnik2(120, false); delay(200); Silnik1(100,false); Silnik2(100,false); delay (250); digitalWrite(buzzPin, HIGH); delay(1); digitalWrite(buzzPin, LOW); delay(1); } }
  11. cesiek

    FENIX kroczący robot krab

    Wita, z racji jak pisałem wcześniej jest to moja pierwsza konstrukcja i publikacja, więc i opis może jest niewystarczający , ale postaram się go uzupełnić , napęd jest nie na serwach lecz na silnikach tj. jeden silnik odpowiada za ruch całości drugi nie uruchomiony jeszcze służy do zmiany kierunku , przez obrót części tułowia.Podłączone jest to wszystko do Arduino , przez wspomniane wcześniej shield (sterownik silników 2A).Czujnik podczerwieni to E18-D80NK podłączony do Arduino przez shield I/O , tak jak i czujnik ultradzwiękowy i buzzer.W założeniu robot napotykając na przeszkodę ma się zatrzymać ,wydać dzwięk, odczekać 2-3 sekundy i zmienić kierunek marszu i tu własnie jest jeszcze pole do eksperymentów z kodem .Czekam na pytania na które z chęcią odpowiem.
  12. cesiek

    FENIX kroczący robot krab

    cesiek, Witam, do budowy wykorzystałem robota bojowego kupionego w Anglii , był powystawowy , uszkodzony niekompletny , więc pomysł aby to co było dobre jakoś zagospodarować więc powstał ,,FENIX " , góra jest zdemontowana ( odcięta )- jak go oceniacie z uwagi na nie dokończoną konstrukcję . Jest to moja pierwsza konstrukcja , więc z niepokojem czekam na recenzje.
  13. Witam, chce zaprezentować swojego kroczącego robota ,, FENIX". Zastosowałem ARDUINO UNO + shield O/I i shield motor, zasilanie akumulatorki AA, wykrywanie przeszkody czujnik podczerwieni i ultradzwiękowy (jeszcze nie uruchomiony) .Pozostaje jeszcze uruchomienie drugiego silnika do obrotu korpusu (zmiana kierunku) i buzzera. Kod jaki napisałem jest jeszcze w fazie testów - co widać na filmiku - drganie odnóży.
  14. Witam wszystkich na forum , mam pytanie jak za pomocą Arduino UNO R3 +Arduino Shield L293D wysterować dwa silniki DC. Jeden silnik napędowy , do napędu platformy , drugi do napędu platformy z czujnikiem odległości HC-SR04. Platforma z czujnikiem ma pracować niezależnie od napędu tj. pojazd jedzie do przodu , czujnik wykrywa przeszkodę , główny silnik zatrzymuje się, napęd platformy z czujnikiem skanuje otoczenie ( ruch w prawo i lewo) wybór drogi przez czujnik , dalsza droga całości w dobrą( wolną od przeszkód stronę. I tu pytanie jak to zrealizować za pomocą oprogramowania do Arduino z w/w zestawem. Proszę o pomoc , nie mam pomysłu jak to zrobić , zaczynam dopiero zabawę z oprogramowaniem do Arduino .
  15. Witam wszystkich , mam pytanie odnośnie zasilania płytki ARDUINO, czy mogę ją zasilać z akumulatorka wziętego z zabawki zdalnie sterowanej.Na akumulatorku pisze ze ma 7,5 v.Za odpowiedż z góry dziękuję
×