-
Notifications
You must be signed in to change notification settings - Fork 2
/
README
130 lines (98 loc) · 4.5 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
SqueakBot
=========
SqueakBot est une image Squeak basée sur EToys pour la robotique.
SqueakBot is a modification of Physical Etoys by:
Lic. Gonzalo Zabala - Sebastián Blanco - Ricardo Moran
Centro de Altos Estudios en Tecnología Informática
Universidad Abierta Interamericana
http://tecnodacta.com.ar/gira
Many thanks to them!!
Copyright Planète Sciences 2010-2011 for the modifications
SqueakBot is distributed under the MIT license. See LICENSE for details.
Installation
------------
Automatique
+++++++++++
(Sous Linux seulement !)
> ./bootstrap
Vous pouvez maintenant aller à la section "Ajout des changesets"
Manuel : Préparer une image SqueakBot à partir d'une image EToys
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- Récupérer une image Etyos fraiche ici:
http://download.sugarlabs.org/sources/sucrose/glucose/etoys/
- Décompresser l'image, copier le contenu du sous-dossier "Content/" dans
un nouveau dossier "squeakbot/", renommer etoys.* en squeakbot.*
- passer à la section suivante
Ajout des changesets
++++++++++++++++++++
- Appliquer (par drag and drop) les différents changesets du dossier
changesets/ dans cet ordre:
- 1-NamedSerialPort
- 2-PhysicalEtoys
- 3-Arduino-Core
- 4-Arduino-Compiler
- 5-Arduino-EToys
- 6-Nono
- 7-SqueakBotMain
- 8-AdaFruitMotors
- Importer les projets d'accueil (drag and drop des différents ``.pr``)
Processus d'initialisation d'un composant
-----------------------------------------
[section à mettre à jour avec la Arduino]
Que se passe t'il lorsque qu'on glisse par exemple une carte ASPIC sur l'espace de travail ?
Pile d'appel (avec uniquement les appels significatifs):
AspicMorph new openInWorld
|-Aspic new
| |-(GenericModule) new
| |-aspic initialize
| |-aspic disconnect
|-AspicMorph new
|-aspicmorph initialize
|-aspicmorph openInWorld
|-(GenericModuleMorph) intoWorld
Lors de la connection:
aspic connect
(genericmodule) connect
|-(genericmodule) connectOn:with:
|-SerialHandler new
|-protocol = Aspic getProtocolForComHandler:
|-serialhandler initialize:forProtocol:protocol
|-protocol connectWith: serialhandler
|-aspic onConnection
Astuces diverses
----------------
1) Pour rajouter des entrées dans le tiroir SqueakBot
- Ouvrir la classe Flaps, puis accéder à la méthode de classe
``defaultsQuadsDefiningSqueakBotFlap``
- Ajouter autant d'entrées que nécessaire, sous la forme:
``{#ClasseDeLObjetCible. #Selecteur. 'Etiquette en anglais' translated. 'Description en anglais' translated. [en option, Form qui sert d'icône]}``
- Pour voir les changements, dans le transcript, appeler successivement
``Flaps destroyFlapDotDotDot`` pour détruire le tiroir SqueakBot précédent,
``PartsBin clearThumbnailCache`` et ``Flaps initializeSqueakBotFlap``.
Si la nouvelle entrée n'apparait pas, c'est sans doute que la classe cible
spécifiée pour l'icone n'existe pas.
2) Pour ajouter des choses dans le menu d'un Morph :
- tout se passe dans la méthode ``addCustomMenuItems``. Cf ``AspicMorph``, par
exemple.
- Ne pas oublier d'ajouter ce qui va bien dans la classe ``Player``!!!
3) Pour ajouter des briques de script à un module :
- tout se passe dans la méthode ``additionsToViewerCategory``, dans la classe du
morph du module (par exemple ``ArduinoMorph``)
4) Pour construire etoys.image à partir de l'image de dev :
``ReleaseBuilderSqueakland new prepareReleaseImageForSqueakBot.``
5) Pour rajouter un bitmap dans l'image :
- glisser-déposer le bitmap dans Squeak
- inspecter le morph créé, puis la proriété ``originalForm``
- Appeler ``SugarLibrary mimeStringFor:self`` sur le Form (afficher le résultat
avec Alt+P), puis copier la string base64. Si le bitmap est trop gros (200,
300 pix de côté), la string ne sera pas complète (elle finit par ...etc...).
Dans ce cas, faire :
``(FileStream newFileNamed: 'temp.txt') nextPutAll:(SugarLibrary mimeStringFor:self)``
Ca va écrire le contenu de la string encodé base64 dans un fichier temp.txt
dont on peut copier-coller le contenu.
- Ouvrir la classe ``SqueakBotBitmapLibrary`` et créer une nouvelle méthode de
classe sur le modèle de squeakBotIcon (en faisant attention de changer le nom
de la méthode !) (changer aussi la dimension du bitmap)
- On peut tester le nouveau bitmap avec cette commande dans le transcript
(enregistrer avant l'image, les crashs sont fréquents...) :
``(SketchMorph withForm:SqueakBotBitmapLibrary squeakBotIcon) openInWorld``