-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide a Thymio launcher #728
Comments
We should try to provide the least number of clicks. So I would suggest either a matrix of targets by actions, or alternatively a list of targets with action buttons.
|
I agree with the matrix of @davidjsherman but if we establish the matrix based on a list of discovered target, this would require to start the simulator first, adding a step. We should put in the matrix both the discovered targets and the possible activable targets (simulator). |
Yes. We can have a smart dialogue box that shows the activable target only if no Playground with Thymio has been detected. Although it is not sure that this is a good idea, as users might want to connect to another simulator. I think that we should collect experience from users who use Playground to see their typical use case, and make this one easy. |
If the launcher starts the Playground as a QProcess, it can wait for the Playground to start up, then start Studio or VPL on the lowest-numbered target. (In the UniFr playground, the lowest-numbered target is a switch.) Other students will see the remaining targets in their launcher, advertised by Zeroconf. I suppose one could make “New Playground” active, if there were a use case for starting a playground without automatically connecting to one of its targets. In that case the targets will appear in the launcher, like “Playground 2” on line 3 of my comment above. |
A few ideas that got tossed around :
It's unclear to me whether it would be better to choose an activity and then a target or the other way around. In any case, I think it's reasonable to have a "Default" and "advance" mode for non-thymio targets, etc |
I say Keep It Simple. It's a launcher, not ESOC Darmstadt, and our core users will be ten-year olds. Updates are rare events, it seems to me that cluttering the launch page with that has a low ROI. And the core users of the launcher wouldn't be performing software updates themselves, anyway, would they? The web bridge shouldn't need to be monitored. If it's not working, it should be healed automatically. What's a task bar icon? |
You only get notified if there actually is an update. I agree that only teachers need to know about that.
Basically a small icon whose presence would let you know that the web server is running. |
These are good ideas. Maybe this would be a good use of the "professor mode" icon from VPL? |
I put here some old brainstorming we add:
now the discussion with first discover the target change the mindset. Even I don't think firmware updates or wireless configuration are be shown in the matrix. Basically what we can do with a real Thymio can be done in the simulated one. People want to programm it, they want to easy find the program they want (VPL, studio, blockly, scratch). |
With kids in mind, I'd say a 2 clicks/ 2 screens approach seems simpler, less cluttered than a matrix approach. 1/ Choose the software activity 2 is filtered to only show devices compatible with 1. I think we can always show community software, no need for a checkbox. At the same time, you have a "settings" icon from which you can access configuration & update, some kind of "Update Available" icon, conditionally displayed, and a toogle basic/advanced mode |
Regarding the mockup, I think that there is too much text and it is too cluttered. Rather, we should only show icons with maybe one small text below (eg. "Text programming (Studio)", "Visual programming", "Blockly programming", "Scratch programming", "Configure wireless Thymio", "Upgrade Thymio firmware"). Regarding community, I think that there are too separate concepts to express: programs that are experimental, such as Scratch or Blockly, and programs that are part of the community. For now there are none in that category. |
Putting the mockup was a bad idea, it unfocus the discussion. |
I really advise against advertising Blockly4Thymio in the Thymio launcher, as it would create confusion for our users with the Blockly we provide, and it does not provide the integrated experience Aseba-based tools typically provides. In particular the way Blockly4Thymio is architectured (generate an AESL file and call massloader) is ad hoc. Moreover, as far as I have seen (but maybe I missed it), Blockly4Thymio is not open source. |
We had a meeting with @mbonani and @Vincebecker. We came up with the following conclusions
@Vincebecker will be doing some mockups and assets, but we are going to wait for feedback before going ahead with implementation. I hope I didn't forget anything. |
In general this is good. Some remarks:
Do you plan to add a Thymio-specific target selection in the launcher? Aseba programs such as Studio and VPL can take a target as command-line argument. Be aware though that a Dashel target and a robot are different, and so if there are multiple Thymios in a target, currently VPL standalone reports an error for example. It is a question whether we want to support Dashel targets with multiple Thymios. I strongly suggest to answer no, at least for the first version.
We would need to discuss whether and if so how this affect Aseba protocol. Of course without modifying the protocol we could compile a small program that receives an event and emits a sound. I suggest not to implement that feature in a first version.
If this is in Wi-Fi Thymios only it is relatively easy, as @davidjsherman pointed out there is the Zeroconf name for that. If we want that to go through switches it would require more discussion. Again, I advise to go for the simple case first, to avoid over-engineering.
Yes, this is important.
I guess only for physically-connected Thymios, right? |
Agreed, not for 1.7
Compiling a program seems the proper solution.
It's complementary as zeroconf would report the set name by default. I haven't looked how pid are reported, but it would work similarly.
Exactly. |
There is already a support for a node having a name, so it could be used as ProductId would report Thymio. See |
Some technical ideas and questions, so I don't forget about them
|
asebahttp is an unmaintained temporary hack, David Sherman and I have been working on a clean new switch, in the branch http-refactor. We should talk about it after the 1.6 release.
It is a very interesting idea. The new switch is very modular and in that sense could be used within the launcher. I think we still need a standalone asebaswitch, but of course both could co-exist.
No, the Aseba protocol does not support that at all. At most one IDE/client can be talking to a node at any given time. This is not enforced in any way but if this assumption is violated, the behaviour is weird on the client side. That is why all simulated targets stop advertising themselves as soon as there is an incoming connection. I think that a Wi-Fi Thymio should do no the same, and probably that a clean web bridge as well.
Do you mean for connecting to targets? I would say that for advertised ones yes, otherwise no.
Yes but I think it is over-engineering, a proper const array of structure created through an initializer_list in C++ seems fine to me.
Yes, correct. |
I know... Hopefully we will be able to get that out of the way soon !
That was my idea, link to a shared library and have both a cli and the launcher.
I'm not sure that's the most user friendly approach. We should mark the target "busy". And hopefully, if there is already a client (aseba) running, we can notify it and prevent multiple instances to ever occuring I think someone not familiar with aseba would not understand why devices disappear. |
Yeah, I know. I was pointing out that the launcher should use that feature when it's done ! |
Hello, Here are the first mockups based on the discussion with @cor3ntin and @mbonani and your comments. Interface - Select how you want to program : When you push the "tools" button (list is not complete) When VPL is selected, select the robot or simulated robot or click (+) to launch a basic simulator with one robot and connect to it. click launch. screenshots are here to give a preview of the language, we can replace it and use this space later (access to a database of programs, activities, video tutorial of the selected language, invitation to update, .... (only suggestions)) So, 3 simple steps,
Advanced users can launch a simulator from the tools menu and the simulated robots will appear in the list as "simulated device". |
Are we licensed to use the Scratch logo? |
Thank you @Vincebecker for the mock-ups. I find the overall concept excellent! I have some minor questions and issues I see with the current version:
|
Thanks to both of you for your feedback. @davidjsherman for now it's only a mockup. I will ask right now and if it's not possible we will create an icon. |
Yes, maybe the bottom of the screen informations will be only used for version information. Let's think about this tomorrow. |
|
Following our discussion I am wondering, I fear that it will add complexity for the user to have map selection / robot selection in the same windows.I mean the user will not understand why we propose to chose a map if his robot is connected. Solution 1 :Do we add a step ? Step 1Title / Screenshots / Description / Author of the language (?) Step 2if simulator if robot : 1) select robot 2) launch Solution 2 :Do we detect if a Thymio robot is connected and don't show the simulator options ? Personnaly I prefer solution 1, it shows all the available option and guide the user. What do you think ? |
I think that we should add a step, if the user clicks to launch a simulator (instead of connecting to a robot), she is provided with a map selection dialogue. If a simulator is already running, she is asked whether the map should be replaced. So I suggest the following user interaction with the launcher:
|
I agree with stephane. |
I agree too. Here is when you select "Simulated Thymio" (note : map selection is not visible if you don't select "Simulated Thymio") Then when you select the map, the left pannel changes to give more information, also you can change the map and the new simulated devices will appear (or do we keep it simple for the launcher?). If you click on a real Thymio you switch back to Mockup 1. |
In general it looks nice. I have some comments:
|
Because the animation that open this pannel is a "bottom-to-top" animation so, to close it, you send it back to the bottom. If we change the animation to left-to-right, yes, "<" is better but since the pannel is wider than high I think bottom-to-top is better. Sorry I did not mention the animations, I think the best is to try a few and then decide what we prefer. That will define the final signaletic.
Amazing ! Is it possible to focus on the selected robot (like a moving camera) ? Or do we have to show the entire playground in the preview image ?
Also, @davidjsherman I just go the information, We can use the Scratch logo. Thanks everyone for your feedback. |
I agree about the animation, considering one bottom-to-top, we could have a "V" button somewhere.
In principle yes. Note that, as I said, this is possible only with further development, so we should not expect this in the first version of the launcher. But we can keep in mind that it is theoretically possible and deploy that in a further release. |
Showing an interactive simulator depends on enki-community/enki#51. Based on a rough look at it, it should be possible to do with some work. |
We wish to provide a Thymio launcher dialogue box. This box should provide access to:
Also, it would be helpful to have access to the following elements:
There are several design questions to address:
The text was updated successfully, but these errors were encountered: