From f73fb9573337b45df51c7e731b18d939d7894fd4 Mon Sep 17 00:00:00 2001 From: Phani Pavan K Date: Wed, 21 Feb 2024 20:34:11 +0530 Subject: [PATCH] add blinky and more setup details --- 0_Introduction/setup.md | 5 ++-- 1_Basic_GPIO/blinky.md | 50 ++++++++++++++++++++++++++++++++++++++++ assets/buildButton.png | Bin 0 -> 9442 bytes 3 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 1_Basic_GPIO/blinky.md create mode 100644 assets/buildButton.png diff --git a/0_Introduction/setup.md b/0_Introduction/setup.md index e6a8d39..a4e3b90 100644 --- a/0_Introduction/setup.md +++ b/0_Introduction/setup.md @@ -2,7 +2,7 @@ ### Dev Envitonment -Nobara 39 on a hand-me-down dual core dell laptop. An RPi Pico, programming over usb cable. Some wires, buttons, LEDs and resistors I Borrowed from lab. +Nobara/Fedora 39 on a hand-me-down dual core dell laptop. An RPi Pico, programming over usb cable. Some wires, buttons, LEDs and resistors I Borrowed from lab. ### Code Editor Instead of using Arduino IDE, I use Visual Studio Code for programming. I use it because I (seem to) write code more efficiently and because I have it customized it to my liking. @@ -15,7 +15,7 @@ Extensions I use: ### Project Generation -A C Pico project requires additional files to handle compilation: CMakeList.txt and pico_sdk_import.cmake, templates of both available in the installed pico sdk. To automate this, I use [Pico Project Generator](https://github.com/raspberrypi/pico-project-generator). +A C Pico project requires additional files to handle compilation: CMakeList.txt and pico_sdk_import.cmake, templates of both available in the installed pico sdk. To automate this, I am using [Pico Project Generator](https://github.com/raspberrypi/pico-project-generator) to generate the boilerplate code for the project. Most of the options are left default. The only changes are: `Console over USB` and `Create VSCode Project` are enabled. @@ -40,7 +40,6 @@ So uploading the code requires following steps: This will mount the pico as a storage device, to where the generated `.UF2` file should be copied. - ## Hardware Setup I have the RaspberryPi Pico Non-W variant: without the wireless chip. Soldered male jumper headers and mounted it onto a large breadboard. I am using solid copper wires for connections, because they stay in set shape. diff --git a/1_Basic_GPIO/blinky.md b/1_Basic_GPIO/blinky.md new file mode 100644 index 0000000..4c29481 --- /dev/null +++ b/1_Basic_GPIO/blinky.md @@ -0,0 +1,50 @@ +## Blinky + +The classic, the helloWorld of embedded programming. This program turns the LED on and off periodically. + +### Initial steps: +- Create new project with project generator. +- Open the project folder in VSCode. +- Build the project by pressing the `build` button at the bottom and select the option with `arm-none-eabi`. +- Make sure the build exits with code 0. + + + +### Basic Code: + +``` C +int main() +{ + stdio_init_all(); + + const uint OnBoardLED = PICO_DEFAULT_LED_PIN; + gpio_init(OnBoardLED); + gpio_set_dir(OnBoardLED, GPIO_OUT); + while (true){ + gpio_put(OnBoardLED, true); + sleep_ms(500); + gpio_put(OnBoardLED, false); + sleep_ms(500); + } +} +``` + +#### Explanation: +`stdio_init_all()`: initialize stuff + +`OnBoardLED = PICO_DEFAULT_LED_PIN`: Get the GPIO number of onboard LED. Remember this is GPIO Number, NOT PIN NUMBER. + +`gpio_init(OnBoardLED)`: Initialize that GPIO pin. + +`gpio_set_dir(OnBoardLED, GPIO_OUT)`: Set GPIO direction (`GPIO_OUT` for writing and `GPIO_IN` for reading). + +`while (true){}`: Super loop of the program + +`gpio_put(OnBoardLED, true)`: Set `OnBoardLED` pin to `on` (`true` to turn on/set to high/voltage to VDD, `false` to turn off/set to low/voltage to GND) + +Pico login HIGH voltage is 3.3v and LOW voltage is 0v. + +`sleep_ms(500)`: sleep for 500ms. + +--- + diff --git a/assets/buildButton.png b/assets/buildButton.png new file mode 100644 index 0000000000000000000000000000000000000000..58dfc869d731dfc7ca1861b851962ca506a3aec2 GIT binary patch literal 9442 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 literal 0 HcmV?d00001