User:Callahanp/Two Way Communication between a Raspberry Pi and Arduinos

From FlightGear wiki
Jump to: navigation, search

For cockpit building, I think there is a need to communicate quickly between Arduino's acting as device controllers and the Raspberry Pi.

Communication Methods

There are several communication mechanisms available:

  • SPI
  • I2C
  • GPIO to Arduino RX/TX
  • USB
  • Parallel

Implementation Choices:

  • Arduino GPIO to Raspberry Pi causes an interrupt on the Pi. The ISR (Interrupt Service Routine) gets data from the Arduino.
    • Single Byte Mode - Pi makes multiple transmissions to the Arduino after enabling it with a GPIO Pin if necessary
    • Multi-Byte Mode - Pi sends multiple bytes to the Arduino in a single transmission
  • Arduino is Polled by the Raspberry Pi
  • Communication Method
    • SPI
    • I2C
    • USB Serial
    • RxTx Serial
    • Paralell?
  • Arduino Models:
    • Nano
    • Uno
    • MEGA 2560
  • Arduino settings
    • Clock Frequencies
      • SPI
      • I2C
      • USB Serial
      • RxTx Serial
      • Parallel
  • PI Gui Inputs
    • Raspberry Pi Comm Method
      • SPI
      • I2C
      • USB Serial
      • RxTx Serial
      • Parallel
    • Clock Frequency
    • Raspberry Pi Interrupt Pin
    • Raspberry Pi Arduino Comm Enable
      • Pi GPIO
      • Multiplexer Address
      • Multiplexer Pin
      • Parallel Port Pins
    • Throughput Bytes/KB/MB
      • SPI
      • I2C
      • USB Serial
      • RxTx Serial
      • Parallel
      • Total Bytes
      • SPI
      • I2C
      • USB Serial
      • RxTx Serial
      • Parallel
      • Total Bytes
    • Error Count
      • SPI
      • I2C
      • USB Serial
      • RxTx Serial
      • Parallel
      • Total Bytes
    • Test Pattern
    • Send Byte Count