User Tools

Site Tools


user:ccornair:portfolio:datacomm6

Objective

To connect 2 raspberry pis and send morse code form one and display on the other

Prerequisites

raspberry pie,monitor, keyboard, data cable, hdmi to usb cable, network cable

Background

The Raspberry Pi is a credit-card-sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of promoting the teaching of basic computer science in schools.[7][8][9][10][11]

The Raspberry Pi is manufactured through licensed manufacturing deals with Newark element14 (Premier Farnell), RS Components and Egoman. All of these companies sell the Raspberry Pi online.[12] Egoman produces a version for distribution solely in China and Taiwan, which can be distinguished from other Pis by their red coloring and lack of FCC/CE marks. The hardware is the same across all manufacturers.

Code

conduit

#include "rpi.h"
#include<stdlib.h>
int i,j,k,l;
int main()
{
  if(map_peripheral(&gpio) == -1)
  {
    printf("Failed to map the physical GPIO registers into the virtual memory space.\n");
    return -1;
  }


/*    INP_GPIO(17);
        OUT_GPIO(7);
*/
    INP_GPIO(22);
        OUT_GPIO(10);
/*
    INP_GPIO(9);
        OUT_GPIO(11);
    INP_GPIO(8);
    OUT_GPIO(23);
*/
        GPIO_CLR = 1 << 8;
        GPIO_CLR = 1 << 9;
        GPIO_CLR = 1 << 22;
        GPIO_CLR = 1 << 17;




    while(1)
    {


        i = GPIO_READ(8);
        printf("%d \n", i);
        if(i !=0)
        {
        GPIO_SET = 1 << 23;
        }
        else
        {
        GPIO_CLR = 1 << 23;
        }

                j = GPIO_READ(9);
                printf("%d \n", j);
                if(j !=0)
                {
                GPIO_SET = 1 <<11;
                }
        else
        {
                GPIO_CLR = 1 << 11;
                }

                k = GPIO_READ(22);
                printf("%d \n", k);
                if(k !=0)
                {
                GPIO_SET = 1 << 10;
                }
        else
        {
                GPIO_CLR = 1 << 10;
                }

                l = GPIO_READ(17);
                printf("%d \n", l);
                if(l !=0)
                {
                GPIO_SET = 1 << 7;
                }
        else
        {
                GPIO_CLR = 1 << 7;
                }



    }
}
#include <stdio.h>
#include <stdlib.h>
#include "rpi.h"
int main()

{

if(map_peripheral(&gpio) == -1) 
  {
    printf("Failed to map the physical GPIO registers into the virtual memory space.\n");
    return -1; 
  }

 INP_GPIO(23);
  OUT_GPIO(23);

  
  


char morse;

printf("type a string: \n");
scanf( "%c", &morse );

while( morse != '#' )
{

if( morse  == 'A' )

	{
		GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;
	    usleep(360000);	
		GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23;
		usleep(1480000);
		printf( ".- " ) ;
	}
	
	else if( morse == 'B' )

    {   
		GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23;
		usleep(200000);
        GPIO_SET = 1 << 23; 
        usleep(80000);
        GPIO_CLR = 1 << 23; 
        usleep(360000); 
		GPIO_SET = 1 << 23; 
        usleep(80000);
        GPIO_CLR = 1 << 23; 
        usleep(360000); 
		GPIO_SET = 1 << 23; 
        usleep(80000);
        GPIO_CLR = 1 << 23; 
        usleep(760000);  	
        printf( "-... " ) ; 
    }   
	
	else if( morse == 'C' )

    {   
        GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(200000);
        GPIO_SET = 1 << 23; 
        usleep(80000);
        GPIO_CLR = 1 << 23; 
        usleep(360000); 
		GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(200000);
        GPIO_SET = 1 << 23; 
        usleep(80000);
        GPIO_CLR = 1 << 23; 
        usleep(760000); 

		printf( "-.-. " ) ;
    }
	
	else if( morse == 'D' )

    {   
        GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(200000);
        GPIO_SET = 1 << 23; 
        usleep(80000);
        GPIO_CLR = 1 << 23; 
        usleep(360000); 
        GPIO_SET = 1 << 23;
		usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(1200000);
        
		printf( "-.. " ) ; 
    }   

    else if( morse == 'E' )

    {   
		GPIO_SET = 1 << 23;
		usleep(80000);
        GPIO_CLR = 1 << 23; 
        usleep(2080000);

        printf( ". " ) ; 
    }   

	else if( morse == 'F' )

    {   
        GPIO_SET = 1 << 23;
		usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
        GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		GPIO_SET = 1 << 23;
        usleep(80000);
		GPIO_CLR = 1 << 23;
        usleep(760000);
		printf( "..-. " ) ; 
    }   

	else if( morse == 'G' )

    {   
        GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(1200000);
		printf( "--. " ) ; 
    }   

	else if( morse == 'H' )

    {   
         GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		 GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		 GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		 GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(760000);
		printf( ".... " ) ; 
    }   

	else if( morse == 'I' )

    {   
         GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		 GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(1640000);
		printf( ".. " ) ; 
    }

	else if( morse == 'J' )

    {   
         GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		 GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(200000);
		 GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(200000);
 		GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(600000);

		printf( ".--- " ) ; 
    }   

	else if( morse == 'K' )

    {   
         GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(200000);
		 GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(1040000); 

		printf( "-.- " ) ; 
    }   

	else if( morse == 'L' )

    {   
        GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(200000); 
		GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(760000);

		printf( ".-.. " ) ; 
    }   

	else if( morse == 'M' )

    {   
        GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(200000);
		GPIO_SET = 1 << 23; 
        usleep(240000);
        GPIO_CLR = 1 << 23; 
        usleep(600000);

		printf( "-- " ) ; 
    }   

	else if( morse == 'N' )

    {   
        GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(1640000);
		printf( "-. " ) ; 
    }   

	else if( morse == 'O' )

    {   
        
		 GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		 GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		 GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(1040000);
		printf( "--- " ) ; 
    }   

	else if( morse == 'P' )

    {   
        GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(760000);
		printf( ".--. " ) ; 
    }   

	else if( morse == 'Q' )

    {   
		GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		 GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(600000);
		
        printf( "--.- " ) ; 
    }   

	else if( morse == 'R' )

    {   
        GPIO_SET = 1 << 23; 
        usleep(80000);
        GPIO_CLR = 1 << 23; 
        usleep(360000);
        GPIO_SET = 1 << 23;
        usleep(240000);
        GPIO_CLR = 1 << 23;
        usleep(200000);
		GPIO_SET = 1 << 23; 
        usleep(80000);
        GPIO_CLR = 1 << 23; 
        usleep(1200000);
		
		printf( ".-. " ) ; 
    }   

	else if( morse == 'S' )

    {   
        GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(360000);
		GPIO_SET = 1 << 23;
        usleep(80000);
        GPIO_CLR = 1 << 23;
        usleep(1200000);

		printf( "... " ) ; 
    }   

	else if( morse == 'T' )

    {   
        GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(1920000);

		printf( "- " ) ; 
    }   

	else if( morse == 'U' )

    {   
		GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(360000);  	
        GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(360000);
		GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(1040000);
  	
		printf( "..- " ) ; 
    }   

	else if( morse == 'V' )

    {   
        GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(360000);
		GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(360000);
		GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(360000);
		GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(600000);

		printf( "...- " ) ; 
    }   

	else if( morse == 'W' )

    {   
        GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(3600000);
		GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(200000);
		GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(1040000);
	 
		printf( ".-- " ) ; 
    }   

	else if( morse == 'X' )

    {   
        GPIO_SET = 1 << 23;
		usleep(240000);
	    GPIO_CLR = 1 << 23; 
		usleep(200000);
		GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(360000); 
		GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(360000); 
		GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(600000);
		
		printf( "-..- " ) ; 
    }   

	else if( morse == 'Y' )

    {   
        GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(200000);
		GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(360000); 
		GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(200000);
		GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(600000);
		
		printf( "-.-- " ) ; 
    }   

	else if( morse == 'Z' )

    {   
        GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(200000);
		GPIO_SET = 1 << 23;
		usleep(240000);
		GPIO_CLR = 1 << 23; 
		usleep(200000);
		GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(360000);
		GPIO_SET = 1 << 23;
		usleep(80000);
		GPIO_CLR = 1 << 23;         
		usleep(760000);
		printf( "--.. " ) ; 
    }   
	
	scanf( "%c", &morse );

}

printf( "\n" );

return 0;

}

reflection

we did not completely finish this project but we did get it working for the most part, just had problems with latency

user/ccornair/portfolio/datacomm6.txt · Last modified: 2013/12/14 02:03 by ccornair