Raspberry Pi Pico

The rise of the micro controller has one new board out today. The Raspberry PI foundation has release and micro controller called the “Pico”.  What is the difference between a micro controller and a micro computer is that is has no operating system.  The code is loaded into the processor and it run just that one program 24 hours an day.  They are mostly used in controlling device such as car engines, thermostats, dishwashers, and other singular device running a single task.

What difference with the device the the foundation created there own silicon processor the RP2040 which has its spec’s below.  The board has a USB jack built on top of it which if you hold down the button while plugging it in turns it into a USB drive where you can simply drag and drop your software into memory.

  • RP2040 microcontroller chip
  • 264KB on-chip SRAM
  • 2MB on-board QSPI Flash
  • 26 multifunction GPIO pins, including 3 analogue inputs
  • 2 × UART, 2 × SPI controllers, 2 × I2C controllers, 16 × PWM channels
  • 1 × USB 1.1 controller and PHY, with host and device support

The other difference is that like the Arduino it can run the “C” programming language it can also run “Micro Python” which is a subset of the Python language.  Micro Python is getting a very popular in the micro controller boards.  It is a higher level language that is easier to learn and to work with.  Below is an example of a Morse code program written in Micro Python which is only 53 lines long.  And some hardware to interface to your radio and it will transmit Morse code all day long.

from machine import Pin, Timer
import time
led=Pin(25, Pin.OUT)
#----------------------------------------
# Morse code dictionary
#----------------------------------------
morse = {
    'A':'.-','B':'-...','C':'-.-.','D':'-..','E':'.','F':'..-.',
    'G':'--.','H':'....','I':'..','J':'.---','K':'-.-','L':'.-..',
    'M':'--','N':'-.','O':'---','P':'.--.','Q':'--.-','R':'.-.',
    'S':'...','T':'-','U':'..-','V':'...-','W':'.--','X':'-..-',
    'Y':'-.--','Z':'--..', 
    '1':'.----','2':'..---','3':'...--','4':'....-','5':'.....',
    '6':'-....','7':'--...','8':'---..','9':'----.','0':'-----',
    '.':'.-.-.-','/':'-..-.',' ':' '
}
#----------------------------------------
def dah(t):
    print("-", end=" ")
    led.value(1)
    time.sleep(t*3.0)   #Dah
    led.value(0)
    time.sleep(t*2.0)   #Char spacing
    
def dit(t):
    print(".", end=" ")
    led.value(1)
    time.sleep(t)       #Dit
    led.value(0)
    time.sleep(t*2.0)   #Char spacing
    
def space(t):
    print("  ", end=" ")
    time.sleep(t*3.0)   #Letter spacing
#----------------------------------------
def Transmit(message):
    timing=0.150        #Timing Value       
    Transmit_Code=""
    print("\n")
    for letter in message:  #Break message into code
        print(letter," ",morse[letter])
        Transmit_Code=Transmit_Code+morse[letter]+" "

    print("To be sent: ",Transmit_Code,"\n")
    for character in Transmit_Code: #Transmit the code
        if character == "-": dah(timing)
        if character == ".": dit(timing)
        if character == " ": space(timing)
#----------------------------------------
while True:
    Transmit("W3KWH FOX HUNT")
    time.sleep(5)
    

 

43690cookie-checkRaspberry Pi Pico