EMBEDDED PROGRAMMING MODULE
▪ Members:
• Barış Yurdakul.
• Enes Abdülhalik.
• Emircan Demirel.
▪ Responsibilities:
• Deciding what sensors to use.
• Implementing control algorithms.
• Implementing sensor filtering and estimation algorithms.
• Provide an abstraction for more complicated to programs to control the robot’s movement and know its position
▪ Module Interactions:
• Body Assembly Module: Many tests will be done on the actual body. So, the body assembly module needs to be ready for any changes and additional tests needed.
• Circuitry Module: Provide information about how to wire electronic parts.
▪ Technologies to Be Used:
• C/C++: They are the best and most viable option for embedded programming. Communities provide a very large collection of libraries with high performance. It is also the language requested by the instructor.
• Raspberry Pi 3B: It has a good amount of I/O ports and pins, good performance for an embedded system, a very large and respectable community, and a lot of examples online doing the same project which will provide a good idea about what to expect from the robot.
• HC-SR04 sensors: They will probably be mounted in the front to detect when the robot is heading towards an obstacle.
• MPU6050 6DOF IMU sensor: Will provide information about rotation and linear acceleration of the robot in real time. It’s very popular, cheap, and has tons of libraries implementing various filtering and estimation algorithms.
• Raspberry Pi Camera Module: To provide real-time visual feed of what the robot is seeing.
• MG996r servo motors: They are strong, reliable, and popular servo motors that are used in such projects.
• PCA9685 I2C Servo Driver Module: This module will fill the lack of PWM I/O and insufficient power supply of the Raspberry Pi board, and will allow better cable management. It is controlled using the I2C communication protocol, which only occupies 2 pins on the Raspberry Pi board.
• 2x16 LCD: Will be used for real-time state information during operation.