OOAK Table Tennis Forum


A truly International Table Tennis Community for both Defensive and Offensive styles!
Live Table Tennis Videos Table Tennis News Live OOAK Forum Links About OOAK Table Tennis Forum OOAK Forum Memory
It is currently 18 Nov 2017, 04:48


Don't want to see any advertising? Become a member and login, and you'll never see an ad again!



All times are UTC + 9:30 hours




Post new topic Reply to topic  [ 226 posts ]  Go to page Previous  1 ... 12, 13, 14, 15, 16  Next
Author Message
PostPosted: 28 Nov 2016, 20:22 
Offline
New Member

Joined: 21 Oct 2016, 19:24
Posts: 7
Has thanked: 2 times
Been thanked: 1 time
Still waiting for my Gertbots.
The Raspberry arrived and i managed the Bluetooth connection.

I have started to program the app.
There are some questions popping up:

Does the Random function only randomize the direction, or are the tractionary, the spin etc. also randomized?
I think you can not recognize the spin if it is generated by chance.

Is it important to randomize how many balls are played?

@Dave: Can you help me with the pin assignment at the db25 or do I have to measure myself?

Regards Stefan


Top
 Profile  
 


Don't want to see this advertisement? Become a member and login, and you'll never see an ad again!

PostPosted: 01 Dec 2016, 03:37 
Offline
New Member

Joined: 07 Nov 2016, 11:38
Posts: 9
Has thanked: 8 times
Been thanked: 0 time
Blade: Grubba
FH: Sriver-EL
BH: Sriver
johnnykl wrote:

Btw, I don't have the Amicus. If by any chance you are in the south bayarea of CA, then maybe I can be of help.

Dave: If you are reading this, please consider open sourcing what you have as this will help us out a lot and your efforts will not be wasted.


Johnnyk,

I've been following this thread and actually Dave's post about a potential software/app. It would be nice to be able to control it using a smartphone. I'm in the East Bay area, not a programmer but maybe we can work out something to develop the software with Dave's help ofcourse. I actually just ordered the Amicus Pro ;)


Top
 Profile  
 
PostPosted: 03 Dec 2016, 21:07 
Offline
New Member

Joined: 21 Oct 2016, 19:24
Posts: 7
Has thanked: 2 times
Been thanked: 1 time
hi,

first screenshots from my app "smarticus" version 0.01:
Image Image Image Image Image

Bluetooth Connection to Raspberry via rfcomm.

We should work together on an bluetooth interface protocol.

Like: How many steps are from the far left to the far right.
How many different speed settings are possible.

If we define a standard protocol, we can easy share different apps for different devices an use it for raspberry and arduino.
Maybe 3 bits for what to change and 5 bits for the amount. Then we only need to send one Byte for every change.
Example: there are 23 trajectory steps and we define Trajectory is 011. Setting the trajctory to 13 would be 011 01101 -> 0x6D hex


Top
 Profile  
 
PostPosted: 04 Dec 2016, 17:32 
Offline
New Member

Joined: 21 Oct 2016, 19:24
Posts: 7
Has thanked: 2 times
Been thanked: 1 time
After I've been thinking about timing, I think I should throw the whole exercise at once to Raspberry and not every ball individually. The raspberry should then send the individual balls to the amicus and always wait for the signal of the amicus that a ball was played (IR sensor).

Any feedback?


Top
 Profile  
 
PostPosted: 09 Dec 2016, 02:09 
Offline
New Member

Joined: 07 Nov 2016, 11:38
Posts: 9
Has thanked: 8 times
Been thanked: 0 time
Blade: Grubba
FH: Sriver-EL
BH: Sriver
HI Stefan, this is good stuff! I just got my Amicus and still learning how the control panel works. I'll definitely keep an eye on your posts!


Top
 Profile  
 
PostPosted: 20 Dec 2016, 00:14 
Offline
New Member

Joined: 21 Oct 2016, 19:24
Posts: 7
Has thanked: 2 times
Been thanked: 1 time
Update:
After I learned to program in Python and measured a lot on my amicus, I now know how I can control every motor and how I have to process the signal of the IR sensor which stops the ball feed.

Now I'm just wondering how the 3 spin engines must work together to get the desired speed and the desired spin.

When all 3 engines run full throttle, the ball is shot at maximum speed.

What happens when only one engine is full throttle and the other two engines are stopped? Is then the ballspeed = maximum ballspeed / 3?

The motors can also be reversed. Maybe the formula is simple: Ballspeed = SpeedMotorA + SpeedMotorB + SpeedMotorC (if a motor runs reversed then his Speed is negative)

And then there is the spin and the spin direction.

I need a formula for each engine, which gives me the required speed due to speed, spin and direction of spin.

For example: speed 100% and no spin = MotorA 100%, MotorB 100%, MotorC 100%

Even better would be a finished function, like.. ;)
public int[3] GetMotorSpeed(int speed, int spin, int spindirection)
{
// speed (20%-100%)
// spin percent (0%-100%)
// spindirection in (0min - 59min) 0min = Topspin, 15min = right Sidespin, etc

return int[3]{SpeedM1, SpeedM2, SpeedM3};
}

Can anyone help?


Top
 Profile  
 
PostPosted: 24 Apr 2017, 19:50 
Offline
New Member

Joined: 22 Apr 2017, 16:42
Posts: 2
Has thanked: 2 times
Been thanked: 2 times
steff76 wrote:
Update:
After I learned to program in Python and measured a lot on my amicus, I now know how I can control every motor and how I have to process the signal of the IR sensor which stops the ball feed.

Now I'm just wondering how the 3 spin engines must work together to get the desired speed and the desired spin.

When all 3 engines run full throttle, the ball is shot at maximum speed.

What happens when only one engine is full throttle and the other two engines are stopped? Is then the ballspeed = maximum ballspeed / 3?

The motors can also be reversed. Maybe the formula is simple: Ballspeed = SpeedMotorA + SpeedMotorB + SpeedMotorC (if a motor runs reversed then his Speed is negative)

And then there is the spin and the spin direction.

I need a formula for each engine, which gives me the required speed due to speed, spin and direction of spin.

For example: speed 100% and no spin = MotorA 100%, MotorB 100%, MotorC 100%

Even better would be a finished function, like.. ;)
public int[3] GetMotorSpeed(int speed, int spin, int spindirection)
{
// speed (20%-100%)
// spin percent (0%-100%)
// spindirection in (0min - 59min) 0min = Topspin, 15min = right Sidespin, etc

return int[3]{SpeedM1, SpeedM2, SpeedM3};
}

Can anyone help?


Sorry to see that no one seems interested in this project, i am though.
And where did David go with his big ambition to make this app?
Did you continue Stefan?

Best Regards
Bjorn


Top
 Profile  
 
PostPosted: 04 May 2017, 20:19 
Offline
New Member

Joined: 04 May 2017, 20:14
Posts: 2
Has thanked: 0 time
Been thanked: 1 time
Hi!

I am going to buy Amicus Advance about this July-August, then I'll look what I can do with the controller.

I am the programmer and have experience working with embedded sw (including motor controllers), desktop apps, mobile apps. So, if it is realistic to develop the controlling app without sacrificing the actual play time too much, I'll do it.


Top
 Profile  
 
PostPosted: 04 May 2017, 23:14 
Offline
Senior member

Joined: 29 Oct 2014, 02:52
Posts: 124
Has thanked: 0 time
Been thanked: 8 times
I have already done this. It is perfectly doable, but you will have to build your own hardware. There is no way to interface to the existing controller.


Top
 Profile  
 
PostPosted: 07 May 2017, 05:25 
Offline
New Member

Joined: 04 May 2017, 20:14
Posts: 2
Has thanked: 0 time
Been thanked: 1 time
Dave T wrote:
I have already done this. It is perfectly doable, but you will have to build your own hardware. There is no way to interface to the existing controller.

So, don't you want to share/sell you SW/HW?


Top
 Profile  
 
PostPosted: 23 May 2017, 10:35 
Offline
New Member

Joined: 08 Dec 2015, 10:24
Posts: 2
Has thanked: 0 time
Been thanked: 0 time
I've had the Amicus Professional for awhile now, and I love what the robot can do. I'm really looking forward to seeing everyone's progress with the custom controller.

It would be nice to have a community backed and developed open source project for this. I'm sure there are a lot of people who could help, but just don't have the time to fully commit to it.


Top
 Profile  
 
PostPosted: 19 Jul 2017, 04:13 
Offline
New Member

Joined: 21 Feb 2015, 12:31
Posts: 36
Location: Gold Coast, Australia
Has thanked: 5 times
Been thanked: 3 times
steff76 wrote:
Maybe the formula is simple: Ballspeed = SpeedMotorA + SpeedMotorB + SpeedMotorC (if a motor runs reversed then his Speed is negative)


I would think that when the speed of motor A = B = C (eg when they're all at max speed, or whatever), the ball speed = speedmotorA = speedmotorB = speedmotorC?


Top
 Profile  
 
PostPosted: 19 Jul 2017, 05:33 
Offline
Super User
User avatar

Joined: 06 Jun 2015, 13:09
Posts: 563
Location: Las Vegas
Has thanked: 14 times
Been thanked: 46 times
Custom controller would be amazing. I think I need a little primer to getting started.

Very cheap 3d printer parts might be a possibility.


Top
 Profile  
 
PostPosted: 10 Aug 2017, 11:35 
Offline
New Member

Joined: 30 Jul 2015, 13:17
Posts: 2
Location: France
Has thanked: 0 time
Been thanked: 0 time
Hi,

I also started to work on a custom controller 2 years ago but I stopped due to lack of motivation.
My table tennis club own an Amicus Advance but they didn't let me open it or put an oscilloscope to reverse engineer signals but i get my hands on an old Amicus 3000 that works pretty much the same (2 wheels instead of 3)
I am a web developer and known nothing about electronic and motor driver but i learned all the way up to build a custom controller.

I now have a prototype than can control the Amicus 3000 motors over bluetooth using an android app. The controller also tells the app when a ball was sent (IR Sensor). The controller can also do the "reset routine" (The same thing that happen when you power on the Amicus) needed to position the step motors (direction & trajectory) at the center.

Image Image

My prototype could be easily adapted to the new Amicus (As i built it with 3 wheels in mind even if the Amicus 3000 only use 2) but i don't know the pins on the DB25 connector.

steff76: Your posts are very interesting and I ran into the same problems as you.
I think the "GetMotorSpeed" function as you describe is very difficult to figure out with only theory. But, what I think is that:
- If all 3 wheels have the same speed, you have a no spin ball
- If top wheels are faster than bottom wheel, you have a topspin ball
- If bottom wheel is faster than top wheels, you have a backspin ball
- If top-left and top-right wheels have different speeds you have side spin ball
- Speed might be the average speed of all 3 wheels

But the best solution might be to measure the signals sent by the original controller for each combination of speed, spin, side spin.

One thing I miss the most on the Amicus is the ability to program semi random drills. For example: 1 ball to center, 1 ball either left or right, repeat...
Or even more complex: 1 ball to center, 1 ball either left or right, same ball as the last one, repeat...
If you throw the whole exercise on the controller, it needs to be smart enough to handle all of that. I think it's best to have a 'dumb' controller and a 'smart' application that can be upgraded more easily. But there might indeed be some timing problems. I have to investigate on that. At 120 ball/min it means a ball is sent every 0.5s. So when the controller receive the signal that a ball was sent:
- It has to tell the app
- The app needs to send the new ball parameters
- The controller needs to set motor's speed and position
All of that in less than 0.5s. Depending on the latency of the bluetooth connection it might be a problem...


Top
 Profile  
 
PostPosted: 05 Nov 2017, 08:56 
Offline
New Member

Joined: 08 Dec 2015, 10:24
Posts: 2
Has thanked: 0 time
Been thanked: 0 time
I'm wondering, has there been any progress with the custom controller? Seems like a few people have gotten some really good progress.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 226 posts ]  Go to page Previous  1 ... 12, 13, 14, 15, 16  Next



All times are UTC + 9:30 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Copyright 2012 OOAK Table Tennis Forum. The information on this site cannot be reused without written permission.

Powered by phpBB® Forum Software © phpBB Group




Don't forget to 'LIKE' our forum on Facebook if you enjoy the content: