how to detect a keyboard key in a while loop using a figure

I am using arduino nano and checking push buttons in a while loop. I want to detect a keyboard key, say 'spacebar' and simulate a push button. A figure with a push button is the desired output. Everytime the figure is in focus and the 'spacebar' is pressed on the keyboard, it should turn on and off a digital output of arduino board.

1 件のコメント

Paul
Paul 2025 年 12 月 1 日
That’s an interesting setup, especially for anyone trying to build small reaction-based projects. I’ve been experimenting with space-press mechanics myself while messing around with a simple browser game at https://space-bar-clicker.github.io/, and timing intervals really make a difference. Adding a delay to emulate spacebar presses should work well if you trigger it with a timer inside the callback.

サインインしてコメントする。

回答 (1 件)

Tommy
Tommy 2020 年 7 月 8 日

0 投票

You could use the figure's KeyPressFcn, possibly combined with some of the ideas below:
myFig = figure('KeyPressFcn', @myKeyPressFcn,...
'UserData', false);
a = 0;
while true
a = a + rand;
if myFig.UserData
close(myFig)
break
end
drawnow % <- important so that myKeyPressFcn() gets called when a key is pressed
end
disp(a)
function myKeyPressFcn(src, evt)
if strcmp(evt.Key, 'space')
src.UserData = true;
end
end

2 件のコメント

Ahsan Ayyaz
Ahsan Ayyaz 2020 年 7 月 9 日
Hi Tommy
'waitforbuttonpress' worked for me.
Thanks for your reply.
Tommy
Tommy 2020 年 7 月 10 日
Glad to hear you got it working!

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeDesktop についてさらに検索

製品

リリース

R2018b

質問済み:

2020 年 7 月 7 日

コメント済み:

2025 年 12 月 1 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by