Кодты іздеу

Сабақ 2/10: Raspberry Pi Pico 4WD Smart Car Kit басқаруға арналған негізгі Python

Бұл сабақтың бөлігі: Raspberry Pi Pico 4WD Smart Car

Сабақ 2/10: Raspberry Pi Pico 4WD Smart Car Kit басқаруға арналған негізгі Python

Робожакс Raspberry Pi Pico 4WD Smart Car курсының осы екінші сабағында біз роботыңызды басқаруға мүмкіндік беретін Python бағдарламалаудың негізгі тұжырымдамаларын тереңінен қарастырамыз. Бұл нұсқаулық сізді нөлдік кодтау тәжірибесінен аппараттық құралды басқаратын сценарийлерді сенімді жазуға дейін жеткізуге арналған. Синтаксисті жаттап алудың орнына, біз әрбір тұжырымдаманың "неге" екенін зерттейміз, бұл сізге өз жобаларыңызды құруға және теңшеуге құралдар береді. Осы сабақтың соңында сіз айнымалылар, басқару ағындары, функциялар және тізімдер — барлық болашақ жобалардың құрылыс блоктары туралы нақты түсінікке ие боласыз.

Бұл білім тек смарт көлікке арналған емес. Мұнда үйренетін принциптер нақты әлемдегі көптеген қолданбаларда қолданылатын принциптермен бірдей. Сіз бұл дағдыларды қолдана аласыз:

  • Сенсор деректеріне негізделген желдеткіштерді, сорғыларды және шамдарды басқару үшін үй жылыжайын автоматтандыру.
  • Дабылдарды іске қосатын немесе хабарламалар жіберетін теңшелетін қауіпсіздік жүйесін құру.
  • Қоршаған ортаға жауап беретін интерактивті өнер қондырғыларын жасау.
  • Алдын ала бағдарламаланғандардан тыс өзіңіздің теңшелетін робот мінез-құлықтарын әзірлеу.

Аппараттық құрал/Компоненттер

Осы сабақтағы аппараттық құрал мысалдарын орындау үшін сізге келесі компоненттер қажет болады. Олардың барлығы SunFounder Raspberry Pi Pico 4WD Smart Car жинағының бөлігі болып табылады, бірақ тәуелсіз тәжірибелер үшін жеке сатып алуға болады.

  • Raspberry Pi Pico: Жобаның микроконтроллерлік миы.
  • Жарықдиод (LED): Сандық шығысты басқаруды көрсету үшін қолданылады.
  • Резистор (150Ω - 330Ω): Токты шектеу және жарықдиодты қорғау үшін.
  • Жалғау сымдары: Макет тақтасында қосылымдар жасау үшін.
  • Макет тақтасы: Тізбегіңізді прототиптеу үшін.

Сымды қосу нұсқаулығы

Осы сабақтағы аппараттық құрал демонстрациясы үшін біз Raspberry Pi Pico көмегімен жарықдиодты басқаруға арналған қарапайым тізбек құрамыз. Сымды қосу қарапайым және физикалық есептеулердегі классикалық алғашқы қадам болып табылады. Негізгі мәселе - жарықдиодтың күйіп кетуіне жол бермеу үшін токты шектейтін резисторды қолдану. Резистор жарықдиодпен тізбектей қосылады. Жарықдиодтың ұзын аяғы (анод) оң қосылым, ал қысқа аяғы (катод) теріс қосылым болып табылады.

Бейнеде нұсқаушы жерге қосу түйреуішіне және жарықдиодтың қысқа аяғына қосылған резисторды пайдаланады. Ұзын аяқ GPIO 22 түйреуішіне қосылған. Бұл орнату Pico-ға жарықдиодты қосу үшін түйреуішке жоғары (3.3В) сигнал жіберуге және оны өшіру үшін төмен (0В) сигнал жіберуге мүмкіндік береді.

Ескерту: Сымды қосу диаграммасы бейнеде көрсетілген. Нақты орналасу үшін визуалды нұсқаулыққа жүгініңіз.

Кодты түсіндіру

Бұл сабақ роботыңызды басқару үшін маңызды Python синтаксисі мен логикасының негізгі бөлігіне бағытталған. Бейнеде қамтылған негізгі тұжырымдамаларды қарастырайық. Код мысалдары Raspberry Pi Pico сияқты микроконтроллерлерде жұмыс істеуге арналған Python нұсқасы болып табылатын MicroPython тілінде жазылған.

Айнымалылар және деректер типтері

Айнымалылар - ақпаратты сақтайтын белгіленген қораптар сияқты. Python тілінде айнымалының типін жариялаудың қажеті жоқ; ол сіз тағайындаған мәннен анықталады. (бейнеде 03:33)


age = 23  # Бұл бүтін сан
name = "Ahmad"  # Бұл жол (мәтін)
pi = 3.14  # Бұл бөлшек сан (ондық)

Сіз бұл айнымалыларды есептеулерде қолдана аласыз және олардың мәндерін басып шығара аласыз. Мысалы, берілген жастағы күндер санын есептеу үшін days = age * 365 қолдануға болады. print() функциясы консольге шығысты көрсету үшін қолданылады.

Шартты операторлар (If/Else)

Шартты операторлар кодыңызға шешім қабылдауға мүмкіндік береді. Бұл роботтың қоршаған ортаға әрекет етуі үшін өте маңызды, мысалы, кедергіні анықтаған кезде тоқтау. (бейнеде 07:39)


age = 16
if age >= 17:
    print("Сіз көлік жүргізе аласыз")
else:
    print("Көлік жүргізу үшін тым жас")

if операторы шартты тексереді. Егер шарт True болса, төмендегі шегініс жасалған код блогы орындалады. Егер ол False болса, else операторының астындағы код орындалады. Python тілінде шегініс (жолдың басындағы бос орындар) өте маңызды; ол қай код қай блокқа жататынын анықтайды.

Циклдар (For және While)

Циклдар код блогын қайталау үшін қолданылады. Бұл сенсор мәндерін сканерлеу немесе моторды қадамдар тізбегі арқылы жылжыту сияқты тапсырмалар үшін өте қолайлы. (бейнеде 09:04)

For циклі: Бұл цикл белгілі бір рет қайталанады.


for x in range(5):  # x 0, 1, 2, 3, 4 болады
    print(x)

While циклі: Бұл цикл шарт ақиқат болғанша жалғасады. Бұл белгілі бір оқиға болғанша мәңгі жұмыс істейтін негізгі бағдарлама циклін жасау үшін пайдалы. (бейнеде 12:13)


x = 9
while x > 5:
    print("x мәні:", x)
    x = x - 1  # x мәнін азайту
print("Цикл аяқталды")

while True: циклдарымен абай болыңыз. Олар циклден шығу үшін break операторын қолданбасаңыз немесе бағдарламаны тоқтатпасаңыз, мәңгі жұмыс істейді.

Функциялар

Функциялар - белгілі бір тапсырманы орындайтын қайта пайдалануға болатын код блоктары. Олар кодыңызды ретті ұстауға және қайталануды болдырмауға көмектеседі. (бейнеде 14:52)


def calculate_days(years):
    days = years * 365
    return days

# Енді біз бұл функцияны бірнеше рет қолдана аламыз
days_in_10_years = calculate_days(10)
print("10 жылдағы күндер:", days_in_10_years)

Мұнда calculate_days — бұл аргумент (years) қабылдайтын және мән қайтаратын функция. Бұл бірдей есептеуді қайта-қайта жазудан гөрі тиімдірек. Бейнеде сонымен қатар бір функцияның екіншісін қалай шақыра алатыны көрсетілген, бұл қарапайым, тексерілетін бөліктерден күрделі операциялар құруға мүмкіндік береді.

Тізімдер

Тізімдер элементтердің реттелген жинағын сақтау үшін қолданылады. Бұл роботыңызға арналған "алға", "артқа", "солға" және "оңға" сияқты командалар тізбегін сақтауға өте ыңғайлы. (бейнеде 19:15)


move = ["алға", "артқа", "солға", "оңға", "тоқта"]
print(len(move))  # Тізімдегі элементтер санын басып шығарады (5)
print(move[0]) # Бірінші элементті басып шығарады, "алға"

# Элементтер қосуға болады
move.append("жартас")
# Элементтерді жоюға болады
move.pop()  # "жартас" жояды
# Элементтерді өзгертуге болады
move[2] = "ұшу"  # Үшінші элементті "ұшу" деп өзгертеді

Тізімдер нөлден бастап индекстеледі, яғни бірінші элемент 0 индексінде орналасқан. len() функциясы тізімнің ұзындығын береді, ал for циклі арқылы барлық элементтерді аралап шығуға болады. enumerate() функциясы да таныстырылады, ол цикл кезінде индекс пен мәнді бірге береді, бұл бірнеше пиндермен немесе сенсорлармен жұмыс істеу үшін пайдалы.

Пиндермен және уақытпен жұмыс

Міне, Python логикасын физикалық әлемге қосатын жер. Pico-ның GPIO пиндерін басқару үшін machine кітапханасын қолданасыз. (бейнеде 25:16)


from machine import Pin
import time

# 22 пинді шығыс ретінде орнату
led = Pin(22, Pin.OUT)

# Жарықдиодты қосу және өшіру
led.on()
time.sleep(1)
led.off()
time.sleep(1)

Сондай-ақ пинді Pin(2, Pin.IN) арқылы кіріс ретінде орнатып, одан мән оқуға болады. time кітапханасы кідірістер қосу (time.sleep()) және time.ticks_ms() арқылы өткен уақытты өлшеу немесе time.localtime() және time.mktime() арқылы уақыт форматтарын түрлендіру үшін өте маңызды. Бұл уақытқа негізделген логика үшін, мысалы, мотор жылдамдығын басқару үшін импульстік ені модуляциясы (PWM) сигналын жасау үшін өте қажет.

Тікелей жоба/Демонстрация

Бейнеде оқытушы осы тұжырымдамалардың тікелей демонстрациясын көрсетеді. Ол Python интерпретаторында қарапайым print() операторлары мен айнымалыларды тағайындаудан бастайды. Содан кейін күрделі мысалдарға көшіп, if операторларының айнымалы мәніне байланысты бағдарлама ағынын қалай өзгертетінін көрнекі түрде көрсетеді.

Содан кейін оқытушы Raspberry Pi Pico-ға жарықдиодты қосу арқылы практикалық аппараттық мысалды көрсетеді. Ол жарықдиодты бір секундтық кідіріспен қосып-өшіретін қарапайым MicroPython сценарийін жазады, бұл кодпен физикалық шығысты басқарудың тікелей нәтижесін көрсетеді. Бұл қолмен жасалатын мысал бағдарламалау логикасы мен нақты әлемдегі әрекет арасындағы байланысты бекітеді. Сабақ enumerate көмегімен бірнеше пиндерді басқаруды және time модулін кеңейтілген уақыт пен кестелеу операциялары үшін қолдануды көрсетумен аяқталады.

Тараулар

  • [00:00] Raspberry Pi Pico Smart Car курсына кіріспе
  • [01:31] Курсқа шолу және жинақ мүмкіндіктері
  • [03:33] Python-дағы айнымалылар мен деректер типтері
  • [07:39] Шартты операторлар (If/Else)
  • [09:04] For циклдерін түсіну
  • [12:13] While циклдерін зерттеу
  • [14:52] Функцияларды анықтау және қолдану
  • [19:15] Тізімдермен және деректер құрылымдарымен жұмыс
  • [25:16] MicroPython көмегімен GPIO пиндерін басқару
  • [29:54] Практикалық мысал: жарықдиодты жыпылықтату
  • [31:15] Enumerate көмегімен кеңейтілген пин басқару
  • [31:24] Уақыт функцияларымен жұмыс
Код жоқ.

Ресурстар мен сілтемелер

Әлі ресурстар жоқ.

Файлдар📁

Файлдар жоқ.