Збірка
Дев’ять кроків. На кожному — що це за деталь, як вона працює і де ми її потім використаємо. Стрілки ← → на клавіатурі гортають.
Органи чуття
Машинка як організм. Клацни на деталь — і побачиш, що вона робить і як її читати з коду.
Перед — угорі. Пунктиром — те, що знизу плати.
Шпаргалка
Ти вже знаєш ці ідеї з JavaScript. У Python вони пишуться інакше — і коротше.
JavaScript ↔ Python
| Що | JavaScript | Python |
|---|---|---|
| коментар | // текст | # текст |
| змінна | let speed = 150; | speed = 150 |
| текст | "privit" | "privit" або 'privit' |
| написати | console.log(x) | print(x) |
| умова | if (x > 10) { … } else { … } | if x > 10: … else: … |
| ще умова | else if (…) | elif …: |
| повторити 4 рази | for (let i = 0; i < 4; i++) { } | for i in range(4): |
| поки | while (true) { } | while True: |
| функція | function beep(n) { } | def beep(n): |
| список | [1, 2, 3], a.length | [1, 2, 3], len(a) |
| і · або · не | && || ! | and or not |
| так · ні | true false | True False |
| блок коду | фігурні дужки { } | двокрапка + відступ 4 пробіли |
| кінець рядка | ; | нічого |
| дорівнює? | === | == |
| ділення націло | Math.floor(a / b) | a // b |
- Відступи — це код, а не краса. Те, що зсунуте на 4 пробіли після двокрапки, належить до if / for / def. Thonny робить відступ сам — не стирай його.
- Велика літера має значення.
True, неtrue.Motorіmotor— різні речі. - Помилка — це підказка. Червоний текст у консолі каже, в якому рядку і що не так. Читай останній рядок.
Команди машинки
| Що | Код |
|---|---|
| взяти інструменти | from pico_car import pico_car, ws2812b, ultrasonic, SSD1306_I2C |
| мотори | Motor = pico_car() |
| вперед | Motor.Car_Run(ліве, праве) — сила 0…255 |
| назад | Motor.Car_Back(150, 150) |
| розворот на місці | Motor.Car_Left(150, 150) · Motor.Car_Right(150, 150) |
| дуга | Motor.Car_Run(150, 60) — різна сила |
| стоп | Motor.Car_Stop() |
| пауза | time.sleep(1) — секунди · time.sleep_ms(200) |
| лампочки | pixels = ws2812b(8, 0) → pixels.set_pixel(0, 255, 0, 0) · pixels.fill(0, 0, 120) · pixels.show() |
| екран | oled.fill(0) · oled.text("HI", 0, 0) · oled.show() — латиниця, 16 символів, рядки y = 0, 11, 22 |
| відстань | ochi = ultrasonic() → ochi.Distance_accurate() — см, 999 = не бачу |
| звук | BZ = PWM(Pin(22)) → BZ.freq(440) · BZ.duty_u16(500) · тиша BZ.duty_u16(0) |
| лінія | Pin(2, Pin.IN).value() — 2, 3, 4, 5 зліва направо; 0 чорне, 1 біле |
| світло | ADC(26).read_u16() правий · ADC(27) лівий або мікрофон (перемичка) |
| батарея | ADC(28).read_u16() — менше 26000 → заряджай |
| пульт | pult = ir() → pult.Getir() |
Thonny
| запустити | зелена кнопка ▶ або F5 |
| зупинити | червона кнопка ■, або Ctrl+C у консолі |
| консоль | нижнє вікно з >>> — там «розмова з машинкою»: рядок, Enter, результат |
| зберегти на машинку | File → Save as → Raspberry Pi Pico. Назва main.py — програма стартуватиме сама при ввімкненні |
| «device busy» | машинка зайнята програмою: натисни ■ або Ctrl+C |
| червоний текст | помилка. Останній рядок — що саме; line 12 — де |