Asked — Edited

Changing The Battery Warning Voice?

I am building a BB8 and everything is going fine, however I was wondering if there was a way to change the "battery is low" warning. Having BB8 suddenly speak really ruins the whole effect. I was wondering if there was a way to change the warning to something else that would fit more with the BB8 character?.


ARC Pro

Upgrade to ARC Pro

Harnessing the power of ARC Pro, your robot can be more than just a simple automated machine.

PRO
Synthiam
#1  

No. Hard coded firmware alerts are read only.

PRO
USA
#2  

other solution

  1. disable the battery warning

  2. setup a voltage divider source vcc to 3.3 v

  3. connect the voltage divider to one EZB's ADC port

  4. use EZ-Script (loop) to monitor the ADC port, when the value reaches a threshold play sound file.

PRO
Synthiam
#3  

Ptp, no need for a voltage divider. You can get the ezb voltage with getvoltage() command. Much like you can also get the ezb temp with gettemp().

#4  

Or just remove the speaker...:D

P.S. I just put I piece of paper between the speaker and the EZ-B so it is no longer connecting, I tend to loose stuff...

#5  

Thanks guys, i need the speaker to play other sounds, so I will look in to the coding part. cheers!.

#6  

The coding part is simple:

You just set a loop that checks getvoltage().

:start

If (getvoltage() <= [min battery voltage])
#here is where you put commands for what do do on a dead battery.

#put soundboard command here for special noise 

Endif

Sleep(2000)

Goto(start)

What you have to remember is if your running servos or things that use lots of power, your battery could drop in voltage temporarily, and then recover. I would avoid putting a halt script or something else in the if commands that could interfere. Instead just wait for the sound to repeatedly play non stop as an indication. You can also write code to do repeated checks before it triggers. This would allow you to add commands that stop functions of the bot.

PRO
USA
#7  

no hardware mess (voltage divider) and using DJ's tip

something like this:


:loop

if (GetVoltage() <7)
  ControlCommand("Soundboard v4", Track_10, "ignoreScript")
endif 

#sleeps 30 seconds
Sleep(30000) 

Goto(loop)