STM32-લોગો

STM32F103C8T6 ન્યૂનતમ સિસ્ટમ વિકાસ બોર્ડ

STM32F103C8T6-ન્યૂનતમ-સિસ્ટમ-વિકાસ-બોર્ડ-ઉત્પાદન

ઉત્પાદન માહિતી

STM32F103C8T6 ARM STM32 મિનિમમ સિસ્ટમ ડેવલપમેન્ટ બોર્ડ મોડ્યુલ એ ડેવલપમેન્ટ બોર્ડ છે જે STM32F103C8T6 માઇક્રોકન્ટ્રોલર પર આધારિત છે. તે Arduino IDE નો ઉપયોગ કરીને પ્રોગ્રામ કરવા માટે રચાયેલ છે અને તે ESP32 અને ESP8266 જેવા વિવિધ Arduino ક્લોન્સ, ભિન્નતા અને તૃતીય-પક્ષ બોર્ડ સાથે સુસંગત છે.

બોર્ડ, જેને બ્લુ પીલ બોર્ડ તરીકે પણ ઓળખવામાં આવે છે, તે Arduino UNO કરતાં લગભગ 4.5 ગણી વધુ આવર્તન પર કાર્ય કરે છે. તેનો ઉપયોગ વિવિધ પ્રોજેક્ટ્સ માટે થઈ શકે છે અને TFT ડિસ્પ્લે જેવા પેરિફેરલ્સ સાથે કનેક્ટ કરી શકાય છે.

આ બોર્ડ સાથે પ્રોજેક્ટ બનાવવા માટે જરૂરી ઘટકોમાં STM32 બોર્ડ, FTDI પ્રોગ્રામર, કલર TFT ડિસ્પ્લે, પુશ બટન, સ્મોલ બ્રેડબોર્ડ, વાયર, પાવર બેંક (સ્ટેન્ડ-અલોન મોડ માટે વૈકલ્પિક), અને USB થી સીરીયલ કન્વર્ટરનો સમાવેશ થાય છે.

યોજનાકીય

STM32F1 બોર્ડને 1.8 ST7735-આધારિત રંગીન TFT ડિસ્પ્લે અને પુશ બટન સાથે જોડવા માટે, પ્રદાન કરેલ સ્કીમેટિક્સમાં વર્ણવેલ પિન-ટુ-પિન કનેક્શન્સને અનુસરો.

STM32 માટે Arduino IDE સેટ કરી રહ્યું છે

  1. Arduino IDE ખોલો.
  2. ટૂલ્સ -> બોર્ડ -> બોર્ડ મેનેજર પર જાઓ.
  3. શોધ બાર સાથેના સંવાદ બોક્સમાં, “STM32F1” શોધો અને અનુરૂપ પેકેજ ઇન્સ્ટોલ કરો.
  4. ઇન્સ્ટોલેશન પ્રક્રિયા પૂર્ણ થવાની રાહ જુઓ.
  5. ઇન્સ્ટોલેશન પછી, STM32 બોર્ડ હવે Arduino IDE બોર્ડ સૂચિ હેઠળ પસંદગી માટે ઉપલબ્ધ હોવું જોઈએ.

Arduino IDE સાથે STM32 બોર્ડનું પ્રોગ્રામિંગ

તેની શરૂઆતથી, Arduino IDE એ Arduino ક્લોન્સ અને વિવિધ ઉત્પાદકોની વિવિધતાઓથી લઈને ESP32 અને ESp8266 જેવા તૃતીય-પક્ષ બોર્ડ સુધી તમામ પ્રકારના પ્લેટફોર્મને સમર્થન આપવાની ઈચ્છા દર્શાવી છે. જેમ જેમ વધુ લોકો IDE થી પરિચિત થાય છે, તેઓ વધુ એવા બોર્ડને સમર્થન આપવા લાગ્યા છે જે ATMEL ચિપ્સ પર આધારિત નથી અને આજના ટ્યુટોરીયલ માટે આપણે આવા બોર્ડ્સમાંથી એક જોઈશું. અમે Arduino IDE સાથે STM32-આધારિત, STM32F103C8T6 ડેવલપમેન્ટ બોર્ડને કેવી રીતે પ્રોગ્રામ કરવું તેની તપાસ કરીશું.

STM32F103C8T6-Minimum-System-Development-Board-fig-1

આ ટ્યુટોરીયલ માટે ઉપયોગમાં લેવાતું STM32 બોર્ડ એ STM32F103C8T6 ચિપ-આધારિત STM32F1 ડેવલપમેન્ટ બોર્ડ સિવાય બીજું કોઈ નથી જેને સામાન્ય રીતે તેના PCB ના વાદળી રંગની અનુરૂપ "બ્લુ પિલ" તરીકે ઓળખવામાં આવે છે. બ્લુ પિલ શક્તિશાળી 32-બીટ STM32F103C8T6 ARM પ્રોસેસર દ્વારા સંચાલિત છે, જે 72MHz પર છે. બોર્ડ 3.3v લોજિક સ્તરો પર કાર્ય કરે છે પરંતુ તેની GPIO પિન 5v સહિષ્ણુ હોવાનું પરીક્ષણ કરવામાં આવ્યું છે. જ્યારે તે ESP32 અને Arduino વેરિયન્ટ્સ જેવા WiFi અથવા Bluetooth સાથે આવતું નથી, તે 20KB RAM અને 64KB ફ્લેશ મેમરી ઓફર કરે છે જે તેને મોટા પ્રોજેક્ટ્સ માટે પર્યાપ્ત બનાવે છે. તેની પાસે 37 GPIO પિન પણ છે, જેમાંથી 10નો ઉપયોગ એનાલોગ સેન્સર માટે કરી શકાય છે કારણ કે તેમાં ADC સક્ષમ છે, અન્ય સાથે જે SPI, I2C, CAN, UART અને DMA માટે સક્ષમ છે. લગભગ $3ની કિંમત ધરાવતા બોર્ડ માટે, તમે મારી સાથે સંમત થશો કે આ પ્રભાવશાળી સ્પેક્સ છે. Arduino Uno ની સરખામણીમાં આ વિશિષ્ટતાઓનું સંક્ષિપ્ત સંસ્કરણ નીચેની છબીમાં બતાવવામાં આવ્યું છે.

STM32F103C8T6-Minimum-System-Development-Board-fig-2

ઉપરોક્ત સ્પેક્સના આધારે, બ્લુ પિલ જે આવર્તન પર કામ કરે છે તે Arduino UNO કરતા લગભગ 4.5 ગણી વધારે છે, આજના ટ્યુટોરીયલ માટે, ભૂતપૂર્વ તરીકેampSTM32F1 બોર્ડનો ઉપયોગ કેવી રીતે કરવો તે વિશે, અમે તેને 1.44″ TFT ડિસ્પ્લે સાથે જોડીશું અને "Pi" સ્થિરાંકની ગણતરી કરવા માટે તેને પ્રોગ્રામ કરીશું. અમે નોંધ કરીશું કે બોર્ડને મૂલ્ય મેળવવામાં કેટલો સમય લાગ્યો અને તે જ કાર્ય કરવા માટે Arduino Uno જે સમય લાગે છે તેની સાથે તેની સરખામણી કરીએ.

જરૂરી ઘટકો

આ પ્રોજેક્ટ બનાવવા માટે નીચેના ઘટકો જરૂરી છે;

  • STM32 બોર્ડ
  • FTDI પ્રોગ્રામર
  • રંગ TFT
  • બટન દબાવો
  • નાનું બ્રેડબોર્ડ
  • વાયર
  • પાવર બેંક
  • યુએસબી થી સીરીયલ કન્વર્ટર

હંમેશની જેમ, આ ટ્યુટોરીયલ માટે ઉપયોગમાં લેવાતા તમામ ઘટકો જોડાયેલ લિંક્સમાંથી ખરીદી શકાય છે. જો કે તમે પ્રોજેક્ટને સ્ટેન્ડ-અલોન મોડમાં જમાવવા માંગતા હોવ તો જ પાવર બેંકની જરૂર પડશે.

યોજનાકીય

  • અગાઉ જણાવ્યા મુજબ, અમે STM32F1 બોર્ડને પુશ બટન સાથે 1.8″ ST7735 આધારિત રંગીન TFT ડિસ્પ્લે સાથે જોડીશું.
  • પુશ બટનનો ઉપયોગ બોર્ડને ગણતરી શરૂ કરવાની સૂચના આપવા માટે કરવામાં આવશે.
  • નીચેની યોજનામાં બતાવ્યા પ્રમાણે ઘટકોને જોડો.

STM32F103C8T6-Minimum-System-Development-Board-fig-3

કનેક્શન્સને નકલ કરવા માટે સરળ બનાવવા માટે, STM32 અને ડિસ્પ્લે વચ્ચેના પિન-ટુ-પિન કનેક્શન્સ નીચે વર્ણવેલ છે.

STM32 - ST7735

STM32F103C8T6-Minimum-System-Development-Board-fig-4

ફરી એકવાર જોડાણો પર જાઓ તેની ખાતરી કરવા માટે કે બધું જેવું હોવું જોઈએ તે પ્રમાણે છે કારણ કે તે થોડું મુશ્કેલ બની જાય છે. આ સાથે, અમે Arduino IDE સાથે પ્રોગ્રામ કરવા માટે STM32 બોર્ડને સેટ કરવાનું આગળ વધ્યું.

STM32 માટે Arduino IDE સેટ કરી રહ્યું છે

  • Arduino દ્વારા બનાવવામાં આવતાં મોટાભાગના બોર્ડની જેમ, Arduino IDE સાથે બોર્ડનો ઉપયોગ કરી શકાય તે પહેલાં થોડો સેટઅપ કરવાની જરૂર છે.
  • આમાં બોર્ડ ઇન્સ્ટોલ કરવું શામેલ છે file ક્યાં તો Arduino બોર્ડ મેનેજર દ્વારા અથવા ઇન્ટરનેટ પરથી ડાઉનલોડ કરીને અને કોપી કરીને fileહાર્ડવેર ફોલ્ડરમાં s.
  • બોર્ડ મેનેજરનો માર્ગ ઓછો કંટાળાજનક છે અને STM32F1 સૂચિબદ્ધ બોર્ડમાં હોવાથી અમે તે માર્ગ પર જઈશું. Arduino પસંદગી યાદીઓમાં STM32 બોર્ડ માટેની લિંક ઉમેરીને પ્રારંભ કરો.
  • પર જાઓ File -> પસંદગીઓ, પછી આ દાખલ કરો URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) નીચે દર્શાવેલ બોક્સમાં અને ઓકે ક્લિક કરો.

STM32F103C8T6-Minimum-System-Development-Board-fig-5

  • Now go to Tools -> Board -> Board Manager, it will open a dialogue box with a search bar. માટે શોધો STM32F1 and install the corresponding package.

STM32F103C8T6-Minimum-System-Development-Board-fig-6

  • ઇન્સ્ટોલેશન પ્રક્રિયા થોડી સેકંડ લેશે. તે પછી, બોર્ડ હવે Arduino IDE બોર્ડ સૂચિ હેઠળ પસંદગી માટે ઉપલબ્ધ હોવું જોઈએ.

કોડ

  • કોડ એ જ રીતે લખવામાં આવશે જે રીતે આપણે Arduino પ્રોજેક્ટ માટે અન્ય કોઈપણ સ્કેચ લખીએ છીએ, માત્ર એટલો જ તફાવત એ છે કે પિનનો સંદર્ભ આપવામાં આવે છે.
  • આ પ્રોજેક્ટ માટે કોડ સરળતાથી વિકસાવવામાં સક્ષમ થવા માટે, અમે બે લાઇબ્રેરીઓનો ઉપયોગ કરીશું જે STM32 સાથે સુસંગત બનાવવા માટે પ્રમાણભૂત Arduino લાઇબ્રેરીઓના બંને ફેરફારો છે.
  • અમે Adafruit GFX અને Adafruit ST7735 પુસ્તકાલયોના સુધારેલા સંસ્કરણનો ઉપયોગ કરીશું.
  • બંને પુસ્તકાલયો તેમની સાથે જોડાયેલ લિંક્સ દ્વારા ડાઉનલોડ કરી શકાય છે. હંમેશની જેમ, હું કોડનું ટૂંકું ભંગાણ કરીશ.
  • અમે બે પુસ્તકાલયોને આયાત કરીને કોડ શરૂ કરીએ છીએ જેનો અમે ઉપયોગ કરીશું.

STM32F103C8T6-Minimum-System-Development-Board-fig-7

  • આગળ, અમે STM32 ની પિન વ્યાખ્યાયિત કરીએ છીએ જેની સાથે LCD ના CS, RST અને DC પિન જોડાયેલા છે.

STM32F103C8T6-Minimum-System-Development-Board-fig-8

  • આગળ, અમે કેટલાક રંગોની વ્યાખ્યાઓ બનાવીએ છીએ જેથી કરીને કોડમાં તેમના હેક્સ મૂલ્યોને બદલે તેમના નામ દ્વારા રંગોનો ઉપયોગ કરવાનું સરળ બને.

STM32F103C8T6-Minimum-System-Development-Board-fig-9

  • આગળ, અમે પ્રોગ્રેસ બારનો ઉપયોગ કરવા માટે રિફ્રેશ સમયગાળો સાથે બોર્ડ દ્વારા પસાર કરવા ઇચ્છીએ છીએ તે પુનરાવર્તનોની સંખ્યા સેટ કરીએ છીએ.

STM32F103C8T6-Minimum-System-Development-Board-fig-10

  • આ સાથે, અમે ST7735 લાઇબ્રેરીનો એક ઑબ્જેક્ટ બનાવીએ છીએ જેનો ઉપયોગ સમગ્ર પ્રોજેક્ટ દરમિયાન ડિસ્પ્લેનો સંદર્ભ આપવા માટે કરવામાં આવશે.
  • અમે STM32 નો પિન પણ સૂચવીએ છીએ જેની સાથે પુશબટન જોડાયેલ છે અને તેની સ્થિતિને પકડી રાખવા માટે એક ચલ બનાવીએ છીએ.

STM32F103C8T6-Minimum-System-Development-Board-fig-11

  • આ થઈ જવાથી, આપણે void setup() ફંક્શન પર જઈએ છીએ.
  • અમે પિનનો pinMode() સેટ કરીને શરૂઆત કરીએ છીએ જેની સાથે પુશબટન જોડાયેલ છે, પિન પર આંતરિક પુલ-અપ રેઝિસ્ટરને સક્રિય કરીએ છીએ કારણ કે પુશબટન જ્યારે દબાવવામાં આવે ત્યારે જમીન સાથે જોડાય છે.

STM32F103C8T6-Minimum-System-Development-Board-fig-12

  • આગળ, અમે સીરીયલ કોમ્યુનિકેશન અને સ્ક્રીનને પ્રારંભ કરીએ છીએ, ડિસ્પ્લેની પૃષ્ઠભૂમિને કાળી પર સેટ કરીએ છીએ અને ઇન્ટરફેસને પ્રદર્શિત કરવા માટે પ્રિન્ટ () ફંક્શનને કૉલ કરીએ છીએ.

STM32F103C8T6-Minimum-System-Development-Board-fig-13

  • આગળ void loop() ફંક્શન છે. રદબાતલ લૂપ ફંક્શન એકદમ સરળ અને ટૂંકું છે, લાઈબ્રેરીઓ/ફંક્શન્સના ઉપયોગ માટે આભાર.
  • અમે પુશ બટનની સ્થિતિ વાંચીને પ્રારંભ કરીએ છીએ. જો બટન દબાવવામાં આવ્યું હોય, તો અમે removePressKeyText() નો ઉપયોગ કરીને સ્ક્રીન પરના વર્તમાન સંદેશને દૂર કરીએ છીએ અને drawBar() ફંક્શનનો ઉપયોગ કરીને બદલાતા પ્રોગ્રેસ બારને દોરીએ છીએ.
  • ત્યારપછી અમે Pi ની કિંમત મેળવવા અને તેની ગણતરી કરવામાં લાગેલા સમયની સાથે પ્રદર્શિત કરવા માટે સ્ટાર્ટ કેલ્ક્યુલેશન ફંક્શનને કૉલ કરીએ છીએ.

STM32F103C8T6-Minimum-System-Development-Board-fig-14

  • જો પુશબટન દબાવવામાં આવતું નથી, તો ઉપકરણ તેની સાથે ક્રિયાપ્રતિક્રિયા કરવા માટે કી દબાવવાની માંગણી સાથે સ્ક્રીન સાથે નિષ્ક્રિય સ્થિતિમાં રહે છે.

STM32F103C8T6-Minimum-System-Development-Board-fig-15

  • છેલ્લે, "લૂપ્સ" ને સ્કેચ કરતા પહેલા થોડો સમય આપવા માટે લૂપના અંતમાં વિલંબ દાખલ કરવામાં આવે છે.

STM32F103C8T6-Minimum-System-Development-Board-fig-16

  • કોડનો બાકીનો ભાગ એ વિધેયો છે જેને બાર દોરવાથી લઈને Pi ની ગણતરી કરવા સુધીના કાર્યોને હાંસલ કરવા માટે કહેવાય છે.
  • આમાંના મોટાભાગનાં ફંક્શન્સને અન્ય કેટલાક ટ્યુટોરિયલ્સમાં આવરી લેવામાં આવ્યા છે જેમાં ST7735 ડિસ્પ્લેનો ઉપયોગ સામેલ છે.

STM32F103C8T6-Minimum-System-Development-Board-fig-17STM32F103C8T6-Minimum-System-Development-Board-fig-18STM32F103C8T6-Minimum-System-Development-Board-fig-19STM32F103C8T6-Minimum-System-Development-Board-fig-20STM32F103C8T6-Minimum-System-Development-Board-fig-21STM32F103C8T6-Minimum-System-Development-Board-fig-22

  • પ્રોજેક્ટ માટેનો સંપૂર્ણ કોડ નીચે ઉપલબ્ધ છે અને ડાઉનલોડ વિભાગ હેઠળ જોડાયેલ છે.

STM32F103C8T6-Minimum-System-Development-Board-fig-23STM32F103C8T6-Minimum-System-Development-Board-fig-24 STM32F103C8T6-Minimum-System-Development-Board-fig-25 STM32F103C8T6-Minimum-System-Development-Board-fig-26 STM32F103C8T6-Minimum-System-Development-Board-fig-27 STM32F103C8T6-Minimum-System-Development-Board-fig-28 STM32F103C8T6-Minimum-System-Development-Board-fig-29 STM32F103C8T6-Minimum-System-Development-Board-fig-30 STM32F103C8T6-Minimum-System-Development-Board-fig-31 STM32F103C8T6-Minimum-System-Development-Board-fig-32 STM32F103C8T6-Minimum-System-Development-Board-fig-33 STM32F103C8T6-Minimum-System-Development-Board-fig-34

STM32 પર કોડ અપલોડ કરી રહ્યો છે

  • STM32f1 પર સ્કેચ અપલોડ કરવું પ્રમાણભૂત Arduino-સુસંગત બોર્ડની સરખામણીમાં થોડું જટિલ છે. બોર્ડ પર કોડ અપલોડ કરવા માટે, અમને FTDI- આધારિત, USB-થી સીરીયલ કન્વર્ટરની જરૂર છે.
  • નીચેની સ્કીમેટિક્સમાં બતાવ્યા પ્રમાણે યુએસબીને સીરીયલ કન્વર્ટરથી STM32 સાથે કનેક્ટ કરો.

STM32F103C8T6-Minimum-System-Development-Board-fig-35

અહીં કનેક્શનનો પિન-ટુ-પિન નકશો છે

FTDI - STM32

  • આ થઈ જવાથી, અમે બોર્ડને પ્રોગ્રામિંગ મોડમાં મૂકવા માટે બોર્ડના સ્ટેટ જમ્પરની સ્થિતિ બદલીએ છીએ (નીચે gif માં બતાવ્યા પ્રમાણે).
  • આ પછી એકવાર બોર્ડ પર રીસેટ બટન દબાવો અને અમે કોડ અપલોડ કરવા માટે તૈયાર છીએ.

STM32F103C8T6-Minimum-System-Development-Board-fig-37

  • કમ્પ્યુટર પર, ખાતરી કરો કે તમે "સામાન્ય STM32F103C બોર્ડ" પસંદ કરો છો અને અપલોડ પદ્ધતિ માટે સીરીયલ પસંદ કરો છો જેના પછી તમે અપલોડ બટન દબાવી શકો છો.

STM32F103C8T6-Minimum-System-Development-Board-fig-38

  • એકવાર અપલોડ પૂર્ણ થઈ જાય, સ્ટેટ જમ્પરને સ્થિતિમાં બદલો "ઓ" આ બોર્ડને "રન" મોડમાં મૂકશે અને તે હવે અપલોડ કરેલા કોડના આધારે ચાલવાનું શરૂ કરવું જોઈએ.
  • આ સમયે, તમે FTDI ને ડિસ્કનેક્ટ કરી શકો છો અને તેના USB પર બોર્ડને પાવર કરી શકો છો. જો કોડ પાવરિંગ કર્યા પછી ચાલતો નથી, તો ખાતરી કરો કે તમે જમ્પરને યોગ્ય રીતે પુનઃસ્થાપિત કર્યું છે અને બોર્ડને પાવર રિસાયકલ કરો.

ડેમો

  • કોડ પૂર્ણ થયા પછી, તમારા સેટઅપ પર કોડ અપલોડ કરવા માટે ઉપર વર્ણવેલ અપલોડ પ્રક્રિયાને અનુસરો.
  • તમારે નીચેની છબીમાં બતાવ્યા પ્રમાણે ડિસ્પ્લે આવે છે તે જોવું જોઈએ.

STM32F103C8T6-Minimum-System-Development-Board-fig-39

  • ગણતરી શરૂ કરવા માટે પુશ બટન દબાવો. તમારે પ્રોગ્રેસ બાર સ્લાઇડને અંત સુધી ધીમે ધીમે જોવી જોઈએ.
  • પ્રક્રિયાના અંતે, Pi નું મૂલ્ય ગણતરીમાં લેવાયેલા સમય સાથે પ્રદર્શિત થાય છે.

STM32F103C8T6-Minimum-System-Development-Board-fig-40

  • આ જ કોડ Arduino Uno પર લાગુ કરવામાં આવે છે. પરિણામ નીચેની છબીમાં બતાવવામાં આવ્યું છે.

STM32F103C8T6-Minimum-System-Development-Board-fig-41

  • આ બે મૂલ્યોની સરખામણી કરીએ તો, આપણે જોઈએ છીએ કે "બ્લુ પીલ" Arduino Uno કરતાં 7 ગણી વધુ ઝડપી છે.
  • આ તે પ્રોજેક્ટ્સ માટે આદર્શ બનાવે છે જેમાં ભારે પ્રક્રિયા અને સમયની મર્યાદાઓનો સમાવેશ થાય છે.
  • બ્લુ પિલનું નાનું કદ પણ એડવાન તરીકે કામ કરે છેtage અહીં કારણ કે તે Arduino નેનો કરતાં થોડી મોટી છે અને તેનો ઉપયોગ એવા સ્થળોએ થઈ શકે છે જ્યાં નેનો પૂરતી ઝડપી નહીં હોય.

દસ્તાવેજો / સંસાધનો

STM32 STM32F103C8T6 ન્યૂનતમ સિસ્ટમ વિકાસ બોર્ડ [પીડીએફ] વપરાશકર્તા માર્ગદર્શિકા
STM32F103C8T6 મિનિમમ સિસ્ટમ ડેવલપમેન્ટ બોર્ડ, STM32F103C8T6, ન્યૂનતમ સિસ્ટમ ડેવલપમેન્ટ બોર્ડ, સિસ્ટમ ડેવલપમેન્ટ બોર્ડ, ડેવલપમેન્ટ બોર્ડ, બોર્ડ

સંદર્ભો

એક ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. જરૂરી ક્ષેત્રો ચિહ્નિત થયેલ છે *