i used ATmega328p chip to make a car, but its the car is always controlled by me. my question is in robotic arms , the arm moves using the kinematics that i put, what chip and programming language should i use? i know of matlab which works with matrices, but what chip works with it?
-
$\begingroup$ why you do not use ATmega328p for example? It is complete computer, you can program it to do nearly everything you want (with some limitation given computing speed and memory, but both can be improved if needed)? $\endgroup$– gilhadCommented Apr 7, 2017 at 21:40
2 Answers
Matlab doesn't run on the Atmega328p. You have to use a separate computer, which runs Matlab, and then use some kind of data transmission from the computer to the chip to tell it where to go. I e, the chip would receive solved joint angles from the transmission, and drive the actuators to those angles.
If you need to run the Matlab on your particular robot, then you need a computer on the robot that can run Matlab. An Intel NUC is a good choice for this. You'll still need some way to get the data from Matlab to the actuators; either use actuators with a built-in serial bus (such as Robotis Dynamixel servos and the USB2Dynamixel serial interface) or use your Atmega328p as a translator from Matlab commands to actuator signals.
Another option is to write the forward kinematics directly in C++ code. This requires that you're OK with linear algebra details and with C++ programming. Most microcontrollers can do well in this situation, but I'd recommend something reasonably modern an powerful, such as the Teensy 3.5 from PJRC: https://www.pjrc.com/store/teensy35.html It has a hardware floating point unit, which is great, and a good set of libraries and integration into the Arduino IDE, so it will look similar to what you're used to.
There are a number of way to integrate code written in Matlab to a number of platforms. For a robot arm, you would most likely need a processor with a floating point unit.
Probably the most cost effective solution is to use a Raspberry Pi. It is officially supported as a platform by Matlab (Simulink), so you may be able to transfer matlab code directly to the Pi (please look up the limitations here)
Arduino is also supported by Matlab (however computational performance is more limited then the rPi).
If you want to use different chips, Matlab can generare C/C++ code from Matlab or Simulink applications. It require some coding knowledge, but you can incorporate these to an IDE using the same language and use them even if Matlab does not officially support the integration to that IDE.