| RcClub.eu https://rcclub.eu/ |
|
| Aaaa , coptery dwa https://rcclub.eu/viewtopic.php?f=21&t=9596 |
Strona 5 z 7 |
| Autor: | Addriano1 [ czwartek, 18 stycznia 2018, 19:47 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Hubert a masz może taką na dorsza? Dobrze by było żeby była już z kołowrotkiem. Plizzzz Wysłane z mojego HUAWEI VNS-L21 przy użyciu Tapatalka |
|
| Autor: | Ellipsis [ czwartek, 18 stycznia 2018, 19:51 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
No ilu wędkarzy się znalazło, zaraz zaczną jeszcze łódki zanętowe składać... |
|
| Autor: | Addriano1 [ czwartek, 18 stycznia 2018, 19:53 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Ellipsis napisał(a): No ilu wędkarzy się znalazło, zaraz zaczną jeszcze łódki zanętowe składać... Ty mi łódki nie przypominaj ![]() Wysłane z mojego HUAWEI VNS-L21 przy użyciu Tapatalka |
|
| Autor: | piotrek75 [ czwartek, 18 stycznia 2018, 20:22 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Hubert w pełni rozumiem Twoją historię o wędce I tak dzięki Tobie i reszcie Kolegów wiele się nauczyłem, po prostu mam zbyt wiele na głowie , myśl goni myśl i nie mam szans się skupić żeby ogarnąć ten temat od A do Z. Ok ale dość biadolenia, wracam do tematu który mnie męczy. Hubercie w programie sonaru pin 13 który jest przypisany do leda służy do sygnalizowania otwarcia podwozia i jest powiązany z programem, natomiast mi chodzi o to żebym mógł wkleić do tego programu dodatkowo 4 x blinka i ustawić sobie na nim mruganie ledów na ramionach coptera. Chodzi mi po prostu o to żeby nie dokładać dodatkowego sterownika do ledów tylko wykorzystać już arduino ,które sterować będzie podwoziem, tym bardziej , że zostają wolne piny do wykorzystania. Tak jak mówiłem, w ogóle nie będzie to powiązane z odbiornikiem i całe pudełko chcę uruchamiać pstrykiem. Jeśli chodzi o zasadność tej kombinacji , to tłumaczę co chcę osiągnąć: 1) Estetyka (mniej kabli, mniejsza ilość sterowników, mniejszy burd... na center plat) 2) Praktyka (podczas konfiguracji na stole np. Nazy mam możliwość bez rozłączania gimbala, fpv je wyłączyć pstryczkiem, co to daje? - nie grzeje mi się nadajnik fpv - nie pomylę po raz trzeci się i nie podepnę odwrotnie gimbala - mogę do konfiguracji włączyć sam gimbal czyli jednym słowem wygoda) 3) Montaż (zawieszę to pudełko pod copterem z tyłu na orginalnych zawiesiach Tarota , więc będę mieć wszystko w jednym miejscu z wygodnym dostępem i w razie awarii któregoś z elementów nie będę musieć rozbierać pół coptera żeby coś wymienić) I w zasadzie to wszystko i tylko przez zacięcie z tym programem mam problem bo nie mogę przygotować płytki, bo do końca nie wiem czy da się to zaprogramować tak jak napisałem wyżej czy nie. ed Śmiejcie się śmiejcie, a ja tu białej gorączki dostaję , jak do wekendu nie zrobię tego coptera to mnie żona z gratami wypieprzy do zimnego warsztatu i wtedy na pewno narobię, ale wiecie gdzie |
|
| Autor: | Ellipsis [ czwartek, 18 stycznia 2018, 22:22 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Kod: /*
Written by ediblefly 2015 Inspired by Benbojangles 2015 Written for Tarot TL65B44 copter landing gear to set trigger altitude change "int trigger_altitude" to your desired alt itude in cm The circuit: *HC-SR04 Vcc connection attached to +5V Arduino *HC-SR04 GND connection attached to gnd Arduino *HC-SR04 Trig connection attached to pin 7 *HC-SR04 Echo connection attached to pin 8 *Sonar to APM connection is not active and will be developed in future versions of the script This example code is in the public domain. */ #include <Servo.h> #include <Average.h> #define CNT 10 //defines the size of the floating array used for averaging //bigger the size: better averaging, very big arrays will cause long delays at the startup Average<long> sonarRead(CNT); Servo myservo; // create servo object to control a servo const int pos1 = 15; // variable to store the servo position const int pos2 =90; // not used const int pos3 = 165; // variable to store the servo position //data Pin number of the Arduino: const int pingPin = 7; //trigger pin for HC-SR04 sonar unit const int echoPin = 8; //echo pin for HC-SR04 sonar unit const int sonarToAPM = 3; //reserved for future use int ledPin = 13; //LED connected to digital pin 13 doubled by the onboard LED int LED_1 = 2; //new LED strip no 1 int LED_2 = 3; //new LED strip no 2 int LED_3 = 4; //new LED strip no 3 int LED_4 = 5; //new LED strip no 4 int trigger_altitude = 19; //here we define the height in cm that we want to trigger boolean IsGearDown = false; int countLand = 0; int countTakeOff = 0; int attemptsL = 2; //change for acceptable number of falsepositives on landing int attemptsTO = 4; //change for acceptable number of falsepositives on TakeOff long CutOffDist = 1000; //cutoff dostance, this is usefull to cut off extreme values //additional mechanism of averaging void setup() { // initialize serial communication: Serial.begin(9600); myservo.attach(9); // attaches the servo on pin 9 to the servo object pinMode(ledPin, OUTPUT); // sets the digital pin as output pinMode(LED_1, OUTPUT); pinMode(echoPin, INPUT); pinMode(pingPin, OUTPUT); pinMode(sonarToAPM, OUTPUT); } void loop() { //distance in centimeters: long duration, cm; // The sensor is triggered by a HIGH pulse of 2 or more microseconds. // Give a short LOW pulse beforehand to ensure a clean HIGH pulse: digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW); //fill the array for data averaging int i; //for(i=0; i<CNT; i++) //{ // The same pin is used to read the signal from the sensor: a HIGH // pulse whose duration is the time (in microseconds) from the sending // of the ping to the reception of its echo off of an object. duration = pulseIn(echoPin, HIGH); // convert the time into a distance cm = microsecondsToCentimeters(duration); Serial.print(cm); Serial.print("cm-real"); Serial.println(); if (cm < trigger_altitude) { sonarRead.push(1); } else { sonarRead.push(0); } delay(200); //} cm = sonarRead.mode(); //Serial.println(sonarRead.mode()); //mode(sonarRead, CNT); Serial.print(CNT); Serial.print(""); Serial.println(); Serial.print(cm); Serial.print(""); Serial.println(); if (cm == 1) { digitalWrite(ledPin, HIGH); // sets the LED on if (countLand < attemptsL) { countLand ++; } else if (IsGearDown == false) { myservo.write(pos1); countLand = 0; countTakeOff = 0; IsGearDown = true; //Gear is Out - Landing } delay(15); } else if (cm == 0) { digitalWrite(ledPin, LOW); digitalWrite(LED_1, millis()>>9 &1); // for circa about 2Hz blinking digitalWrite(LED_2, millis()>>9 &1); digitalWrite(LED_3, millis()>>9 &1); digitalWrite(LED_4, millis()>>9 &1); if (countTakeOff < attemptsTO) { countTakeOff ++; } else if (IsGearDown == true) { myservo.write(pos3); countTakeOff = 0; countLand = 0; delay(3000); IsGearDown = false; //Gear is retracted - in the air } delay(15); } delay(15); } long microsecondsToInches(long microseconds) { // According to Parallax's datasheet for the sensor, there are // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per // second). This gives the distance travelled by the ping, outbound // and return, so we divide by 2 to get the distance of the obstacle. // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf return microseconds / 74 / 2; } long microsecondsToCentimeters(long microseconds) { // The speed of sound is 340 m/s or 29 microseconds per centimeter. // The ping travels out and back, so to find the distance of the // object we take half of the distance travelled. return microseconds / 29 / 2; } |
|
| Autor: | piotrek75 [ czwartek, 18 stycznia 2018, 22:36 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Hubert dzięki , proszę jeszcze opisz tylko w kilku słowach gdzie ustawić częstotliwość mrugnięcia na pinach przypisanych do ledów |
|
| Autor: | Ellipsis [ piątek, 19 stycznia 2018, 12:09 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Właśnie wymyśliłem fajną zabawkę na bazie tego urządzenia. Budujemy jakąś postać z ramionami i głową. Na przykład świnkę. W oczy wsadzamy ledy, sonar np w pysk, ramiona sterowane serwem lub dwoma. Ktoś podchodzi a zabawka otwiera ramiona i mruga oczkami. Słodkie prawda? |
|
| Autor: | piotrek75 [ piątek, 19 stycznia 2018, 12:19 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Jeszcze raz WIELKIE DZIĘKI Hubercie działa i nawet fajnie to wymyśliłeś, czyli : - podwozie otwarte ledy nie świecą , świeci tylko led pinu13 i sygnalizuje otwarcie - podwozie zamknięte ledy mrugają , led pinu13 gaśnie Super Załącznik:
Komentarz: podwozie otwarte 1n.jpg [ 94.11 KiB | Przeglądane 2203 razy ] Załącznik:
Komentarz: lecimy podwozie zamknięte 2n.jpg [ 87.7 KiB | Przeglądane 2203 razy ] Teraz mam dużą prośbę , bo na serwie układ działa, natomiast na mechanizm podwozia ani drgnie, już Darek wcześniej mi podpowiedział w którym miejscu zmienić wartości , ale nie wiem na jakie to tu? Average<long> sonarRead(CNT); Servo myservo; // create servo object to control a servo const int pos1 = 15; // variable to store the servo position const int pos2 =90; // not used const int pos3 = 165; // variable to store the servo position Drugą kwestią jest sterowanie częstotliwością mrugnięć led , też mniej więcej orientuję się że robi się to tu: { digitalWrite(ledPin, LOW); digitalWrite(LED_1, millis()>>9 &1); // for circa about 2Hz blinking digitalWrite(LED_2, millis()>>9 &1); digitalWrite(LED_3, millis()>>9 &1); digitalWrite(LED_4, millis()>>9 &1); if (countTakeOff < attemptsTO) ale też nie wiem jakie wartości wpisać. Na razie jak pewnie zauważyliście próby robię na Uno, jest po prostu wygodniej. Teraz idę próbować na Pro Mini ED Super pomysł ED2 Ledy ogarnięte ED3 Jak bym nie zmienił wartości przy serwie nie działa |
|
| Autor: | piotrek75 [ piątek, 19 stycznia 2018, 13:38 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Sorry że piszę post pod postem, ale potrzebuję pomocy w ustawieniu wartości do otwierania i zamykania tego nieszczęsnego podwozia, a edytowanie poprzedniego postu ... sami wiecie. Zmieniałem dane w tym miejscu const int pos1 = 15; // variable to store the servo position const int pos2 =90; // not used const int pos3 = 165; // variable to store the servo position niestety nie przynosi to żadnych rezultatów i o ile serwomechanizm działa wyśmienicie i zmiany powodują tylko albo odwrócenie działania , albo zmniejszenie konta ruchu ramienia o tyle mechanizm podwozia ani drgnie. Chciałbym już zacząć robić płytkę i docelowo cały power box , ale nie mając sprawdzonego układu nie chcę zaczynać. Proszę pomóżcie bo kurde nigdy tego nie skończę. Ps Hubert , oczami wyobraźni widzę jak właśnie robisz świnkę |
|
| Autor: | Ellipsis [ piątek, 19 stycznia 2018, 13:43 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Pokaż to podwozie może tam nie ma serwa? A jakiś silnik dc? |
|
| Autor: | piotrek75 [ piątek, 19 stycznia 2018, 13:49 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Hubert typowe copterowe podwozie nie robię zdjęcia tylko http://rc-planeta.pl/pl/podwozia-i-nogi ... 614mm.html będzie prędzej |
|
| Autor: | Ellipsis [ piątek, 19 stycznia 2018, 14:26 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Czy mechanizm podwozia działa po podpieciu do niego testera serw? |
|
| Autor: | piotrek75 [ piątek, 19 stycznia 2018, 14:27 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Tak przed chwilą sprawdziłem |
|
| Autor: | Ellipsis [ piątek, 19 stycznia 2018, 14:33 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Czyli problem z masą i przewodem sygnałowym. Masę podłącz do Uno bezpośrednio i wymień przewód ze sterowaniem na inny. |
|
| Autor: | piotrek75 [ piątek, 19 stycznia 2018, 14:44 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Zrobiłem to co kazałeś , niestety dalej to samo , serwo działa , mechanizm nie |
|
| Autor: | Ellipsis [ piątek, 19 stycznia 2018, 15:28 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Czy to podwozie działa jak zwykłe serwo? Tzn można je otworzyć np na 10 stopni, albo na 45, albo na 90? Czy samo się otwiera tylko do skrajnych pozycji? |
|
| Autor: | piotrek75 [ piątek, 19 stycznia 2018, 15:36 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Otwiera się samo do skrajnych pozycji i niema możliwości żeby nim sterować jak serwem to znaczy że np. na testerze serw muszę przekręcić pełen obrót potencjometrem żeby się otwarło bądź zamknęło, jednym słowem po pwm to tak jak by stan niski otwierał, a stan wysoki zamykał lub na odwrót , nie ma neutrum |
|
| Autor: | Ellipsis [ piątek, 19 stycznia 2018, 15:54 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Skoro tak to dlaczego wpisujesz takie wartości dla pos1 i pos3 przecież one nie są nawet w pobliżu min i max serwa. |
|
| Autor: | piotrek75 [ piątek, 19 stycznia 2018, 16:04 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
Hubert bo nie wiem co mam wpisać, te wartości w programie już były po prostu. Jakie powinny być? |
|
| Autor: | Ellipsis [ piątek, 19 stycznia 2018, 18:27 ] |
| Tytuł: | Re: Aaaa , coptery dwa |
To dobre zagadnienie. Masz serwo, wiesz że program z niego korzysta ale nie wiesz co wpisać. Szukamy więc biblioteki odpowiedzialnej za serwa. Gdy ją namierzymy po nazwie: Załącznik: 1.PNG [ 18.93 KiB | Przeglądane 2143 razy ] Musimy znaleźć sposób żeby dowiedzieć się o niej więcej. Klikamy: Szkic => Dołącz bibliotekę => Zarządzaj bibliotekami Załącznik: 2.PNG [ 29.25 KiB | Przeglądane 2143 razy ] Wpisujemy to nazwę biblioteki, wystarczy krótko "servo" a gdy znajdzie klikamy "More info" Załącznik: 3.PNG [ 24.15 KiB | Przeglądane 2143 razy ] Czytamy co ciekawego napisali - najlepiej całość albo... Załącznik: Z menu po prawej wybieramy jedną z funkcji tej biblioteki, którą możemy znaleźć w naszym kodzie (czyli write): Załącznik: 5.PNG [ 6.16 KiB | Przeglądane 2143 razy ] I wiemy wszystko! Załącznik:
|
|
| Strona 5 z 7 | Strefa czasowa: UTC + 1 |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|