Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

basic button response for use on tablets

Hi all,

I'm so pleased with OpenSesame so far! I'm wondering if someone could point me in the direction of a tutorial for building a simple button response (rather than a keyboard response). My goal is to run my experiments on an Android tablet rather than a computer with keyboard, and the software keyboard is a little too clunky for the tablet.

I'm trying to design a three-option trial, and I'd like to simply represent the three options with buttons on the screen (rather than key presses). I've found this:

http://osdoc.cogsci.nl/3.1/manual/forms/widgets/button/

But I'm not sure how to collect the responses and plug them into the logger.

Thanks for your help!

Bryn

Comments

  • Hi Bryn,

    When adding a form button, you can specify the name of a variable (var). This variable will be set to 'yes' if the button has been clicked, and to 'no' otherwise. The logger will automatically pick up this variable. See also:

    Does that help?

    Cheers,
    Sebastiaan

  • Thanks! I will do my best to figure this out.

    Two follow-up questions:

    With touch-based response, does OpenSesame simply parse the entire screen into equal-sized rows and columns? I ran the sample gaze cue experiment and it seemed that I could press anywhere on the left side of the screen to trigger the letter on the left, and vice versa. Is there any way to make it such that the participant has to press on a more-specific part of the screen? (maybe this would just be a button response?)

    What's the difference between touch response and mouse response?

  • For the touch response, see for example this:

    What's the difference between touch response and mouse response?

    The mouse response only gives you coordinates and which button was pressed; the touch response parses these coordinates into a grid for you. Both work for both touches and mouse clicks. Form buttons are yet another way to collect touch responses, but they require a form.

  • Hi, and how can we set the duration as touch response? I'm building an experiment with touch response as well, and can't find the way to set the duration of the screen to touch response.

  • @NathaciaRibeiro In recent versions of OpenSesame, the touch_response has a timeout option (which is what I suppose you mean?). So if you don't see this, just update to the latest version.

    Cheers!
    Sebastiaan

  • @sebastiaan I know the time out option. But I don't know the command to set the touch as the duration (like when we set 'mouseclick' or 'keypress'). Is that possible?

  • Ow right, like that. From the perspective of OpenSesame, there is no difference between a touch and a mouse click, so you can just the duration to 'mouseclick'.

  • Hi, just reopening this topic.

    Does anyone has a suggestion on how to set a feedback on the button response?

    I want to allow the subject to change their mind and click another button before clicking next. I did it by putting the form in a while loop, that just breaks when the next button variable (var.next) turns into 'yes', so the participants can click different response buttons (image_button) while the loop runs, but just the last on clicked is marked as 'yes' (this works fine). Nevertheless there is no feedback about which button is clicked or not, what feels a very strange experience (they click and their feeling is that nothing happens). I would like to have a square around de button to be highlighted or a arrow to point to the last clicked button.

    Nevertheless I am not sure if there would be a way of doing it on the form...


    The alternative I am using for now is to use normal images instead of image_buttons with checkboxes below, but as my research is with children, they always click on the image before noticing the checkbox below.


    I also did something similar just by putting a feedback canvas and a touch_response in a while loop, and changing the a arrow pointing to the image accordingly to where the response is (and breaking to loop when the region where the 'next' button is, is clicked), nevertheless this is terrible for logging the final response, as the 'next' click is always the last one.


    Any ideas here?

  • I would like to have a square around de button to be highlighted or a arrow to point to the last clicked button.

    I think the best option here would be to use check buttons (with the group parameter). They are made for stuff like that. https://osdoc.cogsci.nl/3.3/manual/forms/widgets/#checkbox-checkbox

    Would that work?


    Alternatively, you could change the image every time a button is clicked (in combination with your while loop procedure)

    Eduard

    Buy Me A Coffee

  • Hi Eduard, thank you for answering so quick!

    I think the best option here would be to use check buttons (with the group parameter). They are made for stuff like that. https://osdoc.cogsci.nl/3.3/manual/forms/widgets/#checkbox-checkbox

    So, this is similar to the solution I've been trying. I am using the rating_scale instead. But I'm not sure if the check_box group parameter could help somehow. It is more about the visual presentation of the checkboxes. Maybe the image can help:

    The participant just have to select one face. They can change the opinion multiple times and click next to continue when they have the final answer.

    The point is, how it is now, they need to click in the checkbox for that to work, not in the image. But the experiment is with children, and they keep clicking in the faces instead (after some explanation they understand about the checkbox, but it is a bit frustrating for them). As I see, one option would be to have the checkbox automatically selected even when you click in the image (kind of increasing the area around the box that the click is accepted), but I'm not sure how to do it . Or to change in the source the image of the checkbox for the face images selected x unselected (I'm not sure how to use different faces in this case though).


    Alternatively, you could change the image every time a button is clicked (in combination with your while loop procedure)

    I also tried this approach. I changed the image accordingly to the response_touchscreen_response value. Nevertheless, as I need to also get a response for one area that quits the loop (response_touchscreen_response = 12; the area where 'next' is), I am having a hard time to log the response. As I have to log all the clicks (log inside the loop) and have to later figure out which was the last face selected for each trial. If I put the log outside the loop the only response I collect is from the 'next' (as it is always the last click). Unless there is a way of coding different areas on the screen to different variables..?

    Any suggestions?

Sign In or Register to comment.