
Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-23 15:08



Trenutno gradim RC oddajnik/sprejemnik na osnovi SX1280 RF čipa. Eden od ciljev projekta je, da želim 12 -bitno servo ločljivost od palic vse do servomotorjev. Deloma zato, ker imajo sodobni digitalni servomotorji 12-bitno ločljivost, drugič, vrhunski oddajnik tako ali tako uporablja 12 bitov. Raziskoval sem, kako lahko ustvarim PWM signale visoke ločljivosti na napravah STM32. Trenutno uporabljam črno tableto (STM32F103C8T8) za prototip.
Korak: Seznam delov
Strojna oprema
- Kakršna koli razvojna plošča STM32F103 (modra tableta, črna tableta itd.)
- Napajalnik USB kot vir napajanja
- Programer STM32 (Segger j-links, ST-LINK/V2 ali preprosto klon st-link)
Programska oprema
- STM32CubeMX
- Atolični TrueSTUDIO za STM32
- Vir projekta iz github -a
2. korak: Očitna rešitev



Verjetno najlažja rešitev je uporaba enega od časovnikov, ki lahko ustvarijo signale PWM, na primer TIM1-3 na STM32F103. Za sodoben digitalni servo se lahko hitrost sličic zniža na približno 5 ms, pri starih analognih servomotorjih pa mora biti 20 ms ali 50 Hz. Torej, v najslabšem primeru ustvarimo to. Z 72 MHz uro in 16 -bitno ločljivostjo števca časa moramo nastaviti predkaler časovnika na najmanj 23, da pokrijemo hitrost sličic 20 ms. Izbral sem 24, ker moram potem za 20 ms nastaviti števec točno na 60000. Na posnetkih zaslona si lahko ogledate nastavitev CubeMX ter ustvarjene 1 in 1,5 ms PWM signale. Na žalost je treba števec časovnika za 1 ms nastaviti na 3000, kar bi nam dalo le 11 -bitno ločljivost. Ni slabo, cilj pa je bil 12 -bitni, zato poskusimo še kaj drugega.
Seveda, če bi izbral mikro krmilnik z 32 -bitnim števcem časovnika, na primer STM32L476, je ta ločljivost lahko veliko višja in problem bi bil rešen.
Tukaj pa bi rad predlagal alternativno rešitev, ki bo še povečala ločljivost tudi na STM32F103.
3. korak: Kaskadni časovniki za višjo ločljivost



Glavna težava pri prejšnji rešitvi je, da je hitrost sličic (20 ms) relativno visoka v primerjavi z dejansko ustvarjenim signalom PWM (med 1 in 2 ms), zato zapravljamo nekaj dragocenih bitov za preostalih 18 ms, ko čakamo naslednji okvir. To lahko rešite s kaskadnimi časovniki, ki uporabljajo funkcijo časovne povezave za sinhronizacijo.
Ideja je, da bom uporabil TIM1 kot glavni za ustvarjanje hitrosti sličic (20 ms) in TIM2, TIM3 za obvladovanje signalov PWM kot podrejeni. Ko glavni sproži pomožne enote, le v enem impulznem načinu ustvarijo signal PWM. Zato moram v teh časovnikih pokriti le 2 ms. Na srečo lahko te časovnike uvrstite v strojno opremo, zato ta sinhronizacija ne potrebuje posegov procesorja in je tudi zelo natančna, trepetanje je v območju ps. Na posnetkih zaslona si lahko ogledate nastavitev CubeMX.
Kot vidite, sem za preskalar izbral 3, zato moram za 2 ms v števcu časovnika nastaviti 48000. To nam daje 24000 za 1 ms, kar je pravzaprav več, kar potrebujemo za 14 -bitno ločljivost. Tadaaaa…
Za končni rezultat si oglejte posnetke zaslona osciloskopa v uvodu. Kanal 3 (vijoličen) je prekinitev glavnega časovnika, ki bo sprožil salve za ustvarjanje enega impulza. Kanal 1 in 4 (rumeni in zeleni žarek) sta dejanska signala PWM, ki ju ustvarjata različna časovnika. Upoštevajte, da so sinhronizirani, vendar so sinhronizirani na zadnjih robovih, to je zaradi načina PWM 2. To ni problem, ker je stopnja PWM za določen servo še vedno pravilna.
Druga korist te rešitve je, da bi sprememba hitrosti sličic pomenila spremembo obdobja samo v TIM1. Za sodobne digitalne servomotorje se lahko znižate tudi na 200-300 Hz, vendar se za natančnejšo nastavitev posvetujte s servo priročnikom.
Priporočena:
Števec frekvenc visoke ločljivosti: 5 korakov (s slikami)

Frekvenčni števec visoke ločljivosti: Ta navodila kažejo merilnik vzajemnih frekvenc, ki lahko hitro in z razumno natančnostjo meri frekvence. Narejen je s standardnimi komponentami in ga je mogoče izdelati čez vikend (trajalo je malo dlje :-)) EDIT: Koda je zdaj na voljo
Spletna kamera visoke ločljivosti: 9 korakov (s slikami)

Spletna kamera visoke ločljivosti: Nekaj let sem uporabljal spletno kamero na osnovi RPi (z modulom PiCam). Ustvarjene slike so bile v redu, vendar je bil trenutek, ko s kakovostjo nisem bil več zadovoljen. Odločil sem se narediti spletno kamero z visoko ločljivostjo. Naslednji deli bodo
UChip - Enostavna skica za motorje na daljinskem upravljanju in/ali servomotorje prek radia Tx -Rx na 2,4 GHz!: 3 koraki

UChip - Enostavna skica za motorje na daljinskem upravljanju in/ali servomotorje prek radia Tx -Rx na 2,4 GHz !: Zelo mi je všeč svet RC. Z uporabo igrače z daljinskim upravljalnikom imate občutek, da obvladujete nekaj izjemnega, kljub temu, da gre za majhno ladjo, avto ali brezpilotni letalnik! Vendar pa ni enostavno prilagoditi vaših igrač in jih narediti, da naredijo vse, kar želite
Drobni* Namizni zvočniki visoke ločljivosti (natisnjeni 3D): 11 korakov (s slikami)

Drobni* Namizni zvočniki visoke zvestobe (3D natisnjeno): veliko časa preživim za mizo. To je včasih pomenilo, da sem veliko časa poslušal svojo glasbo skozi grozne pločevinaste zvočnike, vgrajene v računalniške monitorje. Nesprejemljivo! Želel sem pravi, visokokakovosten stereo zvok v privlačnem paketu
Kako dobiti slike visoke ločljivosti iz navodil: 4 koraki

Kako pridobiti slike visoke ločljivosti iz navodil: Ali ste resnično uživali v tej sliki z navodili in želite shraniti njeno kopijo v visoki ločljivosti? To odlično funkcijo zlahka spregledamo