RoboMon
RoboMon is my test bed robotics base. I use the 8515 since it has plenty of I/O and SRAM for me to play with. There is a lot of good stuff here: LCD drivers, Quadrature encoder drivers, a general PID filter and motion control algorithms. All the code takes around half the available resources of an 90S8515. There is plenty of room for more advanced stuff or more sensors. RoboMon doesn't actually do anything at the moment. I was aiming for some good position control algorithms to drive an XY table for machining purposes.
RoboMon CPU card with motor driver LM298 to the left, two photocells to the right and the LCD display removed to show the connector. The connectors at the top are, from left to right, power, serial io and ISP (In Circuit Programming)
The base uses a couple of surplus Pittman gearhead (1:5.9) motors with HP HEDS encoders and 500 cpr slotted wheels. Due to limitations on how many interrupt lines I have on the 8515, I implemented a 2x encoder to get 1000 counts/revolution of the wheel. Under light loads the PID algorithm can control the wheel position to within 1 count or 1/5900 of the output shaft revolution.
The ZIP file for all the software, targeted to the IAR 1.4 assembler:
The software uses AvrX as the foundation plus the following files:
RoboMon.asm - Top Level initalization code for robotics platform
registers.inc - Register definitions for the entire project
MotionControl.asm - Velocity profiling code
MotorControl.inc - Data structures for motor and motion control
MotorControl.asm - Motor control PID filter
Encoder.asm - Interrupt driver for quadrature encoder feedback
analog.asm - Interrupt driver for two photocell "eyes"
lcdtask.asm - Little task for updating LCD panel
lcdio.inc - Hardware definition file for LCD panel driver
LCD_IO4.asm - Flat (no stack usage) nibble driver for standard LCD panel
eeprom.asm - Field modifiable PID and motion control values
math.asm - A variety of 8x16 and 16x32 mult/divide routines
lightseek.asm - Small task that drives motors based upon analog input
debug.xcl - Xlink command file to build the hex and debug object files
eep.xcl - Xlink command file to build the EEPROM hex file
build.bat - DOS Bat file to build the RoboMon software
Courtesy: Larry Barello
- Board index
- Search
-
- It is currently Tue Apr 30, 2024 3:38 pm
- All times are UTC+05:30
How to build a test bed robot
Control Systems & Robotics Topics
Return to “Control Systems & Robotics”
Jump to
- Programmable Electronics
- ↳ Arduino
- ↳ Raspberry Pi
- ↳ Microcontrollers
- ↳ FPGA
- ↳ Digital Signal Processors
- ↳ Other
- Programming
- ↳ Web programming
- ↳ PHP & MySQL
- ↳ ASP & ASP.Net
- ↳ .Net & Other Programming
- ↳ .NET Programming
- ↳ Visual Basic Programming
- ↳ Java Programming
- ↳ C/C++ Programming
- Engineering
- ↳ Electronics & Electrical Engineering
- ↳ Embedded Systems
- ↳ Computer Science
- ↳ Software Engineering
- ↳ Data Structures & Algorithms
- ↳ Programming Languages & Compiler Theory
- ↳ Operating Systems
- ↳ Cryptography
- ↳ Computer Networks
- ↳ SQL & Database
- ↳ Computer Architecture
- ↳ Graphics & Vision
- ↳ Artificial Intelligence
- ↳ Neural Networks
- ↳ Multimedia
- ↳ Mathematics
- ↳ Other
- ↳ Control Systems & Robotics
- ↳ Mechanical
- ↳ Thermodynamics
- ↳ Fluid Dynamics
- ↳ Aerodynamics
- ↳ Manufacturing
- ↳ Energy
- ↳ Dynamics
- ↳ Statics
- ↳ Automobile
- ↳ Other
- ↳ Other
- Operating Systems
- ↳ Windows
- ↳ Linux
- ↳ Mac OS
- ↳ Android
- ????? ????
- ↳ ???????? ?????
- ↳ ??????? ???? ?????
- ↳ ????? ?????? ???? (Buy Guide)
- ↳ ??????? ???? ??????? (Where to buy)
- ↳ ????????? ???????? (Recommend - Complain - Review)
- General
- ↳ News & Announcements
- ↳ General Discussions
- ↳ Viruses, Trojans, Spyware and Adware
- ↳ Computer & Network Security
- ↳ Web Related
- Members Zone
- ↳ Project Assistance
- ↳ Advertising
- ↳ Jobs & Investment Opportunities
- ↳ Introductions
- ↳ Presents & Donations
- ↳ Entertainment
- ↳ Music & Albums
- ↳ Movies
- ↳ Games