Quaternion C Library

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
DaSi_281136
Level 3
Level 3
25 replies posted 10 replies posted 5 replies posted

I'm not sure if this should be posted elsewhere but...

   

 Does anyone know of any quaternion libraries or functions geared towards microcontrollers like PSOC5?
It would be nice if Creator came with some extended math libraries for robotics or other 3D applications.

0 Likes
5 Replies
Anonymous
Not applicable

I'm not sure if this should be posted elsewhere but...

   

 Does anyone know of any quaternion libraries or functions geared towards microcontrollers like PSOC5?
It would be nice if Creator came with some extended math libraries for robotics or other 3D applications.

   

 

   

Hi,

   

did you find quaternion routines that are available either in "C" source or even better already tested on an ARM-Cortex core? It would be nice to share information like robotic related software here on this forum.

   

Robert

0 Likes
Anonymous
Not applicable

Here is some source code for making Quaternion operations in C and other languages, i think you can take the code from here and create an own library.

   

 

   

http://rosettacode.org/wiki/Simple_Quaternion_type_and_operations

   

 

   

Regards,

   

Victor Andres

0 Likes
DaSi_281136
Level 3
Level 3
25 replies posted 10 replies posted 5 replies posted

Thanks for the link!

   

I've been using matrix math as a workaround for now.
Eventually I'll get motivated enough to develop some quaternion functions for the PSOC5 when the dreaded gimbal lock gives me no other choice.

   

Of course if Cypress wants to help out the robotics and graphics community it would be much appreciated

   

It's not only useful for robotics though: http://www.youtube.com/watch?v=O-E0BgYP0qw

0 Likes
KishoreS_96
Employee
Employee
5 sign-ins 50 replies posted 25 replies posted

 Hi,

   

 

   

Your video seems very interesting. Could you give some more details on what are all the interfaces you have made and how exactly you are using PSoC for your application?

   


Regards,

   

Kishore.

0 Likes
DaSi_281136
Level 3
Level 3
25 replies posted 10 replies posted 5 replies posted

 I'll try.

Basically I'm working on a memory expansion module for the Vectrex (an 80's video game machine).
Vectrex games came on a cart with up to 32K of ROM. The Vectrex itself has 2K of RAM of which only 874 bytes are available to the programmer. This setup gives the Vectrex an extra 18K of RAM that is also visible to the PSOC5.

The system has 3 components. The PSOC, a 32K SRAM chip (from Cypress of course) and a game cartridge.
The Vectrex address bus, data bus and sync signals are extended out to all components. The PSOC logic blocks are designed to arbitrate these signals between all the devices. The PSOC can take control of the external RAM chip while allowing the Vectrex to keep reading the 32K game cart. In effect acting like a co-processor (of sorts).

   

The Vectrex can send "commands" to the PSOC by using memory registers in the expanded RAM. A read or write to a certain address will cause an interrupt event for the PSOC. The PSOC then performs the operation and flags the Vectrex when it's done. Meanwhile the Vectrex is free to perform other tasks that do not use external RAM and doesn't have to wait for the PSOC.

   

The Y-tube video shows the Vectrex using the PSOC to perform 3D rotations of objects it stores in the external RAM.

0 Likes