Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Rabu, 13 Agustus 2025

Struktur Dasar Program di Raspberry Pi Pico

Raspberry Pi Pico adalah mikrokontroler yang dikembangkan oleh Raspberry Pi Foundation, berbasis chip RP2040, yang mampu untuk diprogram menggunakan MicroPython, C/C++, dan bahasa pemrograman lainnya. Memahami struktur dasar program di Raspberry Pi Pico sangat penting bagi pengembang pemula maupun yang sudah berpengalaman agar dapat memaksimalkan fungsionalitas perangkat ini. Artikel ini akan membahas secara mendalam struktur dasar pemrograman di Raspberry Pi Pico, termasuk pengaturan lingkungan, penulisan kode, penggunaan GPIO, komunikasi antarmuka, dan manajemen memori. Jika Anda belum punya perangkatnya, Anda bisa langsung membeli Raspberry Pi Pico Starter Kit di sini untuk mulai praktek.


Pengenalan Raspberry Pi Pico dan Lingkungan Pengembangan

 

1. Spesifikasi Raspberry Pi Pico

Raspberry Pi Pico merupakan papan mikrokontroler yang ringkas namun tangguh, dengan spesifikasi utama:

- Prosesor Dual-Core ARM Cortex-M0+ @ 133 MHz

Memiliki dua inti prosesor yang dapat bekerja paralel, sehingga mampu menangani beberapa tugas sekaligus secara efisien.

- 264 KB SRAM & 2 MB Flash Memory

SRAM digunakan untuk penyimpanan data sementara saat program berjalan, sedangkan Flash digunakan untuk menyimpan kode program secara permanen.

- 26 GPIO Pins Multifungsi

Setiap pin dapat dikonfigurasi untuk berbagai fungsi, seperti I2C (komunikasi antar sensor), SPI (komunikasi cepat antar modul), UART (serial komunikasi), dan PWM (mengontrol motor, LED, atau perangkat lain dengan sinyal analog semu).

- Dukungan USB 1.1

Port USB digunakan untuk pemrograman, komunikasi data, atau bahkan memberi daya ke perangkat.

2. Persiapan Lingkungan Pengembangan

Sebelum mulai menulis kode, perlu dilakukan beberapa persiapan agar Raspberry Pi Pico dapat diprogram:

- Instalasi Thonny IDE atau VS Code + PlatformIO

    - Thonny IDE direkomendasikan untuk pemula yang ingin menggunakan MicroPython.

    - VS Code dengan PlatformIO lebih cocok untuk pengguna yang ingin memprogram Pico dengan C/C++.

- Unduh Firmware MicroPython

Firmware .uf2 khusus Pico tersedia di situs resmi Raspberry Pi. Firmware ini diperlukan agar papan dapat menjalankan kode MicroPython.

- Hubungkan Pico ke Komputer dalam Mode BOOTSEL

Tekan dan tahan tombol BOOTSEL saat mencolokkan kabel USB ke komputer. Langkah ini akan membuat Pico muncul sebagai USB mass storage device, siap menerima file firmware.

3. Flashing Firmware

Proses instalasi firmware dilakukan dengan langkah-langkah berikut:

- Buka Thonny IDE di komputer.

- Pilih Interpreter MicroPython (Raspberry Pi Pico) pada menu pengaturan Thonny.

- Unduh file firmware .uf2 dari situs resmi Raspberry Pi.

- Salin file .uf2 tersebut ke drive yang muncul ketika Pico berada dalam mode BOOTSEL.

Setelah proses ini selesai, Pico akan otomatis restart dan siap menerima program yang Anda tulis.

Untuk belajar dengan lebih interaktif, Anda juga bisa menggunakan Raspberry Pi Pico Trainer Kit yang sudah dilengkapi modul-modul praktikum.


Struktur Dasar Program MicroPython di Raspberry Pi Pico

 

1. Skema Dasar Program

Program MicroPython di Pico memiliki struktur dasar sebagai berikut:  

 

# Import library yang diperlukan 

from machine import Pin

import utime


# Inisialisasi komponen

led = Pin(25, Pin.OUT)  # LED onboard di GPIO25


# Loop utama

while True:

    led.toggle()  # Mengubah state LED

    utime.sleep(1)  # Delay 1 detik

 

Penjelasan:  

- Import Library: Modul `machine` digunakan untuk mengakses hardware seperti GPIO.  

- Inisialisasi Pin: Mengatur pin sebagai input/output.  

- Main Loop: Blok kode yang dijalankan terus-menerus.  

2. Penggunaan GPIO

GPIO (General Purpose Input/Output) adalah antarmuka utama untuk berinteraksi dengan komponen eksternal. Contoh penggunaan:  

 

from machine import Pin


# Set pin sebagai input dengan pull-up resistor

button = Pin(15, Pin.IN, Pin.PULL_UP)


# Set pin sebagai output

led = Pin(25, Pin.OUT)


while True:

    if button.value() == 0:  # Jika tombol ditekan (active low)

        led.on()

    else:

        led.off()

 

3. Penggunaan PWM (Pulse Width Modulation)

PWM digunakan untuk mengontrol intensitas LED atau kecepatan motor DC.  

 

from machine import Pin, PWM

import utime


# Inisialisasi PWM di GPIO15

pwm = PWM(Pin(15))


# Set frekuensi PWM (1000 Hz)

pwm.freq(1000)


# Ubah duty cycle (0-65535)

while True:

    for duty in range(0, 65535, 1000):

        pwm.duty_u16(duty)

        utime.sleep(0.1)

 

Struktur Dasar Program C/C++ di Raspberry Pi Pico

 

1. Pengaturan SDK dan Toolchain

Untuk pemrograman C/C++, Raspberry Pi menyediakan Pico SDK. Langkah instalasi:  

- Clone repositori pico-sdk dari GitHub.  

- Setup toolchain menggunakan `cmake` dan `gcc-arm-none-eabi`.  

- Buat project baru dengan struktur folder:  

  

2. Contoh Program Sederhana

Berikut struktur dasar program C untuk menyalakan LED onboard:  

 

#include "pico/stdlib.h"


int main() {

    const uint LED_PIN = 25;

    gpio_init(LED_PIN);

    gpio_set_dir(LED_PIN, GPIO_OUT);


    while (true) {

        gpio_put(LED_PIN, 1);

        sleep_ms(500);

        gpio_put(LED_PIN, 0);

        sleep_ms(500);

    }

}

 

3. Kompilasi dan Upload Program

- Buat file `CMakeLists.txt`:  

 

   cmake_minimum_required(VERSION 3.12)

   include(pico_sdk_import.cmake)

   project(blink)

   pico_sdk_init()

   add_executable(blink main.c)

   target_link_libraries(blink pico_stdlib)

   pico_add_extra_outputs(blink)

 

- Kompilasi dengan:  

  

 mkdir build && cd build  

   cmake ..  

   make  

- Upload file `.uf2` ke Pico.  

 

Komunikasi Antarmuka di Raspberry Pi Pico

 

1. UART (Serial Communication)

UART digunakan untuk komunikasi antara Pico dan perangkat lain seperti Arduino atau komputer.  

Contoh MicroPython:

 

from machine import UART, Pin


uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))


while True:

    if uart.any():

        data = uart.read()

        print("Received:", data)

 

Contoh C:

 

#include "pico/stdlib.h"

#include "hardware/uart.h"


#define UART_ID uart0

#define BAUD_RATE 9600

#define UART_TX_PIN 0

#define UART_RX_PIN 1


int main() {

    uart_init(UART_ID, BAUD_RATE);

    gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);

    gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);


    while (true) {

        uart_puts(UART_ID, "Hello, UART!\n");

        sleep_ms(1000);

    }

}

 

2. I2C (Inter-Integrated Circuit)

I2C digunakan untuk komunikasi dengan sensor seperti BMP280 atau OLED display.  

Contoh MicroPython:

 

from machine import I2C, Pin


i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=400000)

devices = i2c.scan()

print("I2C Devices:", devices)

Contoh C:  

#include "pico/stdlib.h"

#include "hardware/i2c.h"


#define I2C_PORT i2c0

#define SDA_PIN 4

#define SCL_PIN 5


int main() {

    i2c_init(I2C_PORT, 400000);

    gpio_set_function(SDA_PIN, GPIO_FUNC_I2C);

    gpio_set_function(SCL_PIN, GPIO_FUNC_I2C);

    gpio_pull_up(SDA_PIN);

    gpio_pull_up(SCL_PIN);

}

 

Manajemen Memori dan Optimasi

 

1. Penggunaan Memori di Pico 

- SRAM (264 KB): Untuk penyimpanan variabel dinamis.  

- Flash (2 MB): Untuk penyimpanan program.  

2. Tips Optimasi

- Gunakan `const` untuk variabel tetap.  

- Hindari alokasi memori dinamis berlebihan.  

- Manfaatkan DMA (Direct Memory Access) untuk transfer data cepat.  

 

Debugging dan Error Handling

 

1. Debugging di MicroPython

- Gunakan `print()` untuk mengecek nilai variabel.  

- Manfaatkan REPL (Read-Eval-Print Loop) untuk testing langsung.  

2. Debugging di C/C++

- Gunakan SWD (Serial Wire Debug) dengan debugger seperti J-Link.  

- Tambahkan `printf` melalui UART untuk logging.  

Beli E-Book Panduan Mudah Belajar Pemrograman Raspberry Pi Pico untuk materi lebih detail dan latihan tambahan.

 

Baca juga : Pengantar Pemrograman C/C++ di Raspberry Pi Pico

 

 

 

 

 

 

 

 

Siap Untuk Membuat Proyek Impianmu Menjadi Kenyataan?

Klik di sini untuk chat langsung via WhatsApp dan dapatkan dukungan langsung dari tim ahli kami! 

 

0 on: "Struktur Dasar Program di Raspberry Pi Pico"