Skocz do zawartości

aixI

Użytkownicy
  • Zawartość

    782
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    13

Wszystko napisane przez aixI

  1. @ethanak dzięki za odpowiedź. Zmieniłem trochę obecny program, dodałem obsługę przerwania dla drugiego wyjścia enkodera, który jest podpięty do pinu D3 (a nie do pinu D7 jak to było przedtem). Od razu go wrzuciłem na Arduino i włączyłem monitor szeregowy i odczytywałem wartości, tak jak wcześniej dostaje 22 impulsy na jeden obrót wału silnika. Chodzi o to, aby podczas pobierania jej wartości wyłączyć globalne zezwolenie na przerwania "cli()", a później włączyć zezwolenie na globalne przerwania "sei()"? Teraz nawet w funkcji "setup()" nie włączam globalnego zezwolenia na przerwania i chyba jest to błędem, tak? Bloku ATOMIC nigdy nie używałem - coś o tym kiedyś słyszałem, ale nie wiem jak z tego korzystać. Obecny program: #include <Wire.h> // Encoder 1 output A, B to Arduino Interrupt pin 2, 3 #define ENCODER_1_A 2 // D2 INT0 #define ENCODER_1_B 3 // D3 INT1 volatile long counter = 0; // interval for measurements int interval = 25; // Counters for milliseconds during interval long previousMillis = 0; long currentMillis = 0; void setup() { // Setup Serial Monitor Serial.begin(115200); pinMode(ENCODER_1_A, INPUT_PULLUP); pinMode(ENCODER_1_B, INPUT_PULLUP); // Attach interrupt - Syntax: attachInterrupt(digitalPinToInterrupt(pin), ISR, mode) attachInterrupt(digitalPinToInterrupt(ENCODER_1_A), readEncoder0, RISING); attachInterrupt(digitalPinToInterrupt(ENCODER_1_B), readEncoder1, RISING); // Setup initial values for timer previousMillis = millis(); } void loop() { currentMillis = millis(); if (currentMillis - previousMillis > interval) { previousMillis = currentMillis; Serial.print("Position: "); Serial.println(counter, DEC); } } void readEncoder0() { if (digitalRead(ENCODER_1_B) == LOW) counter++; else counter--; } void readEncoder1() { if (digitalRead(ENCODER_1_A) == LOW) counter--; else counter++; }
  2. @atMegaTona czemu zakładasz, że nie przyszło mi to do głowy? Przyszło i to nawet sprawdzałem, z tym że w tym samym momencie miałem "ogólny" problem ze zliczaniem impulsów. Ja pytałem Was jaki jest sposób odczytu. Czy podpinać taki enkoder z dwoma wyjściami do dwóch różnych pinów obsługujących przerwania, czy tylko jedno wyjście do pinu obsługującego przerwania, a drugie wyjście do normalnego pinu cyfrowego? Czy jeszcze jakoś inaczej? W tym momencie mam podłączone jedno wyjście enkodera do pinu D2 - INT0 obsługującego przerwania, a drugie wyjście do zwykłego pinu cyfrowego - D7 - czy taki pomiar impulsów, przy takim podłączeniu jest poprawny? Z moich pomiarów wynika, że tak (wyniki mam praktycznie takie same jak w moim pierwszym poście). No chyba, że można to robić inaczej. Na serial monitorze teraz dostaje wyniki ze znakiem + i -, kręcąc kołem w jedną lub drugą stronę. Jeden obrót wału silnika daje mi 22 impulsy. W tym momencie testuje tylko jeden silnik z enkoderem, stąd definicje w programie: ENCODER_1_A i ENCODER_1_B -> enkoder pierwszego silnika, kanały A i B. Podsyłam kod: #include <Wire.h> #define ENCODER_1_A 2 // D2 INT0 #define ENCODER_1_B 7 // D7 volatile long counter = 0; // interval for measurements int interval = 25; // Counters for milliseconds during interval long previousMillis = 0; long currentMillis = 0; void setup() { // Setup Serial Monitor Serial.begin(115200); pinMode(ENCODER_1_A, INPUT_PULLUP); pinMode(ENCODER_1_B, INPUT_PULLUP); // Attach interrupt attachInterrupt(digitalPinToInterrupt(ENCODER_1_A), readEncoder, CHANGE); // Syntax: attachInterrupt(digitalPinToInterrupt(pin), ISR, mode) // Setup initial values for timer previousMillis = millis(); } void loop() { currentMillis = millis(); if (currentMillis - previousMillis > interval) { previousMillis = currentMillis; Serial.print("Position: "); Serial.println(counter, DEC); } } void readEncoder() { if (digitalRead(ENCODER_1_A) == HIGH) { // found a low-to-high on channel A if (digitalRead(ENCODER_1_B) == LOW) // check channel B to see which way counter++; else counter--; } else { // found a high-to-low on channel A if (digitalRead(ENCODER_1_B) == LOW) // check channel B to see which way counter--; else counter++; } }
  3. Zabawa z enkoderami to pozornie łatwa sprawa jakby się wydawało. Sprawdzałem dalej, to co mi nie grało, czyli ilość impulsów na obrót koła oraz prędkość obrotu koła na minutę (po obliczeniu z dokumentacji silnika) i po moich testach wraz z Arduino. W każdym razie z moich testów wynika, że te silniki jakie mam są z przekładnią 56:1 (a nie 90:1), ponieważ przy 12V i 11-u sygnałach z jednego kanału enkodera na jeden pełny obrót wału silnika przypada mi ~616/618 impulsów - na jeden pełny obrót koła (56 x 11 = 616 według obliczeń). Przy czym dostaje ~170/172 RPM, co jest zbliżone w dokumentacji silnika (podają 56:1 @ 12V - 178RPM). Z kolei przy 6V dostaję wynik ~85RPM, kiedy w dokumentacji podają 100RPM. Z jednej strony nie wiem, co dalej o tym myśleć. Z jednej wygląda dobrze, zaś z drugiej coś nadal jest nie do końca jasne. Poza tym mam parę wątpliwości.. 1. Kiedy posiadam silnik DC i sparowany z nim enkoder kwadraturowy, który posiada dwa wyjścia A i B przesunięte względem siebie o 90°, to mogę wiedzieć, w którą stronę obraca się silnik/koło, czy w prawo, czy w lewo. Ale jaki jest sposób odczytu z takiego enkodera? Czy (załóżmy mam 11 impulsów na każde wyjście), kiedy chce się dowiedzieć, w którą stronę obraca się silnik, to muszę robić pomiar nie z jednego kanału, tylko z dwóch, prawda? Aby, np. dostać wynik ze znakiem + i -. Tylko jak robię pomiary z dwóch kanałów, to czy te 11 impulsów jest stałe dla jednego enkodera/silnika? czy wtedy mam 22 impulsy łącznie? Co za tym idzie łączna wartość impulsów na obrót koła będzie 2x większa? (test @ 12V) PULSES: 1781 SPEED: 172 RPM PULSES: 1781 SPEED: 172 RPM PULSES: 1783 SPEED: 173 RPM PULSES: 1780 SPEED: 172 RPM PULSES: 1784 SPEED: 173 RPM PULSES: 1784 SPEED: 173 RPM PULSES: 1783 SPEED: 173 RPM PULSES: 1783 SPEED: 173 RPM PULSES: 1786 SPEED: 173 RPM PULSES: 1782 SPEED: 173 RPM PULSES: 1783 SPEED: 173 RPM PULSES: 1785 SPEED: 173 RPM PULSES: 1782 SPEED: 173 RPM (test @ 6V) PULSES: 887 SPEED: 86 RPM PULSES: 883 SPEED: 85 RPM PULSES: 887 SPEED: 86 RPM PULSES: 889 SPEED: 86 RPM PULSES: 890 SPEED: 86 RPM PULSES: 890 SPEED: 86 RPM PULSES: 889 SPEED: 86 RPM PULSES: 887 SPEED: 86 RPM PULSES: 886 SPEED: 86 RPM PULSES: 892 SPEED: 86 RPM PULSES: 899 SPEED: 87 RPM PULSES: 891 SPEED: 86 RPM PULSES: 879 SPEED: 85 RPM Oraz kod, na którym testowałem. // Motor encoder output pulse per rotation #define ENC_COUNT_REV 618 // 616 // Encoder output to Arduino Interrupt pin #define ENC_IN 3 // Pulse count from encoder volatile long encoderValue = 0; // One-second interval for measurements int interval = 1000; // Counters for milliseconds during interval long previousMillis = 0; long currentMillis = 0; // Variable for RPM measuerment int rpm = 0; void setup() { // Setup Serial Monitor Serial.begin(9600); // Set encoder as input with internal pullup pinMode(ENC_IN, INPUT_PULLUP); // Attach interrupt attachInterrupt(digitalPinToInterrupt(ENC_IN), updateEncoder, RISING); // Setup initial values for timer previousMillis = millis(); } void loop() { // Update RPM value every second currentMillis = millis(); if (currentMillis - previousMillis > interval) { previousMillis = currentMillis; // Calculate RPM rpm = (float)(encoderValue * 60 / ENC_COUNT_REV); Serial.print("PULSES: "); Serial.print(encoderValue); Serial.print('\t'); Serial.print(" SPEED: "); Serial.print(rpm); Serial.println(" RPM"); encoderValue = 0; } } void updateEncoder() { // Increment value for each pulse from encoder encoderValue++; }
  4. Witaj Marku Oczywiście nie chcę się poddać. Już odpowiadam. Nie widzicie mojego układu, ponieważ jest to (wydaje mi się) prosty układ połączeń silnik+enkoder+Arduino Nano. Wyjścia enkodera (kanały A,B) podłączone mam do pinów Arduino, na których mogę zliczać impulsy - są to D2 oraz D3 (INT0, INT1). Sam enkoder zasilam napięciem 5V, a silnik 12V. Co do samych pomiarów jakie wykonywałem, za obrót wału silnika stanowił mój palec, którym wprawiałem w ruch magnes enkodera, który osadzony jest na wale silnika. Z drugiej strony mam wał wyjściowy z przekładni a na nim zamocowane koło i wycięty z taśmy izolacyjnej wskaźnik oraz kartkę. na której zaznaczyłem krzyżyk, aby mieć jakiś punkt odniesienia. Wrzucam też kod, w którym zliczam tylko impulsy i wysyłam ja na serial monitor, nic więcej. /* * Red Wire - positive power supply of motor(+)(change positive and negative of motor the rotation will change) * White Wire - negative power supply of motor(-)(change positive and negative of motor the rotation will change)) * Yellow Wire - signal feedback (motor one turn has 11 signals) * Green Wire - signal feedback (motor one turn has 11 signals) * Blue Wire - positive of encoder power supply(+)(3.3-5V) * Black Wire - negative of encoder power supply(-)(3.3-5V) */ #define aPin 2 // Pin D2 INT0 #define bPin 3 // Pin D3 INT1 unsigned long lastTimer, timer = 0; int counter = 0; // Loop interval int interval = 25; void setup() { Serial.begin(115200); pinMode(aPin, INPUT_PULLUP); pinMode(bPin, INPUT_PULLUP); // Setting up interrupt attachInterrupt(digitalPinToInterrupt(aPin), ai0, RISING); attachInterrupt(digitalPinToInterrupt(bPin), ai1, RISING); } // Reading quadrature encoder void ai0() { if(digitalRead(bPin)==LOW) counter++; else counter--; } void ai1() { if(digitalRead(aPin)==LOW) counter--; else counter++; } void loop() { timer = millis(); // Main loop function if(timer - lastTimer > interval) { // Print (Serial monitor) Serial.print(counter); Serial.print(" pulses"); lastTimer = timer; } } Oraz przykładowy wynik - koło zamocowane na wale wyjściowym zakręcone ręką w jedną i w drugą stronę. 0 pulses 0 pulses 0 pulses 0 pulses 0 pulses 0 pulses 1 pulses 2 pulses 2 pulses 5 pulses 8 pulses 12 pulses 18 pulses 24 pulses 32 pulses 41 pulses 51 pulses 62 pulses 73 pulses 86 pulses 98 pulses 112 pulses 127 pulses 142 pulses 156 pulses 171 pulses 186 pulses 200 pulses 214 pulses 228 pulses 242 pulses 256 pulses 269 pulses 282 pulses 296 pulses 310 pulses 322 pulses 335 pulses 347 pulses 360 pulses 372 pulses 384 pulses 397 pulses 410 pulses 424 pulses 438 pulses 452 pulses 468 pulses 482 pulses 498 pulses 514 pulses 529 pulses 545 pulses 560 pulses 576 pulses 593 pulses 609 pulses 626 pulses 642 pulses 658 pulses 675 pulses 691 pulses 706 pulses 722 pulses 734 pulses 747 pulses 758 pulses 768 pulses 776 pulses 784 pulses 792 pulses 798 pulses 802 pulses 806 pulses 809 pulses 812 pulses 812 pulses 810 pulses 810 pulses 810 pulses 810 pulses 810 pulses 810 pulses 810 pulses 808 pulses 808 pulses 806 pulses 804 pulses 801 pulses 798 pulses 795 pulses 792 pulses 789 pulses 786 pulses 782 pulses 780 pulses 776 pulses 774 pulses 770 pulses 768 pulses 765 pulses 762 pulses 760 pulses 757 pulses 754 pulses 752 pulses 750 pulses 748 pulses 745 pulses 742 pulses 740 pulses 736 pulses 732 pulses 728 pulses 724 pulses 719 pulses 714 pulses 708 pulses 704 pulses 698 pulses 692 pulses 684 pulses 678 pulses 670 pulses 662 pulses 654 pulses 646 pulses 640 pulses 634 pulses 629 pulses 626 pulses 624 pulses 622 pulses 622 pulses 622 pulses 622 pulses 622 pulses 622 pulses 620 pulses 618 pulses 612 pulses 607 pulses 598 pulses 588 pulses 576 pulses 562 pulses 545 pulses 526 pulses 507 pulses 486 pulses 464 pulses 442 pulses 421 pulses 402 pulses 384 pulses 367 pulses 352 pulses 336 pulses 322 pulses 310 pulses 298 pulses 288 pulses 278 pulses 266 pulses 252 pulses 236 pulses 219 pulses 200 pulses 178 pulses 156 pulses 133 pulses 110 pulses 89 pulses 65 pulses 45 pulses 24 pulses 6 pulses -12 pulses -28 pulses -45 pulses -60 pulses -74 pulses -86 pulses -98 pulses -110 pulses -122 pulses -136 pulses -150 pulses -166 pulses -182 pulses -200 pulses -218 pulses -236 pulses -254 pulses -272 pulses -288 pulses -304 pulses -318 pulses -332 pulses -344 pulses -356 pulses -366 pulses -376 pulses -384 pulses -392 pulses -399 pulses -405 pulses -411 pulses -415 pulses -419 pulses -422 pulses -425 pulses -425 pulses -425 pulses -425 pulses -425 pulses -425 pulses -425 pulses Przy 12V było coś około 108RPM. Ale nie jestem w 100-u% pewny, że dobrze to "zbadałem".
  5. Tak też zrobiłem i wyniki prezentują się następująco: Odczyt tylko z pierwszego kanału enkodera: około 618 imp./obrót wału wyjściowego. Odczyt tylko z drugiego kanału enkodera: około 618 imp./obrót wału wyjściowego. Z kolei odczyt z dwóch kanałów enkodera jednocześnie daje wynik około 1236 imp./obrót wału wyjściowego. Oczywiście te odczyty były robione najdokładniej jak mogłem. Po trzy razy dla jednego kanału i tak samo dla obydwu. Wyniki były za każdym razem prawie takie same. Wyjściowy wał posiada pewien luz. A dla jednego obrotu wału silnika każdy kanał enkodera zlicza 11 impulsów.
  6. Cześć wszystkim. Otóż mam problem z impulsami (a dokładniej z ich odczytem, tudzież wyliczeniem). Chodzi o to, że kupiłem kiedyś dwie sztuki silników JGB37-520 z enkoderem, który ma 11 impulsów na obrót wału silnika na pojedynczym kanale. Ten enkoder ma dwa czujniki Halla i tak jak pisałem wyżej 11 imp. jest dla jednego czujnika. Sam silnik ponoć ma przełożenie 90:1 i 70RPM przy 6V i własnie coś tutaj mi nie gra. Ponieważ po przeliczeniu tych danych dla mojego silnika PPR (Pulses Per Revolution) wynoszą 11x90 = 990 (ewentualnie 22x90=1980). W Arduino IDE odczytuje sygnały z dwóch czujników Halla (sygnały A i B) i na jeden obrót wału silnika zliczone impulsy to 22 -> czyli 11x2 i w serial monitorze odczytuje wartość impulsów na jeden obrót wału wyjściowego z przekładni i mam wynik ~1236 imp./obrót.Więc ten wynik (1236) nie jest równy wyliczeniom z "dokumentacji" mojego silnika. Nie wiem co jest grane, wydaje mi się, że albo silnik nie ma przełożenia 90:1 albo chochlik siedzi gdzieś indziej. Jedno jest pewne - na jeden czujnik Halla przypada 11 impulsów na obrót wału silnika. Robiłem też test odczytu tylko kanału A mojego enkodera i wynik na serial monitorze miałem ~ 618 (połowa 1236, ponieważ odczyt tylko z jednego kanału). Myślę, że to już wszystkie dane. Mam nadzieję, że uda się rozwiązać problem. Podaje link do tabeli silnika. Edit: Zrobiłem prosty test polegający na wyliczeniu RPM za pomocą odczytu jednego kanału enkodera (moje stałe to PPR = 990 -> 11x90 -> gear ratio 90:1) Z obliczeń wyszło mi coś takiego - przykładowe wartości z serial monitora: 1788 pulse / 990 pulse per rotation x 60 seconds = 108 RPM 1787 pulse / 990 pulse per rotation x 60 seconds = 108 RPM 1783 pulse / 990 pulse per rotation x 60 seconds = 108 RPM Wynik to 108 RPM przy 12V, z kolei przy 6V mam 30 RPM..., a powinno być 70 RPM.
  7. @deshipu wydaje mi się, że to może być przyczyną, bo w bibliotece do Eagle tego czujnika chyba został odwrócony o 180* fototranzystor i może kolega podłączył czujnik patrząc na schemat (a nie w oparciu i notę katalogową). Niech sofnir to sprawdzi
  8. Cześć! Jesteś pewny, że dobrze podłączyłeś czujnik? Najlepiej jak pobierzesz sobie .pdf tego czujniczka i dokładnie zobaczysz na zdjęciu, gdzie jest anoda, katoda diody IR oraz gdzie jest kolektor i emiter fototranzystora. Wartości 220R oraz 10k spokojnie wystarczają co poprawnej pracy czujnika. Zapodaj też zdjęcie swojego podłączenia tego czujnika - może będzie prościej pomóc
  9. Chciałbym powiadomić osoby, które borykały (albo nadal borykają) się z problemem poprawnej konfiguracji środowiska "System Workbench for STM32", a konkretniej, gdy program chce pobrać bibliotekę "STM32 Standard Peripheral Libraries" podczas tworzenia projektu. Należy wykonać opisane czynności, które przedstawił kolega Elvis: --------------------------------------------------------------------------------------------------------------- Osobiście sprawdzałem to na platformie x64 i Windows'ie 7 jak i 8.1 z zainstalowaną Javą (najnowszą) x86. Wszystko działa jak powinno, żadnych problemów. Pozdrawiam, Adam.
  10. Powitać! Myślę, że może Ci się przydać taka lektura http://mirekk36.blogspot.com/2012/10/drgania-stykow-to-bajki-wiec-jak-to.html http://mikrokontrolery.blogspot.com/2011/04/przycisk-drgania-stykow-debouncing.html Drgania styków możesz ograniczyć programowo, jak i sprzętowo.
  11. Witam wszystkich. Mam pewien problem, ponieważ nie mogę pobrać (przy tworzeniu nowego projektu - C Project) "Standard Peripheral Library (StdPeriph)". Zaznaczam tą bibliotekę (czarna kropka) i następnie klikam "Download target firmware" i nic :/, a z kolei jak chciałem (tylko aby zobaczyć co się stanie) pobrać tą drugą bibliotekę (Cube HAL), to po wybraniu tej biblioteki i kliknięciu "Download target firmware" zaczęła się pobierać. Ale zatrzymałem to pobieranie, bo według kursu bazujemy na tej pierwszej biblioteczce. Zaznaczam, że próbowałem już z ustawieniami "uruchom jako administrator" i jest tak samo, czyli nie pobiera mi się ta pierwsza biblioteka. Czy ktoś spotkał się z czymś takim? Ewentualnie może ktoś podać link do tej biblioteki i wystarczyłoby ją pobrać osobno i umieścić w jakimś katalogu?? Proszę o wytłumaczenie i pomoc Edit: 18.07.2016 Pobrałem te sterowniki (?) ze strony st - dokładnie to - STSW-STM32143 - to jest to samo co jest opisane podczas kursu STM32 na Forbocie, czyli "STM32_Nucleo_FW_V1.2.1". Rozpakowałem na dysku C, ale nadal przy tworzeniu nowego projektu nie jest to widoczne dla programu System Workbench for STM32. Wydaje mi się, że trzeba umieścić te drivery w odpowiednim katalogu tylko pytanie, "gdzie"? Edit: 19.07.2016 Naprawdę nie da się tego problemu naprawić? Oo :/ Ciągle mam to samo, nic się nie zmieniło kiedy cokolwiek próbowałem zrobić z tym. Jak instalowałem sterowniki do ST-Link'a, to ten programator zainstalował mi się jako "ST-Link Debug", a w kursie było "STMicroelectronics STLink dongle" - jest to jakaś różnica? Jakby co działam na Win 8.1 Pro x64. Pozdrawiam, Adam
  12. Witam. Potrzebuję modułu Bluetooth HC-05. Czekam na propozycje - oczywiście rozsądne ceny. Ogólnie moduł może być używany (niższa cena), ale w pełni sprawny. Pozdrawiam.
  13. Poza tym po co "zawalać" takimi błahymi pytaniami forum, jak można zadać szybkie pytanie na stronie http://diy.szybkiepytanie.pl/ - po to właśnie istnieje ta strona... Pozdrawiam.
  14. Nie, to nie ten moduł, ale kolega, który pisał ten kurs użył BTM-222 i zrobił sobie sam podobny moduł (taki DIY)
  15. Ja jeszcze zapytam kolegi akimata o ten czujnik - dokładnie o jego podłączenie. Sam pokazałeś screena z DS'a tego czujnika i pisze: "BOTTOM VIEW", czyli rysunek pokazuje tak jakby obudowę TO-92 nóżkami do góry. Zawsze możesz pokazać (zrobić zdjęcie) jak masz to fizycznie na płytce podłączone z opisem przewodów - gdzie który idzie. Edit: Jak posiadasz multimetr, to użyj go do sprawdzenia, gdzie masz anodę i katodę. Pozdrawiam.
  16. Witam kolegów. Mam pytanie do kolegi, który założył temat. Czy podłączyłeś pin "STBY" do VCC (+5V), aby włączyć w ogóle układ? I tak ogólnie, aby sprawdzić, czy ogólnie mostek H (układ) działa, to możesz go tak na "sucho" podłączyć do odpowiednich pinów GND, VCC i zobaczyć, czy dany kanał mostka ruszy (Ci silnik). "STBY - należy podciągnąć do VCC aby włączyć układ, stan niski (domyślny) przełącza układ w stan uśpienia (niskiego poboru mocy)"
  17. Kurcze, dziekuje Wam wszystkim, ktorzy glosowali na moja skromna osobe Lepszej wiadomosci i prezentu na 18-te urodziny nie moglbym sobie wymarzyc. Naprawde bardzo dziekuje! PS: Sorki na polskie ogonki, ale pisze szybko z telefou. Pozdrawiam, Adam.
  18. Trzy osoby z największą liczbą punktów. Czy w regulaminie zabawy jest wyjaśnione co w takiej sytuacji trzeba zrobić?
  19. Kurdę, nie mogę się doczekać jak ją skończysz i pokażesz jakiś filmik (+ zdjęcia) z działania. PS: Będziesz malował sklejkę?
  20. To ja dorzucę coś od siebie i swoich doświadczeń * Tak więc, niech wszyscy początkujący (i nie tylko) pamiętają, że istnieją płytki stykowe, na których wstępne projekty dobrze się...hmm...projektuje i sprawdza, czy taka a nie inna konfiguracja jest dobra. Nie polecam lutować na tzw. "pająka", bo pająki... to inna bajka i inne "zwierzaki", które w elektronice, czy robotyce nie powinny mieć miejsca. * Jeżeli zdecydujemy się na płytkę stykową, to na banko trzeba kupić przewody połączeniowe do właśnie tych płytek. Nie kupujcie skrętki, czy czegoś innego równie badziewnego, bo później są problemy, że coś przerywa i pierwsza myśl takiego delikwenta "na pewno coś źle zrobiłem, albo procesor jest zepsuty", czy jeszcze coś innego. Średnica skrętki jest mniejsza niż otworów w płytce stykowej, więc lepiej kupić dedykowane przewody, bądź zrobić je samemu (bo nikt nie powiedział, że nie możesz sam zrobić) z końcówkami goldpinowymi. * Warto też zaznaczyć, że w płytkach stykowych linie zasilania (zazwyczaj po bokach płytki - kolor: niebieski, czerwony), mogą (ale nie muszą) być rozłączone w połowie, dlatego warto tam wpiąć małą zworkę zrobioną z jakiegoś (grubszego niż skrętka) przewodu. Taki mały szczegół, a może na prawdę pomóc, bo czasem okazuje się, że jakimś cudem nie działa druga połowa pewnego projektu. * Mogę też dodać i powiedzieć, że sam laminat (bez miedzi) jest też dobrym materiałem konstrukcyjnym, z którego można wyciąć sobie podwozie (z ang. chassis) swojej platformy tudzież robota. * Dobrym sposobem na dość szybkie i bezproblemowe łączenie elementów jest klej na gorąco "Hot Glue", wystarczy dać kapkę tego kleju w miejsce gdzie chcemy coś przymocować i po problemie. * Jeżeli jesteśmy posiadaczem takiej maszyny jak drukarka 3D (nie koniecznie za grube miliony ), może być taka DIY, to mamy nieograniczoną (no dobrze jesteśmy tylko ograniczeni obszarem roboczym drukarki tudzież stołu drukarki) możliwość projektowania nawet prostego podwozia dla robota (co jest niezmierną satysfakcją dla samego siebie), czy nawet gąsienic dla niego lub prostych rzeczy, które ułatwiają życie w domu (niekoniecznie związane z robotyką). Przy tym przyda nam się taka umiejętność, jak obsługa oprogramowania do projektowania przestrzennego. * Projektując w programie CAD Eagle, gdzie ten program pozwala na maksymalne przybliżenie płytki PCB, które jest niekiedy strasznie mylące i może powodować to później problemy przy trawieniu płytki w zaciszu domu, bo okazało się, że ścieżki są bardzo blisko siebie, a w programie był nawet spory odstęp. No nic, jak na razie wszystko. Myślę, że pomoże to niektórym osobom Jak mi coś najdzie na myśl, to ewentualnie dopiszę. Pozdrawiam, Adam
  21. A jaka jest średnica wału wyjściowego tych silniczków?
  22. Trzymam kciuki za robota Sabre mógłbyś powiedzieć coś więcej o swoich silniczkach? Można takie gdzieś dostać?
  23. Witamy na Forum Fajny nawet Ci wyszedł ten LF'ik. Płytka PCB też schludna - robiłeś ją metodą termotransferu? W czym trawiłeś, wytrawiarka, czy "kuweta"? Mógłbyś napisać jakie to scalaki? (czyżby LM339?) Program pisałeś sam? Korzystałeś z jakiś poradników? Mógłbyś coś więcej napisać o tym? Takie rozwiązanie jest o tyle dobre, bo nie trzeba ciągle podłączać bota do PC i wgrywać program ze zmianami przy regulatorze PD.
  24. Brakuje "_" pomiędzy "stan", a "poprzedni", czyli powinno być "stan_poprzedni".
×
×
  • Utwórz nowe...