TASK TO DO:

    Group Work -

  • Send a message between two projects.
  • Individual Work -

  • Design and build a wired and/or wireless network connecting at least two processors.
  • WHAT I HAVE DONE:

  • Described my design and fabrication process using words/images/screenshots.
  • Explained the programming process/es.
  • Included original design files and code.


  • NETWORKING AND COMMUNICATION-


    This assignment is tough to understand to me. But I read more about it and I have explained here what I understood in this week.

    Networking:-

    Two or more computer systems linked together is known as networking. Local area network and wide area network are the types of networks.


    Networking is simply an information exchange between you and another person. It involves establishing relationships with people. A network consists of two or more computers that are linked in order to share resources(such as printers and CD's), exchange files, or allow electronic communications. The computers on a network may be linked through cables, telephone lines, radio waves, satellites, or infrared light beams.

    I2C:-

    The Inter-integrated Circuit (I2C) Protocol is a protocol intended to allow multiple "slave" digital integrated circuits ("chips") to communicate with one or more "master" chips. Each I2C bus consists of two signals: SCL and SDA. SCL is the clock signal, and SDA is the data signal. The clock signal is always generated by the current bus master.



    It is a master to slave communication protocol. Each slave has a unique address. Master device sends the address of the target slave device and read/write flag. The address is match any slave device that device is ON, remaining slave devices are disable mode. Once the address is match communication proceed between master and that slave device and transmitting and receiving the data.

    Communication:-

    Communication is passing the message or commands from one board to another board.

    Serial Communication-

    Serial communication is the process of sending data one bit at a time, sequentially, over a communication channel or computer bus.(From google)

    A parallel link transmits several streams of data simultaneously along multiple channels whereas a serial link transmits only a single stream of data. In many cases, serial is cheaper to implement than parallel. Many ICs have serial interfaces, as opposed to parallel ones, so that they have fewer pins and are therefore less expensive.

    Serial Bus-

    When the printed circuits have more pins then the integrated circuits are more expensive. To reduce these more pins many, many ICs use a serial bus to transfer data when speed is not important. Some of them are explained by neil like, SPI, I2C, etc.

    Asynchronous Communication and Synchronous Communication-

    From below image, We can imagine what is both communication exactly..


    In synchronous communication require the consumer and provider to be present at the same time for communication to take place and In asynchronous communication, the sender and receiver does not need not to be present at the same time for communication to take place.

    I2C-

    I created a simple arduino board I2C circuit.



    CODE FOR MASTER:-


    For this we have to include the wire.h library.
    We begin the I2C using wire.begin() function. We use function as follows:
    Begin the transmission- Wire.beginTransmission(device no)
    write the character- Wire.write(data to be sent)
    End the transmission-Wire.endTransmission()
    Here additionally I have used the the serial command because I need some visual proof on both sides that data is being sent and received.
    Here we use serial command to see the results....

    CODE FOR SLAVE:-


    For this also we have to include the wire.h library.
    We begin the I2C using wire.begin() function.
    For all device address we use 8 will receive the transmission.
    In this code we use the Wire.onReceive(receiveEvent) function for receiving the transmission.
    This is the output...






    Designing my board for communication-

    For this week, we have to two types of boards. These board are similar to the neil's board but I routed myself.

    1. BRIDGE board-
    This board communicates with the serial port and other board with the help of FTDI cable.
    Schematic of the board-


    Routing of the board-


    Export as a PNG format......


    2. NODE board-
    This board connect to the bridge board to receive the signal or for communicate.
    Schematic of the board-


    Routing of the board-


    Export as a PNG format......


    Milling and Soldering of the board-

    Right now, I am familiar with the modela and milling of the boards.....
    After milling, I soldered the boards...


    Programming the boards-

    So, here I decided to try protocol, RS232/RS 422/RS485...
    Serial bus is a single line communication in which processor are connected and these processor are in master slave relation.
    I am going to try Neil's example. So, here my computer is the master there is a bridge board which receives the Rx and the Tx line and in turn all the other processors are connected with the same Rx and Tx line.
    The bridge board and the two node boards will be coded and given a unique id, in my case 0,1 and 2 respectively. I programmed all the boards and gave them their unique ids.
    I used Neils make file from the schedule page and used avrdude to program the board.

    Group Assignment-


    For group assignment, we have to communicate within boards of two different projects. So, we had two boards, one was of Rohan and the other was of Arefin.




    Both of the boards were made out using the architecture of Attiny 45. Rightnow, its easy to work along with attiny 45. The code was same that we are using for individual assignment. The result of this work is..

    via Gfycat

    You can download original boards file from here.
    You can download original code file from here.

    Learning Outcomes-

    In this week we tried different things and I understand the master-slave relation. Rightnow I can understand the programming stuff...