Author Topic: Programing Balanduino code  (Read 310 times)

Sten

  • Newbie
  • *
  • Posts: 2
    • View Profile
Programing Balanduino code
« on: February 16, 2017, 11:18:36 AM »
Hi!

I am trying to program the Balanduino code so that the Balanduino can move forward a certain distance and then stop. I have some problem to understand the Balanduino code, mainly because I am used to program in java and not in c. Could someone please explain how the code should look like and which methods I should call in the different classes and what theses methods do? Thanks for any help  :)

Regards

Sten
« Last Edit: February 16, 2017, 11:38:21 AM by Sten »

Lauszus

  • Administrator
  • Full Member
  • *****
  • Posts: 131
    • View Profile
Re: Programing Balanduino code
« Reply #1 on: February 20, 2017, 04:45:44 PM »
Hi Sten,

You need to be more specific. What exactly do you want to do? Do you want to move the Balanduino from your own application?

Regards
Kristian Sloth Lauszus

Sten

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Programing Balanduino code
« Reply #2 on: March 06, 2017, 03:47:21 PM »
Hi,

Ok, so to be more specific I wonder how the targetOffset works and and what the different values means when you set:  targetOffset = scale(data a, data b, data c, data d, cfg.controlAngleLimit); 
1. What is  targetOffset?
2. How do you get different speeds? I assume by changing data a above?
3. What value should data b, data c, data d and cfg.controlAngleLimit have and why?

/Sten

Lauszus

  • Administrator
  • Full Member
  • *****
  • Posts: 131
    • View Profile
Re: Programing Balanduino code
« Reply #3 on: March 06, 2017, 11:31:30 PM »
Hi Sten,

1. targetOffset is used in order to control the Balanduino forward and backward. This will set an offset angle, which is then used as the input to the PID controller. Please see: https://github.com/TKJElectronics/Balanduino/blob/0a7c3d0dcb45b54746e9ff507bba430c2bd7e807/Firmware/Balanduino/Motor.ino#L44-L46.

2. Yes you control the Balanduino forward and backward by setting the targetOffset. Please see the following file: https://github.com/TKJElectronics/Balanduino/blob/0a7c3d0dcb45b54746e9ff507bba430c2bd7e807/Firmware/Balanduino/Bluetooth.ino.

3. The scale function simply maps the input value "a" with the range between "b" and "c" linearly to an output value between "d" and cfg.controlAngleLimit. For instance this line: https://github.com/TKJElectronics/Balanduino/blob/0a7c3d0dcb45b54746e9ff507bba430c2bd7e807/Firmware/Balanduino/Bluetooth.ino#L351 converts the input value with the range 0-1 to 0-cfg.controlAngleLimit.

Note that cfg.controlAngleLimit can be set via any of the provided apps or just the serial monitor. By default it is set to 7 degrees: https://github.com/TKJElectronics/Balanduino/blob/0a7c3d0dcb45b54746e9ff507bba430c2bd7e807/Firmware/Balanduino/EEPROM.ino#L56.

Regards
Kristian Sloth Lauszus