• Welcome to PiBoSo Official Forum. Please login or sign up.
 
April 20, 2019, 07:37:56 pm

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - maggikk22

1
Paints / Re: Help, weird edge.
March 25, 2019, 08:14:53 am
I think it is because of some remaining transparent pixels, probably due to the use of layers in the design software.
2
Custom hardware / Re: mini handlebars for gamepad
March 12, 2019, 10:48:21 pm
Yeah mine was inspired on that!
But it misses a decent return to center system, the joystick is not strong enough to beat the friction of the 3D printed parts, even with the bearing.
You can see that on some videos, when the player releases both hands from the wheel.
(Also, I prefer my custom front panel...)

Congrats for setting direct steering to 100% with a standard joystick!
This means you would probably need to make the handlebars a little shorter, so you keep some reactivity.
3
Custom hardware / Re: mini handlebars for gamepad
March 12, 2019, 10:03:29 pm
Honestly, I did not expect it to be as functional as it is actually.
It is very stable and rigid, so deformation is extremely low even if you push hard.
The spring has the perfect tension: too strong would lead to frame deformation, too soft would lead to bad return to center.
I just make a calibration because the min value I get for left steering is around 5 instead of 0. (I get 255 as max value)
I could update the pivot design to fix this but I don't think it's worth it.
The range of movement is much bigger so accuracy is really improved.
The movement is also more "natural" than just left-right. And you're not disturbed by potential up-down movements of the original joystick.

Also, I set the direct steering to 100%, which is too sensitive and unplayable with a standard gamepad joystick.

Are you planning to build something for the Xbox gamepad? Let us know if so!
5
Custom hardware / Re: Motorbike Simulator for home.
March 01, 2019, 08:57:41 pm
this is my homemade simulator prototype.
To me, LeanGP should use more than simple springs if they want something playable.
I did so, results were not so bad, but still far away from reality...

https://www.youtube.com/watch?v=RxnQN0ZXmYk
https://www.youtube.com/watch?v=Q_nUObBl5iA
6
Custom hardware / Re: Motorbike Simulator for home.
March 01, 2019, 06:46:14 pm
sorry I'm replying to the top message about "LeanGP".
I love your system!
I don't like the LeanGP simulator. To me it's like the attached picture...
I'm 100% sure your system provide better sensations.
Sorry if I hurt you.
7
Custom hardware / Re: Motorbike Simulator for home.
March 01, 2019, 06:10:26 pm
I'm not sure of the efficiency of this universal simulator.
I also tried to build a prototype, and getting realistic sensations is really impossible if you don't get real time data from the game, at least the bike speed.
I'm not speaking about countersteering, handlebars movements, wheelies,... I'm only speaking about leaning:

1. The best example is the start: when you go out of the garage, the speed is very low. You need to lean the bike all the way to the bottom so the bike turns in the game.

2. Without force feedback that depends on the bike speed, sensations are not so good. So this simulator may be interesting for games that stream real time data, at least the speed. I don't know other games but GP Bikes able to do that "easily".
If the required movements are the same for 20 km/h and 200 km/h, then sensations are not realistic at all.

3. What's the maximum lean angle of your simulator? On mine, it is 45°. Beyond this angle, it is really hard to get back upright. Also, because there's no centrifugal effects that "sticks" you on the bike, riding is quite physical.

4. I really don't trust the springs-only system:
On your simulator, theorically, when you lean the bike, you get equilibrium at one single angle only.
At every other angular position, the torque provided by the rider+bike is different than the resistant torque provided by the springs. This means you will always tend to lean too much or not enough. Consequently, you will move your body on the bike a way that is completely different than reality.
For example, if you enter a left soft turn that require 5° only, you will try to slightly push the bike on the left side, while you will push your body on the right so you get equilibrium at 5°. in reality, you just need to slightly push your body on the left side. If you do that on the simulator, you will fall down to a higher angle.   
Same thing for getting the bike straight up: on the simulator, you need to move your body and pull the bike, whereas in reality it just requires a light body movement.
To me, springs tension must be adjusted for each angular position so equilibrium can be reached at any position .

5. I saw all your videos, but none of them show the game and the simulator on the same screen. Also, in-game sequences do not last more than a couple of seconds.
This makes me think you did not succeed to make 2 consecutive turns correctly.
8
Custom hardware / Re: mini handlebars for gamepad
February 24, 2019, 11:11:12 pm
thank you for your comment!
You're right, I lose the vertical axis, which is not bad because I don't use it. Sometimes it was boring to have a joystick that goes up and down whereas you just need left and right.
You can still use the other joystick without any issue, just like all the other buttons.

I've just added a dozen of lego parts to have the module perfectly rigid and tightened to the gamepad.
The max rotation angle of the handlebars matches the lean angle of the bike: around 60°.
I think the sensations are really good. Accuracy is really improved.
With this module, you can set the direct steering to 100%.
You may want to set the linearity of the lean input to 105 or 110% to cancel the return to center effect of the joystick.
9
Custom hardware / mini handlebars for gamepad
February 23, 2019, 11:58:18 am
This is a module to be mounted on a PS4 controller. It allows you to replace the joystick by mini handlebars which provide more realistic sensations and more accuracy due to larger range of movement.
It is made of Lego parts, except for the joystick pivot that is 3D printed.
A mini spring improves the return to center.
The length of the handlebars can be adjusted. After the first tests, it appears that shorter version work better.

See the 1st test on the following Youtube video:
https://www.youtube.com/watch?v=nvU7uVRCfY0&feature=youtu.be
10
Plugins / Re: UDP Proxy
November 03, 2018, 10:46:49 pm
glad I could help!
I'm looking forward the android app!
11
Plugins / Re: UDP Proxy
October 31, 2018, 05:03:59 pm
no, i will not include it as an internal plugin for the following reasons:
1. I'm not sure I'm able to
2. MaxHUD is a very nice and efficient plugin that already makes the job
3. my goal was to have an external dashboard so I can display it on a 2nd screen.
12
Plugins / Re: UDP Proxy
October 30, 2018, 09:01:37 pm
I haven't tried to connect it to another computer, but I'm planning to buy a 5 inch display for Raspberry, and connect it to the pc with the hdmi cable (no Raspberry,). That way, I would expand the desktop: main screen for the game, 5 inch display for dash.
13
Plugins / Re: UDP Proxy
October 28, 2018, 08:02:23 pm
printscreens...
14
Plugins / Re: UDP Proxy
October 28, 2018, 07:55:14 pm
Hi,

Based on the previous messages, I made a simple dashboard for GP Bikes.
i just wanted to share it.
Thank you !
15
Plugins / Re: UDP Proxy
October 27, 2018, 08:45:59 am
Great! thank you so much for your help!

For those who are intersted in using Processing, this is the code I used:

import hypermedia.net.*;
int PORT_RX=30001;
String HOST_IP="127.0.0.1";
UDP udp;

int pos;

void setup() {
  udp= new UDP(this,PORT_RX,HOST_IP);
  //udp.log(true);
  udp.listen(true);
}


void draw() {
}


void receive(byte[] data, String HOST_IP, int PORT_RX) {
   
  pos = 25;
  int gear = (data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24);
 
  pos = 33;
  int speed = int(Float.intBitsToFloat((data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24))*3.6);
   
  pos = 29;
  float fuel = Float.intBitsToFloat((data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24));
 
  pos = 13;
  int rpm = (data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24);
 
  pos = 133;
  int fsusp = int(Float.intBitsToFloat((data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24))*1000);   

  pos = 137;
  int rsusp = int(Float.intBitsToFloat((data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24))*1000);   

  pos = 157;
  int thro = int(Float.intBitsToFloat((data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24))*100);   

  pos = 161;
  int fBrak = int(Float.intBitsToFloat((data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24))*100);   

  pos = 17;
  int tempEng = int(Float.intBitsToFloat((data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24)));   

  pos = 21;
  int tempWat = int(Float.intBitsToFloat((data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24)));   

  pos = 113;
  int pitch = int(Float.intBitsToFloat((data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24)));   

  pos = 117;
  int lean = int(Float.intBitsToFloat((data[pos] & 0xff) | ((data[pos+1] & 0xff) << 8) | ((data[pos+2] & 0xff) << 16) | ((data[pos+3] & 0xff) << 24)));   


  println("gear = " +gear);
  println("rpm = " +rpm +" rev/min");
  println("speed = " +speed +" km/h");
  println("fuel = " +fuel +" l");
  println("front suspension = " +fsusp +" mm");
  println("rear suspension = " +rsusp +" mm");
  println("throttle = " +thro +" %");
  println("front brake = " +fBrak +" %");
  println("pitch = " +pitch +" °");
  println("lean = " +lean +" °");
  println("engine temp = " +tempEng +" °C");
  println("water temp = " +tempWat +" °C"); 
  println("-----------");
}



and this is an example of the results I get:
gear = 5
rpm = 14633 rev/min
speed = 217 km/h
fuel = 21.85146 l
front suspension = 68 mm
rear suspension = 38 mm
throttle = 36 %
front brake = 0 %
pitch = 4 °
lean = 50 °
engine temp = 87 °C
water temp = 85 °C
-----------