top of page
Forum Posts
D L
Aug 19, 2019
In Clinic
Hi I am in the process of adding some Raspberry PI controlled automation. The automation is a python program running on the RP and uses the pyserial interface from the RP to the Nybble_v0.2. I have observed Nybble performing a 'jerky' erratic motion at the end of a "Instinct" movement. The file attached is a video of the following motions (with a three second fixed gap between each motion): Balance Stretch Balance Pee Balance Sit Hi Meow Sit Rest The video displays two types of irregularities: - At the end of most "Instinct" movements there is a significant jerky movement of the servos. From using an oscilloscope I have confirmed the servos are being instructed to move to a new setting (a change in the duty cycle) after the instinct appears to be finished. - Steps 7 does not complete and step 9 appears to be ignored all together. I am looking to see if anyone else is observing these jerky motions at the end of an instinct movement and any clues as to why these may be occurring. Best regards D L
0
11
104
D L
Aug 10, 2019
In Hardware
I have been struggling with getting predictable and smooth operation from the servos and following some calculations, wonder if my problems are because of the choice of 14500 battery in Nybble_v0.2. Problems experience are: servos turning uncontrollable (SW3 set to BATT solved a lot of this) servos not completing the instruction servos struggling to 'walk' The servos have an operating voltage of 4.8V~ 6.6V. The required amperage is not document well, but there seems to be a community feedback that the peak amperage is 750mA - 1000mA, with a stall current of 2A. Changes in the pulse width to control the servo is +/- 0.5ms (from 1.5ms) each 20ms, meaning there is 1ms/20ms max pulse or a 5% duty cycle for the load. I have observed that peak currents of between 2.5A and 3.5A being drawn. This is where my question of the suitability of the 14500 Li Ion battery. I calculated the 14500 battery internal resistance by measuring V(unloaded)= 8.26V, V(rest mode+RP+Ultrasonic)=8.15V and I(rest mode+RP+Ultrasonic)=150mA. Thus R(internal) of the 14500 is (8.28-8.15)/0.150 = 0.73 ohms. At a current of 3A this is 2.2 Volts. The low voltage threshold I have set is 3.25V per battery = 6.5 V. Nybble will 'meow' at this voltage. I hear Nybble 'meow' in almost all movements, and observe the issues above. Basically, taking into account the voltage drop across the internal resistance of the 14500 at peak current Nybble operates below the low voltage threshold even when the batteries are fully charged, or in simpler terms there may not be sufficient amperage being supplied by the 14500 batteries to drive the eleven servos that Nybble V0.2 implements. I am looking for suggestions on the approach to fix this. Bigger batteries (e.g.18650).. will need a 2mm shim at each servo for 8mm needed extra width (18mm -14mm * 2 batteries) Higher peak current capacity using 14500 LMR batteries (9A peak current) Capacitance (? up to 0.47F using 11mm button supercap + charge cycle of <15ms ) At the moment Nybble_V0.2 is an excellent research project (thank you Rongzhong), but not useful to me as a platform to experiment with automated functions (explore, self-recharge, follow ball, recognise faces) based on external inputs. Any other observations or suggestions welcome. D L
0
1
374
D L
Jul 30, 2019
In Hardware
I want to be able to read the voltage of both the battery pack and the 5V being delivered to the Raspberry PI. In Nybble.ino at about line 432 is the following code. Nybble reads Analogue port A0 (BATT) and if it is less than 3V, Nybble will meow. void loop() {
float voltage = analogRead(BATT);
if (voltage <
#ifdef NyBoard_V0_1
650
#else
300
#endif
) { //give the cat a break when voltage drops after sprint
//adjust the thresholds according to your batteries' voltage
//if set too high, Nybble will keep crying.
//If too low, Nybble may faint due to temporary voltage drop
PTL(voltage);//relative voltage
meow();
} In my Nybble, with a fresh set of batteries (8.1V) analogRead(BATT) returns about 5.6V. Is this the potentiometer setting value or is it the 5V VCC rail into the Arduino and Raspberry PI? Can I get A0 to read the actual Battery voltage or is it limited to the arduino VCC voltage. In an other way I'm asking what is the voltage divider into A0?. If there is no divider and I am limited to VCC, should I use Analogue port A1 with a suitable voltage divider and connect this to the A1 pinout on Nybble. Best regards D L
1
10
555
D L
Jul 14, 2019
In Software
I am seeking advice on whether I have a calibration issue or a general programming issue. I have Nybble mostly working (on low pile carpet where the friction is better than a table top). Instinct sort of do as I would expect, except during the "Hi" Instinct, (Sit, Hi1, Hi2) Hi2 phase, the tail moves over too much and topples Nybble onto it's side. The code in Instincts.h is: const char hi[] PROGMEM = {
1, 0, 30,
35, -5,-60, 0, -3, -3, 3, 3,-75, 30,-60,-70, 40, 75, 45, 0,};
const char hi2[] PROGMEM = {
1, 0, 30,
40, 0,-35, 0, -3, -3, 3, 3,-60, 30,-60,-70, 60, 75, 45, 0,}; ! can see that joint 2 moves from -60 to -35. I can change this (to -45) and test it by trial and error, but before I do I am seeking suggestions if this is the correct approach. Also, If I do change this am I better off re-writing the EEPROM instinct or use a less volatile approach. Best regards D L
0
1
62
D L
Jul 05, 2019
In Clinic
I am attempting to work out the placement of the Raspberry Pi3B+ over the Nyboard v0.2. I have the expansion connectors in place and connecting the Pi to the Nyboard and the mounting locking pin in place, but I see on the other side the the PI analogue 3.5mm AV connector and camera connector hit the Nyboard SW3 connector and does not allowing the PI to sit lower enough for the locking piece to go into place. (see photo) Any advice on what is happening here or what I should do here? Best regards
DL
0
5
520
D L
More actions
bottom of page