Skip to content

Commit

Permalink
microbit: Remove accelerometer set/get_rate and get_range.
Browse files Browse the repository at this point in the history
To save memory we need to keep the additions to a minimum. The
sampling rate is not exposed in MakeCode and has never been
requested yet in MakeCode nor MicroPython.

set_range is available in MakeCode and has been requested in
MicroPython to be able to create equivalent programmes and lessons.
get_range has not been requested, is not available in MakeCode,
and there is not a lot of cases where it would be useful, so it's
been also removed to save memory.
  • Loading branch information
carlosperate committed Sep 23, 2021
1 parent 83ee591 commit 216e1ad
Show file tree
Hide file tree
Showing 6 changed files with 8 additions and 56 deletions.
18 changes: 4 additions & 14 deletions docs/accelerometer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -81,21 +81,11 @@ Functions
calls to some accelerometer method to do the gesture detection. Usually
gestures can be detected using a loop with a small :func:`microbit.sleep` delay.

.. py:function:: get_rate()
.. py:function:: set_range(value)
Get the accelerometer samping rate, in Hz.

.. py:function:: set_rate()
Set the accelerometer samping rate, in Hz.

.. py:function:: get_range()
Get the accelerometer sensitivity range, in g's.

.. py:function:: set_range()
Set the accelerometer sensitivity range, in Hz.
Set the accelerometer sensitivity range, in g (standard gravity), to the
closest values supported by the hardware, so it rounds to either ``1``,
``2``, ``4``, or ``8`` g.

Examples
--------
Expand Down
5 changes: 1 addition & 4 deletions inc/genhdr/qstrdefs.generated.h
Original file line number Diff line number Diff line change
Expand Up @@ -190,10 +190,6 @@ QDEF(MP_QSTR_get_x, (const byte*)"\x34\x05" "get_x")
QDEF(MP_QSTR_get_y, (const byte*)"\x35\x05" "get_y")
QDEF(MP_QSTR_get_z, (const byte*)"\x36\x05" "get_z")
QDEF(MP_QSTR_get_values, (const byte*)"\xf4\x0a" "get_values")
QDEF(MP_QSTR_get_rate, (const byte*)"\x0e\x08" "get_rate")
QDEF(MP_QSTR_set_rate, (const byte*)"\x9a\x08" "set_rate")
QDEF(MP_QSTR_get_range, (const byte*)"\x73\x09" "get_range")
QDEF(MP_QSTR_set_range, (const byte*)"\x67\x09" "set_range")
QDEF(MP_QSTR_current_gesture, (const byte*)"\xd4\x0f" "current_gesture")
QDEF(MP_QSTR_is_gesture, (const byte*)"\x07\x0a" "is_gesture")
QDEF(MP_QSTR_was_gesture, (const byte*)"\xd8\x0b" "was_gesture")
Expand Down Expand Up @@ -697,6 +693,7 @@ QDEF(MP_QSTR_scan, (const byte*)"\x1a\x04" "scan")
QDEF(MP_QSTR_sdiv, (const byte*)"\xcd\x04" "sdiv")
QDEF(MP_QSTR_sep, (const byte*)"\x23\x03" "sep")
QDEF(MP_QSTR_set, (const byte*)"\x27\x03" "set")
QDEF(MP_QSTR_set_range, (const byte*)"\x67\x09" "set_range")
QDEF(MP_QSTR_setattr, (const byte*)"\xd4\x07" "setattr")
QDEF(MP_QSTR_setdefault, (const byte*)"\x6c\x0a" "setdefault")
QDEF(MP_QSTR_sin, (const byte*)"\xb1\x03" "sin")
Expand Down
5 changes: 1 addition & 4 deletions inc/microbit/modmicrobit.h
Original file line number Diff line number Diff line change
Expand Up @@ -257,10 +257,7 @@ MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(microbit_panic_obj);
MP_DECLARE_CONST_FUN_OBJ_1(microbit_accelerometer_get_x_obj);
MP_DECLARE_CONST_FUN_OBJ_1(microbit_accelerometer_get_y_obj);
MP_DECLARE_CONST_FUN_OBJ_1(microbit_accelerometer_get_z_obj);
MP_DECLARE_CONST_FUN_OBJ_1(microbit_accelerometer_get_rate_obj);
MP_DECLARE_CONST_FUN_OBJ_1(microbit_accelerometer_set_rate_obj);
MP_DECLARE_CONST_FUN_OBJ_1(microbit_accelerometer_get_range_obj);
MP_DECLARE_CONST_FUN_OBJ_1(microbit_accelerometer_set_range_obj);
MP_DECLARE_CONST_FUN_OBJ_2(microbit_accelerometer_set_range_obj);
MP_DECLARE_CONST_FUN_OBJ_1(microbit_button_is_pressed_obj);
MP_DECLARE_CONST_FUN_OBJ_1(microbit_button_was_pressed_obj);
MP_DECLARE_CONST_FUN_OBJ_1(microbit_button_get_presses_obj);
Expand Down
3 changes: 0 additions & 3 deletions inc/microbit/qstrdefsport.h
Original file line number Diff line number Diff line change
Expand Up @@ -182,9 +182,6 @@ Q(get_x)
Q(get_y)
Q(get_z)
Q(get_values)
Q(get_rate)
Q(set_rate)
Q(get_range)
Q(set_range)
Q(current_gesture)
Q(is_gesture)
Expand Down
4 changes: 0 additions & 4 deletions source/microbit/help.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,6 @@ STATIC const mp_doc_t help_table_instances[] = {
{&microbit_accelerometer_get_x_obj, "Return micro:bit's tilt (X acceleration) in milli-g's.\n"},
{&microbit_accelerometer_get_y_obj, "Return micro:bit's tilt (Y acceleration) in milli-g's.\n"},
{&microbit_accelerometer_get_z_obj, "Return micro:bit's up-down motion (Z acceleration) in milli-g's.\nZ is a positive number when moving up. Moving down, Z is a negative number.\n"},
{&microbit_accelerometer_get_rate_obj, "Return the sampling rate (hz) of the micro:bit's accelerometer.\n"},
{&microbit_accelerometer_set_rate_obj, "Use set_rate(hz) to set the sampling rate for the accelerometer.\n"},
{&microbit_accelerometer_get_range_obj, "Return sensitivity range of the micro:bit's accelerometer in g's.\n"},
{&microbit_accelerometer_set_range_obj, "Use set_range(g) to set the sensitivity range of the micro:bit's accelerometer in g's.\n"},
// Pushbutton
{&microbit_button_a_obj, "micro:bit's 'A' button. When button is pressed down, is_pressed() is True.\n"},
{&microbit_button_b_obj, "micro:bit's 'B' button. When button is pressed down, is_pressed() is True.\n"},
Expand Down
29 changes: 2 additions & 27 deletions source/microbit/microbitaccelerometer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,31 +114,9 @@ mp_obj_t microbit_accelerometer_get_strength(mp_obj_t self_in) {
}
MP_DEFINE_CONST_FUN_OBJ_1(microbit_accelerometer_get_strength_obj, microbit_accelerometer_get_strength);

mp_obj_t microbit_accelerometer_get_rate(mp_obj_t self_in) {
microbit_accelerometer_obj_t *self = (microbit_accelerometer_obj_t*)self_in;
mp_int_t hz = 1000 / self->accelerometer->getPeriod();
return mp_obj_new_int(hz);
}
MP_DEFINE_CONST_FUN_OBJ_1(microbit_accelerometer_get_rate_obj, microbit_accelerometer_get_rate);

mp_obj_t microbit_accelerometer_set_rate(mp_obj_t self_in, mp_obj_t hz_obj) {
microbit_accelerometer_obj_t *self = (microbit_accelerometer_obj_t*)self_in;
mp_int_t hz = mp_obj_get_int(hz_obj);
mp_int_t period = (hz == 0) ? 0 : 1000 / hz;
self->accelerometer->setPeriod(period);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(microbit_accelerometer_set_rate_obj, microbit_accelerometer_set_rate);

mp_obj_t microbit_accelerometer_get_range(mp_obj_t self_in) {
microbit_accelerometer_obj_t *self = (microbit_accelerometer_obj_t*)self_in;
return mp_obj_new_int(self->accelerometer->getRange());
}
MP_DEFINE_CONST_FUN_OBJ_1(microbit_accelerometer_get_range_obj, microbit_accelerometer_get_range);

mp_obj_t microbit_accelerometer_set_range(mp_obj_t self_in, mp_obj_t g) {
microbit_accelerometer_obj_t *self = (microbit_accelerometer_obj_t*)self_in;
self->accelerometer->setRange(mp_obj_get_int(g));
(void)self_in;
ubit_accelerometer->setRange(mp_obj_get_int(g));
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(microbit_accelerometer_set_range_obj, microbit_accelerometer_set_range);
Expand Down Expand Up @@ -216,9 +194,6 @@ STATIC const mp_map_elem_t microbit_accelerometer_locals_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_z), (mp_obj_t)&microbit_accelerometer_get_z_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_values), (mp_obj_t)&microbit_accelerometer_get_values_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_strength), (mp_obj_t)&microbit_accelerometer_get_strength_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_rate), (mp_obj_t)&microbit_accelerometer_get_rate_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_set_rate), (mp_obj_t)&microbit_accelerometer_set_rate_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_range), (mp_obj_t)&microbit_accelerometer_get_range_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_set_range), (mp_obj_t)&microbit_accelerometer_set_range_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_current_gesture), (mp_obj_t)&microbit_accelerometer_current_gesture_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_is_gesture), (mp_obj_t)&microbit_accelerometer_is_gesture_obj },
Expand Down

0 comments on commit 216e1ad

Please sign in to comment.