Fuente capítulo 2 de
"Getting started with Raspberry Pi Pico" ROOT ==== sudo apt update sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential USUARIO ======= cd ~/ mkdir pico cd pico git clone -b master https://github.com/raspberrypi/pico-sdk.git cd pico-sdk git submodule update --init cd .. git clone -b master https://github.com/raspberrypi/pico-examples.git ----Update---- cd pico-sdk git pull git submodule update ----Compilar ejemplos --- cd pico-examples mkdir build cd build export PICO_SDK_PATH=../../pico-sdk cmake .. cd blink make -j4 ---Encende la Raspberry pi pico mientras está pulsado botón BOOT-- cp blink.uf2 /media/USUARIO/RPI-RP2/ |
/* * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. * * SPDX-License-Identifier: BSD-3-Clause */ #include "pico/stdlib.h" int main() { #ifndef PICO_DEFAULT_LED_PIN #warning blink example requires a board with a regular LED #else const uint LED_PIN = PICO_DEFAULT_LED_PIN; gpio_init(LED_PIN); gpio_set_dir(LED_PIN, GPIO_OUT); while (true) { gpio_put(LED_PIN, 1); sleep_ms(100); gpio_put(LED_PIN, 0); sleep_ms(400); } #endif } |
add_executable(blink blink.c ) # pull in common dependencies target_link_libraries(blink pico_stdlib) # create map/bin/hex file etc. pico_add_extra_outputs(blink) # add url via pico_set_program_url example_auto_set_url(blink) |
#!/bin/sh export PICO_SDK_PATH=~/pico/pico-sdk echo ======ENTORNO============ echo ENTORNO echo $PICO_SDK_PATH echo ======COMPILAR=========== echo 'mkdir build && cd build' echo cmake .. echo make echo 'make -j$(nproc)' echo 'cp programaPI.uf2 /media/usuario/RPI-RP2/' echo |
#include <stdio.h> #include <pico/stdlib.h> /* # SEMÁFORO PARA RASPBERRY PI PICO en C # SETA43 # seta43.duckdns.org # seta43.blogspot.com # Palencia / España # 25-08-2022 */ #define sROJO 18 #define sAMARILLO 19 #define sVERDE 20 #define pVERDE 17 #define pROJO 16 int tPARPADEO=400; int tSEMAFORO=10000; int tAMARILLO=3000; long tPEATON=6000; int main() { stdio_init_all(); const uint LED_PIN = PICO_DEFAULT_LED_PIN; gpio_init(LED_PIN); gpio_set_dir(LED_PIN, GPIO_OUT); gpio_init(sROJO); gpio_set_dir(sROJO, GPIO_OUT); gpio_init(sAMARILLO); gpio_set_dir(sAMARILLO, GPIO_OUT); gpio_init(sVERDE); gpio_set_dir(sVERDE, GPIO_OUT); gpio_init(pROJO); gpio_set_dir(pROJO, GPIO_OUT); gpio_init(pVERDE); gpio_set_dir(pVERDE, GPIO_OUT); printf("Hello world %d\n",LED_PIN); while (true) { gpio_put(sAMARILLO, 0); gpio_put(sROJO, 1); gpio_put(pROJO, 0); gpio_put(pVERDE, 1); sleep_ms(tPEATON); for(int z=0;z<=7;++z) { gpio_put(pVERDE, 0); sleep_ms(tPARPADEO); gpio_put(pVERDE, 1); sleep_ms(tPARPADEO); } gpio_put(pROJO, 1); sleep_ms(1000); gpio_put(sVERDE, 1); gpio_put(sROJO, 0); sleep_ms(tSEMAFORO); gpio_put(sAMARILLO, 1); gpio_put(sVERDE, 0); sleep_ms(tAMARILLO); } } |
cmake_minimum_required(VERSION
3.13) include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake) project(programaPI C CXX ASM) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) pico_sdk_init() add_executable(${PROJECT_NAME} main.c) pico_add_extra_outputs(${PROJECT_NAME}) target_link_libraries(${PROJECT_NAME} pico_stdlib) pico_enable_stdio_usb(${PROJECT_NAME} 1) pico_enable_stdio_uart(${PROJECT_NAME} 0) |
/* # SEMÁFORO PARA RASPBERRY PI PICO en C # SETA43 # seta43.duckdns.org # seta43.blogspot.com # Palencia / España # 25-08-2022 */ #include <stdio.h> #include <pico/stdlib.h> #define sROJO 18 #define sAMARILLO 19 #define sVERDE 20 #define pVERDE 17 #define pROJO 16 int tPARPADEO=400; int tSEMAFORO=10000; int tAMARILLO=3000; long tPEATON=6000; #define OUTPUT 1 #define INPUT 0 #define HIGH 1 #define LOW 0 void pinMode(unsigned int port, char modo) { gpio_init(port); if(modo==OUTPUT) gpio_set_dir(port, GPIO_OUT); else gpio_set_dir(port, GPIO_IN); } void digitalWrite(unsigned int port, char val) { gpio_put(port, val); } void delay(long t) { sleep_ms(t); } int main() { stdio_init_all(); pinMode(sROJO, OUTPUT); pinMode(sAMARILLO, OUTPUT); pinMode(sVERDE, OUTPUT); pinMode(pVERDE, OUTPUT); pinMode(pROJO, OUTPUT); //#INICIALIZAR digitalWrite(sAMARILLO, HIGH); digitalWrite(sROJO, HIGH); digitalWrite(sVERDE, LOW); digitalWrite(pROJO, HIGH); digitalWrite(pVERDE, LOW); delay(1000); while(1) { digitalWrite(sAMARILLO, LOW); digitalWrite(sROJO, HIGH); digitalWrite(pROJO, LOW); digitalWrite(pVERDE, HIGH); delay(tPEATON); //Parpadeo verde peatón for(int z=0;z<=7;++z) { digitalWrite(pVERDE, LOW); delay(tPARPADEO); digitalWrite(pVERDE, HIGH); delay(tPARPADEO); } digitalWrite(pROJO, HIGH); delay(1000); digitalWrite(sVERDE, HIGH); digitalWrite(sROJO, LOW); delay(tSEMAFORO); digitalWrite(sAMARILLO, HIGH); digitalWrite(sVERDE, LOW); delay(tAMARILLO); } } |