Skocz do zawartości

daniel89

Użytkownicy
  • Zawartość

    44
  • Rejestracja

  • Ostatnio

Reputacja

-1 Słaba

O daniel89

  • Ranga
    3/10

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Ostrowiec
  • Zawód
    technik

Ostatnio na profilu byli

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

  1. BOOT0 jest podciągnięty rezystorem 10-k do masy aby pracował stabilnie. Do zaprogramowania wymagane jest by BOOT0 posiadał stan wysoki więc przełącznikiem wymuszam ten stan wysoki no i rezystor zabezpiecza też by zwarcia nie zrobiło. Na BOOT1 wymagają według noty katalogowej masy więc ją przez rezystor 10k zapewniam. Miałem na tym wyjściu czytać jeszcze stan wysoki i coś w tym przypadku robić ale pozostała sama masa bo wyjść wystarczyło. Też przy pracy "normalnej" procka nie wymagają na tym pinie ani masy ani stanu wysokiego może pozostać luzem więc tak zostawiłem. 10uF jest po to by zapewnić stabilne zasilanie , w nocie pisali o 4,7uF ale spotkałem się ze schematami nawet na tym forum że było 10uF więc raczej to nie powinno mieć wpływu a tylko polepszy stabilność w razie chwilowego obciążenia lini zasilania przez inne urządzenia. Pozostałe schematy chyba niechcąco usunąłem, później dogram jeszcze raz by było lepiej widoczne. Mogę opisać te piny czy dobrze podpiąłem jeśli macie czas to przeanalizować ? PA0 - PA7 - wejścia analogowe do czytania jak nazwa wskazuje czujników KTIR na wewnętrznym przetworniku ADC: (ADC12_IN0...ADC12_IN7). PA8 - wyjście cyfrowe(PWM) na TIM1_CH1 do mostka H. PA9 - złącze TX na USART1_TX PA10 - złącze RX na USART1_RX PA11 - wyjście cyfrowe(PWM) na TIM1_CH4 do mostka H. PA12 - wyjście cyfrowe do zapalenia diody LED1 PA13 - złącze SWDIO do programatora SWD PA14 - złącze SWCLK do programatora SWD PA15- wyjście cyfrowe do zapalenia diody LED2 PC0 - wejście cyforwe - przerwanie od żyroskopu/akcelerometru MPU6050 PC1 - wejście analogowe dla czujnika odległości Sharp na ADC12_IN11 PC2 - wejście analogowe z tachometru 1 na ADC12_IN12 PC3 - wejście analogowe z tachometru 2 na ADC12_IN13 PC4 - wyjście cyfrowe LED3 PC5 - wyjście cyfrowe LED4 PC6 - wyjście cyfrowe do ustalenia pozycji zero w enkoderze1 PC7 - wyjście cyfrowe do ustalenia pozycji zero w enkoderze2 PC8 - wyjście cyfrowe do mostka H (IN1) PC9 - wyjście cyfrowe do mostka H (IN2) PC10 - złącze komunikacyjne TX2 na USART3_TX PC11 - złącze komunikacyjne RX2 na USART3_RX PC12 - wyjście cyfrowe LED5 PC13 - wejście cyfrowe do określenia kierunku z tachometru1 PC14 - wejście cyfrowe do określenia kierunku z tachometru2 PC15 - wejście cyfrowe do stanu załączenia przełącznika PB0 - wejście cyfrowe na TIM3_CH3 do zliczania impulsów R z enkodera1 PB1 - wyjście cyfrowe LED6 PB2 - wejście cyfrowe BOOT1 PB3 - złącze komunikacyjne SWO dla komunikacji SWD PB4 - wejście cyfrowe na TIM3_CH1 do zliczania impulsów A z enkodera1 PB5 - wejście cyfrowe na TIM3_CH2 do zliczania impulsów B z enkodera1 PB6 - wejście cyfrowe na TIM4_CH1 do zliczania impulsów A z enkodera2 PB7 - wejście cyfrowe na TIM4_CH2 do zliczania impulsów B z enkodera2 PB8 - wejście cyfrowe na TIM4_CH3 do zliczania impulsów R z enkodera2 PB9 - wyjście cyfrowe LED7 PB10 - złącze komunikacyjne I2C - SCL (I2C_SCL) PB11 - złącze komunikacyjne I2C - SDA (I2C_SDA) PB12 - wyjście cyfrowe do mostka H 2 (IN1) PB13 - wyjście cyfrowe do mostka H 2 (IN2) PB14 - wejście cyfrowe do odczytu czy DFPLAYER odtwarza w celu informacji zwrotnej z urządzenia PB15 - wyjście cyfrowe LED na TIM1_CH3N w celu włączenia migania diodą w określonej funkcji PD0 - kwarc 8MHz PD1 - kwarc 8MHz PD2 - wyjście cyfrowe LED8 Transil ma Moc rozpraszana 400W , Napięcie wsteczne maks. 17V , Napięcie przebicia 18.9...21V , Struktura półprzewodnika dwukierunkowa . Silnik zasilany z baterii 7,4VDC , pełne nałatowanie 8,4VDC. Maksymalne napięcie na mostku H TB6612FNG to 15VDC. Dobrze dobrany czy lepiej inny? Z początku myślałem by dać taki na 15V , ale ten mostek pewnie przy 17V i tak nie uszkodzi, a uniknę przebicia go, bo rozumiem że takie 8,4V x2 = 16,8VDC jest w zupełności z zapasem ? Silniczek planowany to Pololu HPCB 30:1 6V. Oczywiście mogę nie mieć racji dlatego proszę kto z was użytkował taki silniczek i badał jakie napięcie się indukuje na nim przy nagłej zmianie kierunku obrotów lub hamowaniu o informację to bym był wdzięczny, czy napięcie pozostaje stałe 8,4V ? Bo szczerze to trochę sie zagubiłem z tym.
  2. Tak w kilku aby to było w miarę czytelne. Czy gdzieś popełniłem błąd w połączeniu czy wszystko jest ok ? Transil to P4SMAJ17CA. Resztę raczej widać. To jest sama płyta główna. Poza tym jeszcze płytki enkoderów i czujników, ale tam wiem że jest dobrze więc nie ma potrzeby sprawdzenia. Jakieś uwagi macie do tego ?
  3. daniel89

    Timer w STM32 do sterowania silnika przez PWM

    Ok czyli rozumiem że mogę na spokojnie na PA8 i PA11 STM32F103RBT6 ustawić TIM1_CH1 oraz TIM1_CH4 na PWM i normalnie bez negacji sterować ? Chodzi mi o te kanały CH1-CH4 rozumiem że każdy jest z osobna sterowany i nie ma wymogu czy jest że to ma być CH1 i CH2 np czy dowolnie jaki? Też rozumiem że mogę timery sterować i z negacją i bez , coś mi się rozjaśniło dzięki .
  4. Witam, Mam pytanie odnośnie timerów w STM32F103 . Znalazłem w nocie katalogowej że TIM1 służy do zadawania PWM, ale nie mogę znaleźć informacji jakie kanały powinny to obsługiwać. Może to banalne ale nie rozumiem czy jeśli kanał w nazwie ma N to czym się różni względem tego bez N i na jakich kanałach powinien być sterowany silnik DC przez TB6612. Znalazłem że ktoś podpiął pod TIM1_CH1N oraz TIM1_CH3N , i nie rozumiem czemu pod to z nazwą N i czy można obojętnie który kanał wykorzystać .. U mnie zostały wolne nóżki PA8 i PA11 w stm32f103rbt6, i tam jest TIM1_CH1 oraz TIM1_CH4 , ale bez N i czy można wykorzystać te nóżki do tego mostka H? Jeśli pytam o głupoty to proszę chociaż mi podać literaturę gdzie wyjaśnione są te wszystkie timery jak działaja w tym sterowniku.
  5. daniel89

    Jaki model modułu Bluetooth wybrać?

    Następny mądry Arduinowiec. Ja się tym bawiłem 10 lat temu. Nie po to się pytam o poziomy napięć by coś spalić. To co chcę zrobić jest moją sprawą , zrobię sobie robota bo zawsze co sobie postanowię to robię i tyle w temacie , nie mam zamiaru bawić się arduino kolejny raz. Podepnę sobie moduł bluetooth i sprawdzę dla pewności czy 3,3V na RX oraz TX i nie będzie żadnego problemu dla mnie ale wam trudno co kolwiek powiedzieć tylko się mądrujecie. W datasheet pisze że ten układ na 3,3V pracuje więc tyle powinien wystawić w RX oraz TX, a producent deklaruje że 5V też obsługuje, ale uC już tylko 3,3, więc musi być zgodność napięciowa i tyle w temacie. Już można ten temat zamknąć bo żadnej pożytecznej wiedzy tutaj nie dajecie.
  6. daniel89

    Jaki model modułu Bluetooth wybrać?

    Dalej nie rozumiem Ciebie. UART w logice CMOS pracuje na 3,3V a w logice TTL na 5V. Co mi da jak podepnę do Arduino na 5V , potem się zapląta początkujący i podepnie na 5V i upali STM-a . Tak wiem konwerter poziomów logicznych załatwi sprawę? Tam logika jest na 3,3V . Ten moduł bluetooth pracuje w komunikacji 3,3V i nie potrzeba konwertera napięć. Wgrywając program gotowy na arduino żadnej sprawy tym nie załatwię. Oczywiście jeśli nie znajdę przykładu komunikacji na STM-a to sobie przerobię tą z Arduino , ale tak to dalej nie widzę sensu tracić czas na Arduino i bawieniem się 5V na płytce stykowej. No chyba że mówisz o arduino M0 , ale takiego nie mam. Nie rozumiem sensu bawienia się Arduino i tracąc czas na to chcąc zrobić coś na STMie . Znowu bawienie się na płytce STM-em to kolejna strata czasu chcąc mieć gotowe urządzenie docelowe, to nie programowanie w tym przypadku tylko tworzenie elektroniki i lutowanie .
  7. daniel89

    Jaki model modułu Bluetooth wybrać?

    a co to za problem nauczyć się czegoś na gotowym urządzeniu? Nie ma człowiek tyle czasu by sobie nie wiadomo co i po co ćwiczyć, chyba że Ty masz to gratuluję wyrozumiałości domu rodzinnego. Co do pomocy to tylko prosiłem o informację który moduł jest lepszy do konkretnego zastosowania i dalej widzę HC-05 lub HC-06 bez konkretnego podanego. Widocznie te fora służą tylko oczernianiu i pokazywaniu jaki kto jest mądry. Jak bym wiedział który to bym nie pytał. Zbyt dużo mam na głowie i analizowanie wszystkich datasheetów nie wchodziło w grę jeśli ktoś już tego używał, ale widocznie i tak muszę liczyc tylko na siebie. Już nie pytam o pomoc was bo tylko jakieś pokazywanie że ktoś nie ma pojęcia jest. Sam sobie wybrałem po rozmowie z kolegą HC-06 bo go używał i mi wyjaśnił różnice w przeciwieństwie do was . Żegnam.
  8. daniel89

    Jaki model modułu Bluetooth wybrać?

    Kolego takie rady to sobie daruj .
  9. daniel89

    Jaki model modułu Bluetooth wybrać?

    Dobrze to przynajmniej mi powiedz taki moduł Bluetooth HC-05 czy HC-06 jak podam napięcie zasilania 5VDC to według danych sprzedawcy będzie działać prawidłowo bo od 3,6 do 6V przyjmuje. Tylko nie bardzo rozumiem teraz wyprowadzenia komunikacyjne RX oraz TX, pisze że pracują z 3,3V ale tolerują 5V, więc tego nie rozumiem. Chcę do ARM32F103 podpiąć po RX TX to rozumiem że bezpośrednio bez żadnego konwertera poziomów logicznych? bo widziałem jak ktoś przez konwerter podpinał ale nie pamiętam do jakiego uC. W tym ARM32F103 rozumiem że RX oraz TX pracuje na logice 3,3V ? Jeśli tak to z tego modułu bluetooth jaka komunikacja jest , znaczy po jakim napięciu bym czegoś nie upalił. Też nie wiem czy trzeba tam na tą linię dawać jakieś rezystory czy to tak samo działa ? Szukałem w necie ale pogubiłem się dlatego proszę nie denerwuj się tylko odpowiedz jak możesz.
  10. daniel89

    Jaki model modułu Bluetooth wybrać?

    Wielkie dzięki za wyjaśnienie, czyli rozumiem że modułem slave też odbiorę dane z czujników i będę mógł je zapisać w pamięci tak? Co do modułów BLE to na forum robotyki amatorskiej kilka osób odradzało BLE że to inny standard przesyłu jest ,przez co rozłącza połączenia z telefonem i radzili kupno tam hc-05 . Rozumiem że jak mi tylko slave potrzebny bo telefonem połāczę się z robotem to najkorzystniejszy będzie HC-06? On faktycznie ma mniejszy pobôr od HC-05? Wiesz mi zależy na mniejszyn pobobrze ze względu na miniaturyzacje i zastosowanie stabilizatorów na max800mA a jest sporo już tam na 3.3v podpięte no i oczywiście bateria chodź odrobinę odetchnie. Chyba że jakiś inny bluetooth może godny polecenia, bo wiesz ja na razie mało o tym wiem co jest najkorzystniejsze, bo może warto odrobinę dopłacić? Też był bym wdzięczny za jakiś delikatny opis takiego modułu co on konkretnie potrafi i jak go prawidłowo podpiąć.
  11. Witam, Jaki model Bluetooth polecacie i dlaczego? Z opisów w internetach odradzają wersji BLE, więc z tańszych mam do wyboru HC-05 , HC-06 ZS-040, HC-05 v2, jaki z tych jest dobry , chyba że inny polecicie. Wymagania to oczywiście jak najmniejsze zużycie prądu. Chciałbym wysyłać i odbierać informację komunikując się ze smartfonem, a sterując robotem jeżdżącym. Zakres oczywiście 10 metrów wystarczy, a podłączony ma być do STM32F103. Jeszcze jak by ktoś był uprzejmy i wytłumaczył mi czym się różnią konkretne wersje i czy wystarczy moduł SLAVE czy potrzeba MASTER/SLAVE?
  12. Cześć, Ktoś z was tworzył może bibliotekę do AM4096 w Eagle 9.2.2 . Jeśli tak to może się podzielić ? Przy okazji jeśli ktoś posiada bibliotekę do mocowania silnika Pololu z osią tylną to był bym wdzięczny jak by udostępnił, bo te podane przez administratora nie działają u mnie w Eagle 9.2.2.
  13. daniel89

    Enkodery magnetyczne, minimalna odległość.

    @adriano Mam pytanie do Ciebie w wersji Eagle 9.2.0 skąd masz biblioteki do silnika z mocowaniem Pololu, możesz to udostępnić ? Zależało by mi na silniku z tylną osią ale bez tego elementu magnetycznego bo inny chcę zastosować.
  14. Czemu w tym kodzie jak ustawię wielozadaniowość na odległość mniejszą od 10, to program wykonuje i obrót serwem i jedzie do tyłu, a jak ustawię na odległość większą od 30, aby się serwo obracało wraz z jechaniem do przodu, to serwo nie idzie tzn. wykonuje takie impulsy w bok i się cofa na 90stopni.? #include <IRremote.h> #define irPin 10 IRrecv irrecv(irPin); decode_results results; #include <Servo.h> # define SERVO_PIN 12 Servo servo; byte stan = 0; byte angle = 0; unsigned long servo_time = millis() + 20; unsigned long silnik_time = millis() + 500; // unsigned long pilot_time = millis() + 200; #define trig 2 #define echo 3 int pwmMotorA=5; int InMotorA1=7; int InMotorA2=4; int pwmMotorB=11; int InMotorB1=9; int InMotorB2=8; int pwm; void setup() { irrecv.enableIRIn(); servo.attach(SERVO_PIN); pinMode(pwmMotorA, OUTPUT); pinMode(pwmMotorB, OUTPUT); pinMode(InMotorA1, OUTPUT); pinMode(InMotorA2, OUTPUT); pinMode(InMotorB1, OUTPUT); pinMode(InMotorB2, OUTPUT); pinMode (trig, OUTPUT); pinMode (echo, INPUT); } void loop() { unsigned long time = millis(); // if (time >= pilot_time){ if (irrecv.decode(&results)) { switch (results.value) { case 0x1D00B946: stan=!stan; break; } irrecv.resume(); // pilot_time = time + 200; } int duration, distance; digitalWrite( trig, LOW); delayMicroseconds (2); digitalWrite (trig, HIGH); delayMicroseconds(10); digitalWrite (trig, LOW); duration = pulseIn(echo, HIGH); distance = (duration/2) / 29.1; if (time >=silnik_time && distance<=30 && distance>10 && stan==1) { servo.write(angle=90); analogWrite(pwmMotorA, 225); digitalWrite(pwmMotorB, LOW); digitalWrite(InMotorA1, LOW); digitalWrite(InMotorA2, HIGH); digitalWrite(InMotorB1, LOW); digitalWrite(InMotorB2, LOW); silnik_time = time + 500; } if (time >= servo_time && stan==1 && distance<=10 ) { servo.write(angle); angle+=1; if (angle > 180) angle = 0; servo_time = time + 20; } if (time >= silnik_time && stan==1 && distance<=10 ) { for (pwm=0; pwm <=225 ; pwm=pwm+5){ analogWrite(pwmMotorA, pwm); analogWrite(pwmMotorB, pwm); digitalWrite(InMotorA1, HIGH); digitalWrite(InMotorA2, LOW); digitalWrite(InMotorB1, HIGH); digitalWrite(InMotorB2, LOW);} silnik_time = time + 500; } if( stan==0){ digitalWrite(pwmMotorB,LOW); digitalWrite(pwmMotorA,LOW); servo.write(angle=90); } if (distance > 30 && time >=silnik_time && stan==1) { servo.write(angle=90); digitalWrite(pwmMotorA,1); digitalWrite(pwmMotorB,1); digitalWrite(InMotorA1, LOW); digitalWrite(InMotorA2, HIGH); digitalWrite(InMotorB1, LOW); digitalWrite(InMotorB2, HIGH); silnik_time = time + 500;} }
  15. Z tymi wewnętrznymi timerami sobie nie mogę poradzić, gdyż po ustawieniu danej wartości i tak mi przerwanie działa tylko co 3 sekundy , ale za to udało mi się napisać ten program na milsach , zdefiniowanych jako timery Arduino IDE. także już ten robocik jeździ mniej więcej tak jak chciałem. Do pełni szczęścia muszę jeszcze rozgryźć ustawienia tych timerów także jakby ktoś miał jakiś pomysł to proszę pisać śmiało .
×