ዝርዝር ሁኔታ:

የ GiggleBot መስመር ተከታይን ማስተካከል - የላቀ - 7 ደረጃዎች
የ GiggleBot መስመር ተከታይን ማስተካከል - የላቀ - 7 ደረጃዎች

ቪዲዮ: የ GiggleBot መስመር ተከታይን ማስተካከል - የላቀ - 7 ደረጃዎች

ቪዲዮ: የ GiggleBot መስመር ተከታይን ማስተካከል - የላቀ - 7 ደረጃዎች
ቪዲዮ: ከወሲብ በፊት ይህን ከጠጣህ አለቀላት ! | ማለቂያ ለሌለው የወሲብ ብቃት | 2024, ህዳር
Anonim
የ GiggleBot መስመር ተከታይን ማስተካከል - የላቀ
የ GiggleBot መስመር ተከታይን ማስተካከል - የላቀ

በዚህ በጣም አጭር አስተማሪዎች ውስጥ ጥቁር መስመርን ለመከተል የራስዎን GiggleBot ያስተካክላሉ። በዚህ ሌላ የማጠናከሪያ ትምህርት GiggleBot መስመር ተከታይ ፣ በዚህ ሁኔታ መሠረት ለመስራት የማስተካከያ እሴቶችን በጥብቅ ኮድ አድርገናል። ሌሎች ጥቅሞችን በማምጣት የተሻለ ጠባይ እንዲኖረው ማድረግ ይፈልጉ ይሆናል።

በዚህ መማሪያ ውስጥ ፣ ሁለቱ በተለያዩ የቢቢሲ ማይክሮ ላይ ሊጫኑ የሚችሉ 2 ስክሪፕቶችን እናሳይዎታለን ፣ አንደኛው በ GiggleBot ውስጥ እንዲገባ እና ከሌላው ጋር ፣ 2 ቁልፎቹ በማውጫ ውስጥ ለማለፍ እና የተለየን ለማስተካከል ያገለግላሉ። መለኪያዎች። የእነዚህ የዘመኑ መለኪያዎች መላክ የሚከናወነው በሬዲዮ በኩል ነው።

ደረጃ 1 - አስፈላጊ አካላት

የሚከተሉትን ያስፈልግዎታል:

  1. የማይግ ቢግ ሮቦት ለ GiggleBot ሮቦት።
  2. x3 AA ባትሪዎች
  3. x2 ቢቢሲ ማይክሮ: ቢት - አንዱ ለጊግሌቦት እና ሌላኛው እንደ መለኪያዎች ለማስተካከል እንደ በርቀት ሆኖ ይሠራል።
  4. ለቢቢሲ ማይክሮ -ቢት ባትሪ - በቢቢሲ ማይክሮ -ቢት ጥቅል ውስጥ እንደሚመጣው።

GiggleBot Robot ን ለቢቢሲ ማይክሮ -ቢት እዚህ ያግኙ።

ደረጃ 2 - ትራኮችን እና አካባቢን ማቀናበር

ትራኮችን እና አካባቢን ማቀናበር
ትራኮችን እና አካባቢን ማቀናበር
ትራኮችን እና አካባቢን ማቀናበር
ትራኮችን እና አካባቢን ማቀናበር

እንዲሁም ትራኮችዎን (ማውረድ ፣ ማተም ፣ መቁረጥ እና የቴፕ ሰቆች) መገንባት እና ከዚያ አካባቢውን (IDE እና የአሂድ ጊዜ) ማዘጋጀት አለብዎት።

ይህ መማሪያ GiggleBot መስመር ተከታይ ከሚለው ሌላ መማሪያ ጋር በጣም የተዛመደ እንደመሆኑ መጠን ወደዚያ ይሂዱ እና ደረጃ 2 እና 3 ን ይከተሉ እና ከዚያ ወደዚህ ይመለሱ።

IDE ን በተመለከተ ፣ የሙአ አርታኢውን መጠቀም እና ለሂደቱ ጊዜ የጊግሌቦትን ማይክሮ ፓይቶን አሂድ ጊዜ ማውረድ ያስፈልግዎታል። የአሂደቱ ጊዜ ከሰነዶቹ እዚህ ማውረድ ይችላል። ወደ የሰነዶች ጅምር ምዕራፍ ይሂዱ እና አካባቢውን ስለማዘጋጀት እነዚያን መመሪያዎች ይከተሉ። በዚህ ቅጽበት ፣ የአሂደቱ ጊዜ v0.4.0 ስሪት ጥቅም ላይ ውሏል።

ደረጃ 3 - GiggleBot ን ማቀናበር

የአሂደቱን ጊዜ ወደ ጊግቦልት ከማብራትዎ በፊት ፣ ለጊግሌቦት የሚፈለገውን ፍጥነት እና የማዘመን ፍጥነት መምረጥዎን ያረጋግጡ - በነባሪ ፣ ፍጥነቱ ወደ 100 (ቤዝ_ስፔድ ተለዋዋጭ) እና የዝማኔ መጠን ወደ 70 (update_rate ተለዋዋጭ) ተቀናብሯል።

አሁን ካለው አተገባበር አንጻር ሊደረስበት የሚችለው ከፍተኛው የዝማኔ መጠን 70 ነው እና run_neopixels ወደ እውነት ከተዋቀረ ሊደረስበት የሚችለው 50 ብቻ ነው። ስለዚህ በሆነ መንገድ ነባሪው የማዘመን መጠን ቢቢሲ ማይክሮ ቢት ማድረግ በሚችለው ጠርዝ ላይ ነው ማለት ይችላሉ።

ለመዝገብ ብቻ ፣ የመስመር ተከታይ ዳሳሽ ዝመናዎችን በሰከንድ 100 ጊዜ መመለስ ይችላል።

ማሳሰቢያ -የሚከተለው ስክሪፕት የነጭ ቦታዎች ሊኖሩት ይችላል እና ይህ የ GitHub Gists ን በማሳየት ምክንያት በሆነ ችግር ምክንያት ይመስላል። ኮዱን መቅዳት እና መለጠፍ ወደሚችልበት ወደ GitHub ገጽዎ ሊወስድዎት የሚገባውን ቁልፍ ጠቅ ያድርጉ።

GiggleBot PID መስመር ተከታይ መቃኛ (ለማስተካከል የርቀት መቆጣጠሪያ ይፈልጋል) - xjfls23

ከማይክሮቢት ማስመጣት*
ከ gigglebot ማስመጣት*
ከ utime አስመጣ sleep_ms ፣ ticks_us
ሬዲዮ አስመጣ
ማስመጣት ustruct
# ሬዲዮ እና ጂቢ ኒዮፒክስሎችን ያስጀምሩ
radio.on ()
ኒዮ = init ()
# ጊዜ
update_rate = 70
# ነባሪ ትርፍ እሴቶች
Kp = 0.0
ኪ = 0.0
Kd = 0.0
setpoint = 0.5
ቀስቅሴ ነጥብ = 0.0
min_speed_percent = 0.2
base_speed = 100
last_position = setpoint
ውህደት = 0.0
run_neopixels = ውሸት
የፈገግታው ማዕከላዊ ፒክሰል በጂቢ ላይ የሚገኝበት center_pixel = 5#
# turquoise = tuple (ካርታ (ላምዳ x: int (x / 5) ፣ (64 ፣ 224 ፣ 208))) ስህተቱን ከኒዮፒክስሎች ጋር ለመሳል # ቀለም
# turquoise = (12, 44, 41) # ከዚህ በላይ አስተያየት የሰጠው ከላይ ያለው ቱርኩዝ ነው
error_width_per_pixel = 0.5/3# ከፍተኛ ስህተት በእያንዳንዱ ኒኦፒክስል መካከል በክፍሎች ብዛት ተከፍሏል
defupper_bound_linear_speed_reducer (abs_error, trigger_point, upper_bound, ትንሹ_ሞተር_ኃይል ፣ ከፍተኛ_ሞተር_ሃይል) ፦
ዓለምአቀፍ base_speed
abs_error> = = ቀስቅሴ ነጥብ
# x0 = 0.0
# y0 = 0.0
# x1 = የላይኛው_አንድ - ቀስቃሽ ነጥብ
# y1 = 1.0
# x = abs_error - ቀስቃሽ ነጥብ
# y = y0 + (x - x0) * (y1 - y0) / (x1 - x0)
# ልክ እንደ
y = (abs_error - trigger_point) / (የላይኛው_እስራት - ቀስቅሴ ነጥብ)
motor_power = base_speed * (ትንሹ_ሞተር_ኃይል + (1- y) * (ከፍተኛ_ሞተር_ኃይል - ትንሹ_ሞተር_ሃይል))
የሞተር_ሃይል መመለስ
ሌላ
base_speed * ከፍተኛውን_ሞተር_ ኃይልን ይመልሱ
ሩጫ = ሐሰት
previous_error = 0
total_time = 0.0
ጠቅላላ_ መለያዎች = 0
እውነት:
# አዝራር ሀ ከተጫነ ከዚያ መከተል ይጀምሩ
button_a.is_pressed ከሆነ ():
አሂድ = እውነት
# ነገር ግን አዝራር ለ ከተጫነ የመስመር ተከታዩን ያቁሙ
button_b.is_press ከሆነ ():
ሩጫ = ሐሰት
ውህደት = 0.0
previous_error = 0.0
display.scroll ('{} - {}')። ቅርጸት (total_time ፣ total_counts) ፣ መዘግየት = 100 ፣ ይጠብቁ = ሐሰት)
total_time = 0.0
ጠቅላላ_ መለያዎች = 0
pixels_off ()
ተወ()
የእንቅልፍ_ኤምኤስ (500)
ሩጫ እውነት ከሆነ
# የመስመር ዳሳሾችን ያንብቡ
start_time = ticks_us ()
የርቀት መቆጣጠሪያን በመጠቀም የ Kp/Kd ግኝቶችን ካዘመንን ያረጋግጡ
ሞክር
Kp ፣ Ki ፣ Kd ፣ trigger_point ፣ min_speed_percent = ustruct.unpack (‘fffff’ ፣ radio.receive_bytes ())
set_eyes ()
ከታይፕ ስህተት በስተቀር
ማለፍ
ቀኝ ፣ ግራ = የንባብ_ሴንሰር (LINE_SENSOR ፣ BOTH)
አቀማመጥ <0.5 በሚሆንበት ጊዜ # መስመር በግራ በኩል ነው
አቀማመጥ> 0.5 በሚሆንበት ጊዜ # መስመር በቀኝ በኩል ነው
አቀማመጥ = 0.5 በሚሆንበት ጊዜ # መስመር መሃል ላይ ነው
# እሱ ክብደት ያለው የሂሳብ ትርጉም ነው
ሞክር
አቀማመጥ = ቀኝ /ተንሳፋፊ (ግራ + ቀኝ)
ከዜሮ ዲቪዥን ስህተት በስተቀር
አቀማመጥ = 0.5
አቀማመጥ == 0 ከሆነ - ቦታ = 0.001
አቀማመጥ == 1: አቀማመጥ = 0.999
# የፒዲ መቆጣጠሪያን ይጠቀሙ
ስህተት = አቀማመጥ - setpoint
integral += ስህተት
እርማት = Kp * ስህተት + ኪ * ጥምር + Kd * (ስህተት - ቀዳሚ_ ስህተት)
previous_error = ስህተት
# የሞተር ፍጥነቶችን ያስሉ
motor_speed = upper_bound_linear_speed_reducer (abs (ስህተት) ፣ setpoint * trigger_point ፣ setpoint ፣ min_speed_percent ፣ 1.0)
leftMotorSpeed = motor_speed + እርማት
rightMotorSpeed = motor_speed - እርማት
GiggleBot ወደየትኛው አቅጣጫ መሄድ እንዳለበት ለማሳየት # ኒዮፒክስሎችን ያብሩ
run_neopixels እውነት እና ጠቅላላ_መለያዎች %3 == 0 ከሆነ
ለ i inb '\ x00 / x01 / x02 / x03 / x04 / x05 / x06 / x07 / x08':
ኒዮ = (0, 0, 0)
ለ i inb '\ x00 / x01 / x02 / x03':
ifabs (ስህተት)> error_width_per_pixel * i:
ስህተት ከሆነ <0:
ኒዮ [center_pixel + i] = (12, 44, 41)
ሌላ
ኒዮ [center_pixel - i] = (12, 44, 41)
ሌላ
በመቶ = 1- (error_width_per_pixel * i -abs (ስህተት)) / error_width_per_pixel
# የአሁኑን ፒክስል ያብሩ
ስህተት ከሆነ <0:
# neo [center_pixel + i] = tuple (ካርታ (lambda x: int (x * መቶኛ) ፣ ቱርኩስ))
ኒዮ [center_pixel + i] = (int (12* በመቶ) ፣ int (44* በመቶ) ፣ int (41* በመቶ))
ሌላ
# neo [center_pixel - i] = tuple (ካርታ (lambda x: int (x * መቶኛ) ፣ ቱርኩስ))
ኒዮ [center_pixel - i] = (int (12* በመቶ) ፣ int (44* በመቶ) ፣ int (41* በመቶ))
ሰበር
neo.show ()
ሞክር
# ሞተሮችን ይከርክሙ
ግራ ከሆነ የሞተር ፍጥነት> 100:
leftMotorSpeed = 100
rightMotorSpeed = rightMotorSpeed - leftMotorSpeed +100
ትክክል ከሆነ የሞተር ፍጥነት> 100:
rightMotorSpeed = 100
leftMotorSpeed = leftMotorSpeed - rightMotorSpeed +100
ግራ ከሆነ የሞተር ፍጥነት <-100:
leftMotorSpeed = -100
ትክክል ከሆነ የሞተር ፍጥነት <-100:
rightMotorSpeed = -100
# ሞተሮችን ያንቀሳቅሱ
set_speed (የግራ ሞተር ፍጥነት ፣ የቀኝ ሞተር ፍጥነት)
መንዳት ()
# ህትመት ((ስህተት ፣ የሞተር ፍጥነት))
ካልሆነ በስተቀር
# ወደማይስተካከል ጉዳይ ውስጥ ብንገባ
ማለፍ
# እና የ loop ድግግሞሹን ይጠብቁ
የማብቂያ ጊዜ = ticks_us ()
delay_diff = (end_time - start_time) /1000
total_time += delay_diff
ጠቅላላ_ መለያዎች += 1
if1.0/ update_rate - delay_diff> 0:
እንቅልፍ (1.0/ update_rate - delay_diff)

በ GitHub በ hosted የተስተናገደ rawgigglebot_line_follower_tuner.py ን ይመልከቱ

ደረጃ 4 ማስተካከያውን (የርቀት) ማቀናበር

ቀጣዩ ማድረግ ያለብን የሩጫ ጊዜን + ስክሪፕት ወደ 2 ኛው የቢቢሲ ማይክሮ -ቢት ማብራት ነው። ይህ ሁለተኛው ማይክሮ ቢት የሚከተሉትን መለኪያዎች ለማስተካከል የሚያገለግል ለጊግሌቦት እንደ በርቀት ሆኖ ይሠራል።

  1. Kp = ለ PID ተቆጣጣሪ ተመጣጣኝ ትርፍ።
  2. ኪ = ለፒአይዲ ተቆጣጣሪ አጠቃላይ ትርፍ።
  3. ለ PID መቆጣጠሪያ Kd = የመነጨ ትርፍ።
  4. trigger_point = ዝቅተኛው ፍጥነት እስኪደርስ ድረስ ፍጥነቱ በመስመር መቀነስ በሚጀምርበት GiggleBot ዝቅተኛ እና ከፍተኛ ፍጥነቶች መካከል በመቶኛ የተገለጸው ነጥብ።
  5. min_speed_percent = በከፍተኛው ፍጥነት መቶኛ የተገለፀው ዝቅተኛ ፍጥነት።

ሊስተካከሉ የሚችሉ ቀሪዎቹ 2 ተለዋዋጮች በጊግሌቦት ላይ በተቀመጠው ስክሪፕት ውስጥ በቀጥታ ከባድ ኮድ የተደረገባቸው ናቸው - ከፍተኛውን ፍጥነት የሚወክለው ዝመና_rate እና ቤዝ_ስፔድ። በሰነዶቹ ውስጥ እንደተገለፀው ለጊግሌቦት ሊዘጋጅ የሚችል ከፍተኛው ፍጥነት 100 ነው ፣ እሱም ለጊግሌቦታችን ነባሪ እሴት ነው።

ማሳሰቢያ -የሚከተለው ስክሪፕት የነጭ ቦታዎች ሊኖሩት ይችላል እና ይህ የ GitHub Gists ን በማሳየት ምክንያት በሆነ ችግር ምክንያት ይመስላል። ኮዱን መቅዳት እና መለጠፍ ወደሚችልበት ወደ GitHub ገጽዎ ሊወስድዎት የሚገባውን ቁልፍ ጠቅ ያድርጉ።

GiggleBot የርቀት PID መስመር ተከታይ መቃኛ (ሌላውን ክፍል ይፈልጋል) - xjfls23

ከማይክሮቢት ማስመጣት*
ከ utime አስመጣ sleep_ms
ሬዲዮ አስመጣ
ማስመጣት ustruct
# 1 ኛ አካል የ Kp ትርፍ ነው
# 2 ኛ አካል የኪ ኪ
# 3 ኛ አካል የ Kd ትርፍ ነው
# 4 ኛ አካል ለሞተሮች ፍጥነቱን ዝቅ ለማድረግ ቀስቃሽ ነጥብ ነው (0 -> 1)
# 5 ኛ አካል በመቶኛ (0 -> 1) እንደተገለፀው ለሞተርዎች የፍጥነት ፍጥነት ነው።
ትርፍ = [0.0 ፣ 0.0 ፣ 0.0 ፣ 1.0 ፣ 0.0]
stepSize = 0.1
# 0 እና 1 ለ 1 ኛ አካል
# 2 እና 3 ለ 2 ኛ አካል
currentSetting = 0
defshowMenu ():
display.scroll ('{} - {}')። ቅርጸት (የአሁኑ ቅንብር ፣ [int (currentSetting /2)]) ፣ መዘግየት = 100 ፣ ይጠብቁ = ሐሰት)
radio.on ()
ShowMenu ()
እውነት:
ዘምኗል = ውሸት
button_a.is_pressed ከሆነ ():
currentSetting = (currentSetting +1) % (2*5)
ዘምኗል = እውነት
button_b.is_press ከሆነ ():
የአሁኑ ከሆነ %2 == 0 ቅንብር
የአሁኑ ቅንብር 0 ወይም 2 ወይም.. በሚሆንበት ጊዜ # ትርፍ ይጨምሩ።
ifint (currentSetting /2) በ [0, 2] ውስጥ ፦
ያገኛል [int (currentSetting /2)] += 10* stepSize
ሌላ
ትርፍ [int (currentSetting /2)] += stepSize
ሌላ
የአሁኑ ቅንብር 1 ወይም 3 ወይም.. በሚሆንበት ጊዜ # ትርፍ ይጨምሩ።
ifint (currentSetting /2) በ [0, 2] ውስጥ ፦
ትርፍ [int (currentSetting /2)] -= 10* stepSize
ሌላ
ትርፍ [int (currentSetting /2)] -= stepSize
radio.send_bytes (ustruct.pack ('fffff' ፣ *ትርፍ))
ዘምኗል = እውነት
ከተዘመነ
ShowMenu ()
የእንቅልፍ_ኤምኤስ (200)

GitHub በ hosted የተስተናገደ rawgigglebot_line_follower_configurator.py

ደረጃ 5 - GiggleBot ን ማስተካከል

GiggleBot ን ማስተካከል
GiggleBot ን ማስተካከል

GiggleBot ን በትራኩ ላይ ያስቀምጡ ፣ ያብሩት እና እንዲሮጥ ያድርጉት። ይህ በእንዲህ እንዳለ ፣ ዘወትር ወደ ትራኩ መልሰው በእጅዎ የያዙትን ቢቢሲ ማይክሮ - ቢት/ማይክሮ/ቢት/ቢዝነስ በመጠቀም የተገኙትን/ግቤቶችን ማስተካከል አለብዎት።

GiggleBot ን ለመጀመር ፣ በ GiggleBot ቢቢሲ ማይክሮ ቢት ላይ “ሀ” ቁልፍን ይጫኑ እና ያቁሙ እና ስለሆነም የግዛቱን ፕሬስ በአዝራር ቢ ላይ እንደገና ያስጀምሩ።

በርቀት በቢቢሲ ማይክሮ ላይ - ቢት ፣ የመጫን አዝራር ሀ በምናሌው ውስጥ እያንዳንዱን አማራጭ ይወስድዎታል እና አዝራር ቢ ተጓዳኝ እሴትን ይጨምራል/ይቀንሳል። ልክ በአሮጌ መኪና ዳሽቦርድ ላይ ሰዓቱን እንደ ማቀናበር ነው። አማራጮቹ እንደዚህ ናቸው

  1. 0-1 አማራጮች ለ Kp ትርፍ ናቸው።
  2. 2-3 አማራጮች ለኪ ግኝት ናቸው።
  3. 4-5 አማራጮች ለ Kd ትርፍ ናቸው።
  4. 6-7 አማራጮች ሞተሮች ማሽቆልቆል በሚጀምሩበት ቅጽበት የተቀመጠውን ቦታ ለማቀናበር ነው።
  5. 8-9 አማራጮች አነስተኛውን ፍጥነት ለማቀናበር ናቸው።

በምናሌው ውስጥ ያሉት ቁጥሮች እንኳን ተጓዳኝ እሴቶችን ለመጨመር እና ለተለመዱት በትክክል ተቃራኒ መሆናቸውን ያስታውሱ።

እንዲሁም ፣ በ GiggleBot ቢቢሲ ማይክሮ ቢት ላይ ቢት ሲጫኑ ፣ በመጨረሻው ዳግም ማስጀመሪያ እና ሮቦቱ ያለፈባቸውን ዑደቶች ብዛት በኒውዮፒክሰል በተሠራ ማያ ገጹ ላይ ያዩታል - በእነዚህ 2 ማስላት ይችላሉ የሮቦት ዝመና ፍጥነት።

በመጨረሻ እና ከሁሉም በላይ ለጊግሌቦት 2 ማስተካከያዎችን አወጣሁ። ከመካከላቸው አንዱ የኒዮፒክስል ኤልኢዲዎች ሲጠፉ ሌላኛው ደግሞ ለሌላ ጊዜ ነው። የኒዮፒክስል ኤልኢዲዎች ስህተቱ የተከማቸበትን አቅጣጫ ለማሳየት ያገለግላሉ።

1 ኛ መለኪያዎች (በ NeoPixel LEDs ጠፍቷል)

  1. Kp = 32.0
  2. ኪ = 0.5
  3. Kd = 80.0
  4. trigger_setpoint = 0.3 (ይህም 30%ነው)
  5. min_speed_percent = 0.2 (ይህም 20%ነው)
  6. base_speed = 100 (ከፍተኛው ከፍተኛ ፍጥነት)
  7. update_rate = 70 (እየሄደ @70Hz)

2 ኛ መለኪያዎች (የ NeoPixel LEDs በርቷል)

  1. ኬፕ = 25.0
  2. ኪ = 0.5
  3. Kd = 35.0
  4. trigger_setpoint = 0.3 (ይህም 30%ነው)
  5. min_speed_percent = 0.3 (ይህም 30%ነው)
  6. base_speed = 70 (ከፍተኛው ከፍተኛ ፍጥነት)
  7. update_rate = 50 (እየሄደ @50Hz)
  8. እንዲሁም ፣ በ GiggleBot ቢቢሲ ማይክሮ ቢት ላይ በሚጫን ስክሪፕት ውስጥ ተለዋዋጭ run_neopixels ወደ እውነት መዘጋጀት አለበት። ይህ የ NeoPixel LEDs ብልጭታ ወደ የትኛው አቅጣጫ ስህተቱ እንደሚከማች በሚያመላክት መልኩ እንዲበራ ያደርገዋል።

ደረጃ 6 - ከኒዮፒክስሎች ጋር የሚሮጥ GiggleBot ጠፍቷል

ይህ በቀድሞው ደረጃ ከተገኙት 1 ኛ የማስተካከያ መለኪያዎች ጋር GiggleBot ን የማስኬድ ምሳሌ ነው። ይህ ምሳሌ የ NeoPixel LEDs ጠፍቷል።

ደረጃ 7 - GiggleBot በ Neopixels በርቷል

ይህ በጊግግቦትን በ 2 ኛ የማስተካከያ መለኪያዎች ስብስብ / ደረጃ 5 ላይ የማሄድ ምሳሌ ነው። ይህ ምሳሌ የ NeoPixel LEDs በርቷል።

በዚህ ምሳሌ ውስጥ ጊጊልቦት መስመሩን ለመከተል የበለጠ ከባድ ጊዜ እንዳለው ልብ ይበሉ - ምክንያቱም የኒዮፒክስል ኤልዲዎች የቢቢሲ ማይክሮ ቢት ሲፒዩ ጊዜን “ስለሚበሉ” ነው። ለዚያም ነው የዝማኔውን መጠን ከ 70 ወደ 50 ዝቅ ማድረግ ያለብን።

የሚመከር: