Algorithmique et programmation avec la TI-83 Premium CE ...meslivres.site/LIVREF/F6/F006053.pdf ·...

Preview:

Citation preview

Résumé

UnapprentissageludiquedelaprogrammationGrâce à différents projets de difficulté progressive, ce cahier d’activités vousinitieraàlapratiquedel’algorithmiqueaveclacalculatriceTI-83PremiumCE,enexplorantdeuxchampscomplémentairesdelaprogrammation.Vousapprendrezd’une part à générer des images et des graphismes avec votre machine pourréaliser un labyrinthe et un jeu de basket. Vous utiliserez d’autre part le TI-Innovator™Hub,unboîtiercapabled’interagiravecsonenvironnementaumoyendecapteursetd’actionneurs,afindeconcevoirunpianotéléguidéetunascenseur.

Issus de projets réalisés avec des élèves de seconde, les chapitres de ce livrecomportent un grand nombre d’exercices, de petits défis, ainsi que desprogrammesàexécuterouàcompléter.Touteslessolutionsdecesexercicessontdisponibles sur http://go.eyrolles.com/ti ou par les QR codes figurant dansl’ouvrage. Vous y trouverez également des vidéos qui viendront complétercertainesexplicationsthéoriquesoupratiques.

AusommairePréambule:programmationaveclaTI-83PremiumCEetleTI-Innovator™Hub.Écritured’unprogramme•Programmationgraphique•ProgrammationavecleTI-Innovator™Hub•Lelabyrinthe.Lescodesdes touches•Affichaged’unpoint à l’écran • Affichage et déplacement du personage • Construction dulabyrintheetfinalisationdujeu•Lepianonumérique.Etsionparlaitcouleurs?Transformer sa calculatrice en piano • Le capteur de lumière • Le capteur dedistance•Lejeudebasket.Préparationdesimagesd’arrière-plan•Descriptiondujeuettracédesdessins•Codagedelaboucleprincipaledujeu•L’ascenseur.Matériel nécessaire au projet • Connexion des microrupteurs • Connexion durelaisetdumoteur•Constructiondelacaged’ascenseur•Branchementducircuitetécritureducode•Gestiondeladescente•Annexe:liensutiles.

Àquis’adressecelivre?•AuxélèvesdesecondeICN•Àtousceuxquisouhaitentprogresserenprogrammation

BiographieauteurPassionnéparlarobotiqueetlesnouvellestechnologies,Jean-BaptisteCivetestprofesseurdemathématiquesetmembredel’équipeT3(TeachersTeachingwithTechnology),unréseauinternationald’enseignantsfédéréparTexasInstruments.Ilparticipeàlaformationcontinue(mathématiques,usagedunumérique)etanimeunatelierderobotiquedanssonétablissementdepuisseptans.Professeurdemathématiquesenlycéeetdanslesupérieur,égalementmembredel’équipeT3,BorisHanušenseignelesspécialitésISNenterminaleSetICNensecondedepuisleurcréation.Trèsinvestidansl’utilisationdel’informatique,descalculatricesetducalculformelavecsesélèves, ilcontribueaudéveloppementdel’usagedesnouvellestechnologiesdanssonétablissement.

www.editions-eyrolles.com

Jean-BaptisteCivetBorisHanuš

AlgorithmiqueetprogrammationaveclaTI-83PremiumCE

ÉditionsEyrolles61,bdSaint-Germain

75005Pariswww.editions-eyrolles.com

MerciàCarlos,JohannaetAntoinepourleursoutiendansceprojet.

Attention : la version originale de cet ebook est en couleur, lire ce livrenumériquesurunsupportdelecturenoiretblancpeutenréduirelapertinenceetlacompréhension.

Attention:pourlirelesexemplesdelignesdecode,réduisezlapolicedevotresupportaumaximum.

Conceptiongraphiqueetmiseenpages:NordCompo

Enapplicationdelaloidu11mars1957,ilestinterditdereproduireintégralementoupartiellementleprésentouvrage,surquelquesupportquecesoit,sansautorisationdel’éditeurouduCentrefrançaisd’exploitationdudroitdecopie,20,ruedesGrands-Augustins,75006Paris.

©A4Technologiepourlesphotosdespages60et61©Jean-BaptisteCivetpourlesphotosdespages55et62©TexasInstrumentspourtouteslesautresphotosdel’ouvrage

©GroupeEyrolles,2017ISBN:978-2-212-67400-2

Avant-propos

Cet ouvrage à vocation pratique va vous faire découvrir deux champscomplémentaires de l’algorithmique et de la programmation avec la TI-83PremiumCE.D’unepart,vousapprendrezàcréerdesimagesetdesgraphismessurvotrecalculatricedanslebutdeconcevoirunlabyrintheetunjeudebasket.D’autre part, vous utiliserez le TI-Innovator™ Hub, un boîtier relié à lacalculatrice qui est capable de communiquer et d’interagir avec sonenvironnement à l’aide de capteurs et d’actionneurs. Vous serez ainsi amené àconstruireunpianotéléguidéetunascenseur,niplusnimoins!

Chaquechapitreestponctuépardenombreuxexercicesetdéfisàréaliser.Àcôtéde chaque énoncé d’exercice, vous trouverez un QR code et son lien associépointant tous deux sur la solution. Ce lien est présenté de manière réduite(go.eyrolles.com/...) mais doit en réalité s’écrire sous la formehttp://go.eyrolles.com/... La solution pourra être un programme àtélécharger, ou/et un fichier PDF à lire, ou/et une vidéo à visionner. Dans cederniercas,leQRcodeseraaccompagnédusymbole .

Tousces fichiersetvidéossontparailleursdisponiblessur l’extensionwebdel’ouvrage http://go.eyrolles.com/ti, sur laquelle figurent également lessolutionsdechaquedéfi.

Àvousdejouermaintenant!

Sommaire

Préambule

ProgrammationaveclaTI-83PremiumCEetleTI-Innovator™Hub

Écritured’unprogrammeEnutilisantl’uniténomade(lacalculatrice)EnutilisantlelogicielTIConnect™CE

ProgrammationgraphiqueFenêtragePrimitivesdedessin

ProgrammationavecleTI-Innovator™HubInstallonsl’applicationTI-Innovator™HubAllumonsuneLEDOuvronsleTI-Innovator™Hubàsonenvironnement

Chapitre1

Lelabyrinthe

ÉTAPE1 Lescodesdestouches

ÉTAPE2 Affichaged’unpointàl’écranEnutilisantlescoordonnéesdurepèreEnutilisantlescoordonnéesdespixels

ÉTAPE3 Affichageetdéplacementdupersonnage

ÉTAPE4 Constructiondulabyrintheetfinalisationdujeu

Chapitre2

Lepianonumérique

ÉTAPE1 Etsionparlaitcouleurs?SurlaTI-83PremiumCESurleTI-Innovator™Hub

ÉTAPE2 TransformersacalculatriceenpianoL’instructionSOUNDLaleçondepiano

ÉTAPE3 Lecapteurdelumière

ÉTAPE4 Lecapteurdedistance

Chapitre3

Lejeudebasket

ÉTAPE1 Préparationdesimagesd’arrière-plan

ÉTAPE2 DescriptiondujeuettracédesdessinsPositiondelamainLepanierdebasketetlesjaugesTestintermédiaire

ÉTAPE3 Codagedelaboucleprincipaledujeu

Chapitre4

L’ascenseur

Matérielnécessaireauprojet

ÉTAPE1 Connexiondesmicrorupteurs

ÉTAPE2 Connexiondurelaisetdumoteur

ÉTAPE3 Constructiondelacaged’ascenseur

ÉTAPE4 Branchementducircuitetécritureducode

ÉTAPE5 Gestiondeladescente

Annexe

Liensutiles

Préambule

ProgrammationaveclaTI-83PremiumCEetleTI-Innovator™Hub

Avantdedécouvrirlesdifférentsprojetspratiquesdecelivre,étudionsensemblequelquesmanipulationsdelaTI-83PremiumCEquivontêtreessentiellespourlasuite.NousenprofiteronségalementpourfaireconnaissanceavecleTI-Innovator™Hub,unboîtierquipermetd’étendrelesfonctionnalitésdelacalculatrice.

Écritured’unprogrammePour écrire un programme avec la TI-83 Premium CE, vous avez deuxpossibilités:soitutiliserdirectementleclavierdelacalculatrice,soitsaisirceprogrammesurordinateuretletransférersurlacalculatricegrâceaulogicielTIConnect™CE.

Enutilisantl’uniténomade(lacalculatrice)

Appuyezd’abordsurlatouche delaTI-83PremiumCE.Puis,àl’aidedesflèches,allezdansl’ongletNOUVEAU,choisissezlaseuleactionpossibleCréeretvalidez votre choix via la touche . Saisissez alors le nom de votreprogramme.Cen’estqu’unefoiscetteopérationdesaisievalidéeparlatouche

quevouspourrezcommenceràécrirelecodeduprogramme.

Vousremarquerezquesivousappuyezdenouveausurlatouche ,lemenuachangé et donne désormais accès aux fonctions de programmation classiques :boucles,conditions,affichages...Saisissezalorsvotreprogramme.Enfin,quittezl’éditeurenappuyantsur , .

Pourexécuterleprogramme,appuyezsurlatouche ,sélectionnez-ledanslaliste des programmes proposés et validez votre choix via la touche . Leprogrammeeffacel’écran,écrit«Hello»,puiss’arrête.

EnutilisantlelogicielTIConnectTMCE

CelogicielpourPCetMacpeutêtretéléchargégratuitementsurlesitedeTexasInstruments : https://education.ti.com/fr/products/computer-

software/ti-connect-ce-sw. Il permet notamment de saisir des programmessurvotreordinateuretdelestransférersurlaTI-83PremiumCE.

Sur votre ordinateur, ouvrez le logiciel TI Connect™ CE. Cliquez ensuite àgauchesur l’icôneÉditeurdeprogrammesetécrivezvotreprogramme.Puis,aprèsvousêtreassuréquelacalculatriceestbienbranchéeàl’ordinateurviasoncâbleUSB,transférezleprogrammesurlaTI-83CEencliquantsurlebouton.Leprogrammetransféréauralemêmenomqueceluid’origine(ici,MONTEE).

C’estégalementlelogicielTIConnect™CEquivouspermettradetransférersurvotre calculatrice les fonds d’écran de jeu que vous aurez créés sur votreordinateur.Ilconvertiraces imagesdansunformatcompréhensiblepar laTI-83PremiumCE.

Pour transférer une image sur la calculatrice, connectez cette dernière à votreordinateur. Dans TI Connect™ CE, cliquez sur l’icône Explorateur de

calculatrice,puissurleboutondetransfertdel’ordinateurversl’uniténomade. Choisissez alors le fichier à transférer et son emplacement sur la

calculatrice.

ProgrammationgraphiqueDansleschapitresdece livre,vousallezgénérerdes imagesetdesgraphismesavecvotrecalculatrice.Maissavez-vousconfigurersonenvironnementgraphiqueetutilisersesfonctionsdedessin?

Fenêtrage

Pourbiendessiner sur laTI-83PremiumCE, il faut partir d’un écranvide auxdimensionsadéquates.Maiscen’estpas toujours lecasselon le travailquiyaprécédé : présence des axes, de fonctions, etc.Vous devrez alors configurer la

fenêtregraphiquedelacalculatrice,soitmanuellementvialatouche ,soitendéfinissant directement dans vos programmes les variables d’environnementgraphique,auxquellesonaccèdeparlatouche .

Ainsi,dans l’extraitdeprogrammeci-après,ondemandeà lacalculatricedesemettreenmodefonction(Fonc),denepasafficherlesfonctionssicertainessont

actives(FoncNAff),denepasafficherlesaxes(GraphNAff),etc.

Lesinstructionsci-avantsontaccessiblesvialestouches , etongletVARY, et ,et et .

Primitivesdedessin

Pourutiliserlesfonctionsgraphiquesdevotrecalculatricedansvosprogrammes,appuyez sur les touches , , puis naviguez dans les onglets DESSIN,POINTS,ENRetARR-PLAN.

C’est dans l’ongletDESSIN que vous trouverez par exemple la routine de tracéLigne,etdansl’ongletPOINTSlesroutinesrelativesauxmanipulationsdepixels.

Savez-vousqu’enpositionnantlecurseurenregardd’unefonctionàl’aidedesflèchesetqu’enpressantlatouche ,vousfaitesapparaîtreunmenucontextueld’aide?Bienpratiquepourretrouverlesparamètres

d’unefonction!

Attention,neconfondezpasl’ongletARR-PLAN,accessibleparlestouches ,, avec lemenu Pic et arrière-plan, accessible par la touche et

l’onglet Variables. Le premier donne accès à la fonction ArrPlanAff, quipermetdansunprogrammed’allerchercherunarrière-planpourl’afficher:

Lesecondpermetdevisualiserlesimagesd’arrière-plandisponiblesdansvotrecalculatrice,préalablementtransféréesàl’aidedeTIConnect™CE.

ProgrammationavecleTI-Innovator™HubDans ce livre, nous allons découvrir le très grand potentiel du TI-Innovator™Hub,unpetitboîtierquisebranchesurlacalculatriceTI-83PremiumCE.Grâceà ses composants intégrés (microcontrôleur, LED, capteur de lumière, haut-parleurs…) et ses différents ports d’entrée/sortie, il permet de développer demultiplesprojets.Regardonsicicommentlefairefonctionner,puistestons-leavecquelquesopérationssimples.

Installonsl’applicationTI-Innovator™Hub

Pour pouvoir utiliser le TI-Innovator™ Hub, vous devez d’abord vérifier quevotreTI-83PremiumCEutilisebienlesystèmed’exploitation5.2ouultérieur:appuyez sur , , et sélectionnez À propos de. Si ce n’est pas le cas,mettezàjourvotrecalculatriceviahttps://education.ti.com/fr/product-resources/whats-new-84-ce.

Pourvérifiersil’applicationTI-Innovator™Hubestdéjàinstalléesurvotrecalculatrice,appuyezsur , ,sélectionnezGest.Mémoire/Suppr.puisApps,etrecherchezHubdanslalistedes

applicationsinstallées.

Vousdevezensuite télécharger et installer l’applicationTI-Innovator™Hub sur

votrecalcultatrice,saufsielleyestdéjà.Voicicommentprocéder.

1. Assurez-vous d’avoir installé la version 5.2 ou ultérieure du logiciel TIConnect™CEsurvotreordinateur(voirpage9).

2. Sur votre ordinateur, allez à l’adresse https://education.ti.com/fr/software/details/en/150E0DDCE2FF46C0BB96C5230970F967/ti-innovator-hub.

3. Téléchargez l’application TI-Innovator™ Hub. Notez les noms du fichiertéléchargéetdudossierdanslequelvousl’enregistrez.

4.Connectezvotrecalculatriceàl’ordinateuràl’aideducâbleUSBfourni.

5.Sur l’ordinateur, ouvrez le logicielTIConnect™CE,quidoit reconnaître lacalculatrice.

6. Dans le menu Actions, sélectionnez Ajouter des fichiers depuis unordinateur.TIConnect™CEvousinvitealorsàchoisirunfichier.

7. Naviguez jusqu’au dossier où vous avez enregistré le fichier téléchargé etdouble-cliquezsurcedernier.

8. Dans la fenêtre Envoyer aux calculatrices qui apparaît, cliquez surENVOYER.

Votre TI-Innovator™ Hub est maintenant prêt à l’emploi ! Si vous allez dansl’éditeurdeprogrammes,vousconstaterezqu’enappuyantsur la touche ,unongletHUB est apparu enhaut, preuveque l’applicationTI-InnovatorHub™estbieninstallée.

AllumonsuneLED

Àl’aideducâbleUSBfourni,reliezleTI-Innovator™HubàlaTI-83PremiumCE,enbranchantleconnecteurUSBdetypeBsurleHub,commesignaléparlepictogramme.LeconnecteurdetypeAdoitêtrereliéàlacalculatrice.

CréezunprogrammeLIGHTetsaisissezleslignesdecodesuivantesennaviguantdanslesmenusSend(«SETetSettingsdel’ongletHUB:

Send(“SETLIGHTON”)

Wait1

Send(“SETLIGHTOFF”)

Wait1

Lorsquevouséditezunprogrammenécessitantl’utilisationduTI-Innovator™Hub,voustrouverezlesroutinespermettantdelepiloter

dansl’ongletHUB,accessibleparlatouche .

Attention!Rappelez-vousquelatouche nedonnepasaccèsauxmêmesmenusselonqu’onestdansl’écrandecalculoudansl’éditeurde

programmes.

Sionexécuteleprogramme,ladioderougeduTI-Innovator™Hubs’allumepuiss’éteintauboutd’uneseconde.

Pourexécuterunprogrammeàpartirdel’écrandecalcul,appuyezsurlatouche etsélectionnez-ledanslaliste.Validezunepremièrefoisvia

pourquelenomduprogrammeapparaissedansl’écrandecalcul,puisvalidezànouveaupourl’exécuter.

OuvronsleTI-Innovator™Hubàsonenvironnement

Grâceàsesmultiplesportsd’entrée/sortie,leTI-Innovator™Hubalapossibilitédecommuniqueravecsonenvironnement.IlestainsicompatibleaveclaplupartdescapteursetactionneursGrove,quisontdisponiblesenkitouaudétailchezlesrevendeursdefournituresélectroniques.

Commençonspartesteruncapteuràultrasons,enlebranchantsurleportIN1duHubàl’aideducâblenormaliséfourni.

Attention,certainscapteursdoiventêtrebranchéssurleportIN3duHubenraisondeleurtensiond’utilisation.

Saisissezleprogrammesuivant:

Send(“CONNECTRANGER1TOIN1”)

Send(“READRANGER1”)

Get(R)

Disp(R)

Lorsdesonexécution,ceprogrammerenverralavaleurdeladistanceséparantlecapteuràultrasonsdel’obstacleleplusproche.

BranchonsàprésentdesactionneursGrove(relaisetservomoteur)sur lesportsOUTduTI-Innovator™Hubàl’aidedescâblesfournis.Onferaattentionàleurtension d’utilisation : le relais sera branché sur le port OUT 1, mais leservomoteur devra être connecté au port OUT 3. Il faut en outre ajouter unealimentationexterneenlabranchantsurleportmicroUSBPWR.

ExerciceDéterminercequ’ilvasepasseravecleprogrammesuivant.

Send(“CONNECTSERVO1TOOUT3”)

Send(«SETSERVO1TO-90»)

http://go.eyrolles.com/ti-intro

ÉtudionsmaintenantunautremodedecommunicationduTI-Innovator™Hubavecson environnement : la platine d’expérimentation (breadboard en anglais).Appelée encore platine d’essai, cette plaque permet de réaliser des montagesélectroniques sans soudure, grâce à ses brochesqui sont reliées entre elles pardesbandesmétalliques.

Laplupartdesbrochessontregroupéesparcolonnesdecinq.Touteslesbrochesd’une même colonne sont connectées électriquement les unes aux autres, maischaque colonne est isolée des autres. De part et d’autre de ces colonnes setrouventdesrailsd’alimentation,signaléspardesbandesrouges(+)etbleues(–).Lesbrochesd’unrailsontreliéesentreellessurtoutelalongueurdelabande.

Voiciuneplatinevuededessus(imageduhaut)etdedessous(imagedubas).

QuantauxbrochesduHub,ellessontaunombrede20au total :10brochesdesignal, 8brochesdemise à la terre, unebroched’alimentationde3,3Vet unebroched’alimentationde5V.

Nous utiliserons une platine d’expérimentation dans le dernier chapitre de celivre.

Chapitre1

Lelabyrinthe

Lebutdecechapitreestdecréerunlabyrinthedanslequelilfautdéplacerunpersonnagejusqu’àlasortieàl’aideduclavier.

ÉTAPE1 Savoirsurquellestouchesduclavierappuielejoueurafindeprogrammerlemouvementdupersonnage.

ÉTAPE2 Apprendreàafficherunpointàl’écran.

ÉTAPE3 Dessinerlepersonnagepuisl’affichersurl’écranenutilisantlespixelsdecouleur.

ÉTAPE4 Créerlelabyrintheetgérerlemouvementdupersonnageàl’intérieur.

ÉTAPE1 Lescodesdestouches

Pourdéplacer lepersonnagedans le labyrinthe, le joueurdevraappuyersur lesflèchesdedirection.Ilfautdoncsavoirquellestouchesduclavierilpressepourdéterminerlemouvementdupersonnage.

À chaque touche du clavier est associé un nombre. Pour savoir dans unprogramme quelle touche est enfoncée, il faut utiliser l’instruction GetKey,accessiblevialatouche ,ongletE/S.Cetteinstructionrenvoielecodedelatouchequiaétéappuyée,ou0siaucunetouchen’estpressée.Maisattention:dèsqu’on a fini d’appuyer sur une touche, GetKey reprend la valeur 0. C’est unefonctiondontlavaleurestactualiséeàchaquemillièmedeseconde.

IlfautdoncécrireunprogrammequitesteconstammentlavaleurdeGetKey (quivaut0tantqu’unetouchen’estpasenfoncée),etquis’arrêtedèsqu’unetoucheaétépressée,enaffichantlecodedelatouche.Ceprogramme,quiaffichelecodedelatouchesurlaquelleonappuie,estprésentéci-après.

DÉFI1Commentmodifierleprogrammeci-avantpourque,sansêtrerelancé,ilaffichelecodedechaquetoucheenfoncée?Indication:ilsuffitdesupprimeruneligne…

Exercice1

Exécuter le programme précédent et déterminer le code des touches ,

, et .

Pourexécuterunprogramme,ilfaut:1.sortirdel’éditeurdeprogrammesvia , ;

2.choisirleprogrammeàexécutervia ,ongletEXEC;3.sélectionnerlenomduprogrammesouhaité.

go.eyrolles.com/ti-ch1ex1

Exercice2Surcettecalculatrice,inscrirelecodedechacunedestouches.

go.eyrolles.com/ti-ch1ex2

Exercice3Compléterlespointillésduprogrammesuivantpourqu’ilafficheàl’écranuncompteurCquidémarreà5etquiaugmentede10chaquefoisqu’onappuie

surlatouche .

5→C

0→B

WhileB=0

getKey→A

IfA=26

Then

………………→C

Output(10,14,C)

End

End

Laboucleci-avantvas’exécutertantqueB=0.CommeBnechangerapasdevaleur,leprogrammenes’arrêterajamais!

Outputpermetd’afficheruntexteouunevariableàunendroitprécisdel’écran,commeiciligne10etcolonne14.

go.eyrolles.com/ti-ch1ex3

Exercice4ModifierleprogrammeprécédentpourqueCdiminuede10lorsqu’onappuiesurlatouche .

go.eyrolles.com/ti-ch1ex4

Exercice5Modifier le programme précédent pour afficher, à gauche de l’écran, lavariableC (dont lavaleurchangeavec les flèches et ) et, àdroitede

l’écran,unevariableLquivarieaveclesflèches et .

go.eyrolles.com/ti-ch1ex5

ÉTAPE2 Affichaged’unpointàl’écran

Pourafficherunpointàl’écran,ilexistedeuxméthodes,selonqu’onseréfèreauxcoordonnéesdurepèreouàcellesdespixels.

Maistoutd’abord,ilfautsupprimeràl’écrantoutaffichagenonsouhaité(tracédefonctions, graphique statistique, etc.). Vous devez donc effacer les fonctionsprésentesdans etdésactiverGraph1,Graph2etGraph3quinedoiventpasêtreensurbrillance(sivousvoyezparexemple ,c’estqu’ilestactivé!).

Votreécrandoitressembleràceluici-après.

PourdésactiverunGraph,sepositionnerdessusaveclesflèchesdedirectionetappuyersur .

Enutilisantlescoordonnéesdurepère

Exercice6DéterminerlescoordonnéesdespointsCetD:

go.eyrolles.com/ti-ch1ex6

Lerepèrepeutêtremodifiéenappuyantsur .

Si on utilise les coordonnées du repère, l’instruction permettant d’afficher unpointàl’écranestalorsPt-Aff(abscisse,ordonnée).Elleestaccessiblevia

, ,ongletPOINTS.

Pour afficher le point A en bleu, il faut écrire la ligne de code Pt-Aff(2,4,BLEU)enrécupérantleBLEUdansl’ongletCOULEURvialatouche .

Exercice7Écrireunprogrammequipermetd’afficherlespointsprécédentsA,B,CetDenrespectantleurcouleur.

Onaccèdeauxnomsdescouleursdisponiblesvia ,ongletCOULEUR.

go.eyrolles.com/ti-ch1ex7

Enutilisantlescoordonnéesdespixels

Sionn’utilisepaslerepèreprécédent,ilfautd’abordsupprimersonaffichageenchoisissant via , .

Pourrepérerunpointsurl’écrandelaTI-83PremiumCE,onpeutaussiseréférerauxcoordonnéesdespixels,sachantquecetécranaunelargeurde265pixelsetune hauteur de 165 pixels.Dans ce cas, l’instruction pour afficher un point estPxl-Aff(ligne,colonne,[couleur]),accessiblevia , .

Attention!Onneserepèreplusaveclerepèrehabituel…maispar ligneetparcolonne (l’origine du nouveau repère étant en haut à gauche). Pour biencomprendreceprincipe,effectuonsunzoomducoinsupérieurgauchedel’écran:

et représentons la zone agrandie ci-après en activant quatre pixels de couleursdifférentes.

Lepixelnoirestsituéligne2,colonne4,doncl’instructionpourl’afficherest:Pxl-Aff(2,4,NOIR)

Dansunprogrammequidessine(despixelsouautres),ilfautprévoiraudébutl’instructionEffDess(accessiblevia , )poureffacerles

anciensdessins.

Exercice8Donnerlesinstructionspourafficherlestroisautrespixelsdecouleur.

go.eyrolles.com/ti-ch1ex8

Exercice9Écrireunprogrammequiaffichelesquatrepixelsprécédents(ouvrezbienlesyeux,c’esttoutpetit!).

Ledessinpixelparpixelpeuts’avérertrèslong!ReprésentonsunsegmentaveclaboucleFORgrâceàceprogrammenomméCARREMVT:

EffDess

For(I,5,17)

Pxl-Aff(I,10,NOIR)

End

Àl’exécution,onpeutvoirlesegmentci-aprèsquis’affiche.

go.eyrolles.com/ti-ch1ex9

Exercice10Compléterleprogrammeprécédentafindereprésenterlecarréci-dessous:

go.eyrolles.com/ti-ch1ex10

DÉFI2Commentécrireunprogrammeencinqlignesquicolorietoutl’écranenbleu?

ÉTAPE3 Affichageetdéplacementdupersonnage

Nous allons maintenant déplacer le carré précédent à l’aide des flèches dedirection. Pour commencer, écrivons un programme qui le fait avancer de 10pixelsàdroitelorsqu’onappuiesurlatouche (touchequiapourcode26).

Enréalité,nousavonsbesoindedeuxprogrammes.

• Le programme CARRE qui permetd’afficherlecarré:

For(I,5,17)

• Le programme PRINCIPA qui faitaugmenter de 10 une variable C

(démarrantà5)lorsqu’onappuiesur

Pxl-Aff(I,10,NOIR)

Pxl-Aff(I,22,NOIR)

End

For(I,10,22)

Pxl-Aff(5,I,NOIR)

Pxl-Aff(17,I,NOIR)

End

laflèche :

DispGraph

EffDess

5→C

0→B

WhileB=0

getKey→A

IfA=26

Then

C+10→C

End

End

L’instructionDispGraph,accessiblevia ,ongletE/S,permetd’afficherlafenêtre

graphique.

Pour faire le lien entre cesdeuxprogrammes, nous allonsd’abordmodifier lesinstructionsPxl-AffafindetenircomptedeC.Enparticulier,lescoordonnéesducarrédoiventdépendredecettevariable.Deplus,dansleprogrammePRINCIPA,dèsqueCchangedevaleur,ilfautdemanderd’exécuterledessinducarré,c’est-à-direleprogrammeCARRE.Onaboutitdoncauxprogrammessuivants.

• ProgrammeCARRE:

For(I,5,17)

Pxl-Aff(I,C+10,NOIR)

Pxl-Aff(I,C+22,NOIR)

End

For(I,10,22)

Pxl-Aff(5,C+I,NOIR)

Pxl-Aff(17,C+I,NOIR)

End

• ProgrammePRINCIPA:

DispGraph

EffDess

5→C

0→B

WhileB=0

getKey→A

IfA=26

Then

C+10→C

prgmCARRE

End

End

Pourécrirel’instructionprgmCARRE,appuyersur ,

ongletEXECetchoisirCARRE.

SionexécuteleprogrammePRINCIPAetqu’onappuiesurlaflèche ,lecarré

sedéplace!Maiscatastrophe,onconstatequelecarréprécédentrestevisible .Ilfautdoncl’effacer…

Pourcela,onvautiliser l’instructionPxl-NAff(ligne,colonne). Accessiblevia , ,ongletPOINTS,ellepermetd’éteindreunpixelenlecoloriantdelamêmecouleurquelefondd’écran(doncenblancici)avantdedessinernotrenouveaucarré.

Pourconnaîtrelapositionprécédenteducarré,nousallonsintroduireunevariableE qui correspondra à l’anciennevaleurdeC.E sera donc définie juste avant lechangementdevaleurdeC.

• ProgrammeCARRE:

For(I,5,17)

Pxl-NAff(I,E+10)

Pxl-NAff(I,E+22)

End

For(I,10,22)

Pxl-NAff(5,E+I)

Pxl-NAff(17,E+I)

End

For(I,5,17)

Pxl-Aff(I,C+10,NOIR)

Pxl-Aff(I,C+22,NOIR)

End

For(I,10,22)

Pxl-Aff(5,C+I,NOIR)

Pxl-Aff(17,C+I,NOIR)

End

• ProgrammePRINCIPA:

DispGraph

EffDess

5→C

0→B

WhileB=0

getKey→A

IfA=26

Then

C→E

C+10→C

prgmCARRE

End

End

Exercice11ModifierleprogrammePRINCIPApourquelecarrépuissesedéplacerverslagauche.

go.eyrolles.com/ti-ch1ex11

Exercice12ModifierlesprogrammesCARREetPRINCIPApourpouvoirdéplacerlecarréàl’aidedes flèches et .Onpourra introduireunevariable L (pourligne…).

go.eyrolles.com/ti-ch1ex12

Àprésent,ilfautdessinerlepersonnage!Sivoussouhaitezreprésenterl’image,ilfautladessinerpointparpoint…

Voicinotrepersonnagepixelparpixel:

Dessinerci-dessoussonproprepersonnage:

Dans le programme qui va dessiner le personnage, il est possible d’utiliserquelquesbouclespoursimplifierl'écritureducode.Eneffet,laligne1necontientquedespixelsverts.Cettelignepeutdoncs’écrire:

For(I,5,10)

Pxl-Aff(L+2,C+I,vert)

End

Cequiestpluscourtque:

Pxl-Aff(L+2,C+5,vert)

Pxl-Aff(L+2,C+6,vert)

Pxl-Aff(L+2,C+7,vert)

Pxl-Aff(L+2,C+8,vert)

Pxl-Aff(L+2,C+9,vert)

Pxl-Aff(L+2,C+10,vert)

Pourgérerlemouvementdupersonnage,nousavonsintroduitlesvariablesL(pourligne)etC(pourcolonne).

Onprocéderadelamêmemanièrepourladeuxièmeligne.Enrevanche,pourlaligne3,ondevraécrire:

Pxl-Aff(L+4,C+4,ROUGE)

Pxl-Aff(L+4,C+5,ROUGE)

Pxl-Aff(L+4,C+6,ROUGE)

Pxl-Aff(L+4,C+7,ORANGE)

Pxl-Aff(L+4,C+8,ORANGE)

Pxl-Aff(L+4,C+9,NOIR)

Pxl-Aff(L+4,C+10,ORANGE)

Exercice13ÉcrireleprogrammePERSquiaffiche lepersonnage.PuisanimercedernierenexécutantetenmodifiantleprogrammePRINCIPA.

Onremarquequ’àchaquedéplacement, lepersonnage resteaffiché. Il fautdoncécrire un programme qui va effacer l’ancien personnage avant d’afficher lenouveau.Onpourrautiliserl’instructionPxl-NAff.

go.eyrolles.com/ti-ch1ex13

Exercice14Écrire le programme PERSOFF qui efface le personnage, puis modifier leprogrammePRINCIPAen conséquence.Dans cedernier, il faudra appeler leprogramme PERSOFF en ayant préalablement stocké les coordonnées del’anciennepositiondupersonnage.

go.eyrolles.com/ti-ch1ex14

ÉTAPE4 Constructiondulabyrintheetfinalisationdujeu

Danslaprogrammationd’unlabyrinthe,ladifficultéestdetraduireencodedansquel cas le personnage a le droit d’effectuer un déplacement. Comment allons-nouscréerl’objetinformatiquelabyrinthe?

Partonsdulabyrintheci-après:

ModélisonslesmursenconsidérantquelesquatrelignesbleuesdiscontinuesL1àL4 contiennent parfois des murs et parfois non. Sur chacune de ces lignesverticales,laprésenced’unmurseracodéeparun1,etsonabsenceparun0.

Avec ce système, la première ligne du labyrinthe sera codée de lamanière ci-après:

Exercice15PoursuivezlecodagedeslignesL2,L3etL4.

Précisonsquevousn’êtespasobligédeprendrecommemodèlelelabyrintheci-dessus.Vouspouvezdessinervospropresmursetlescoder!

go.eyrolles.com/ti-ch1ex15

Nousallonsmaintenantentrer lescodescorrespondantauxmursdansdeslistes,enappuyantsur etenchoisissantModifier.Celanouspermettradelirecesvaleurslorsdelaconstructiondulabyrinthe,ouéventuellementdelesmodifiersionsouhaitechangersonaspect.

Entronsalorslesvaleursdéterminéesprécédemment:

S’ilmanquedeslistes,appuyersur ,puischoisirÉditeurConfig.

Poureffacerleslistes,appuyersur ,puisentrerEffListeL1,L

2,

L3,L

4.

IlfautmaintenantécrireleprogrammeLABYquivadessinerlelabyrintheentenantcomptedesmurs(qu’onpourraéventuellementchangerparlasuiteenmodifiantles valeurs des listes L1, L2, L3 et L4 correspondant aux lignes du même nom).Commençonsparendessinerlecadreci-après.

Onpeututiliserunebouclepourafficherlesdeuxlignesverticales:

EffDess

For(I,22,132)

Pxl-Aff(3,I,BLEU)

Pxl-Aff(163,I,BLEU)

End

Exercice16Écrirelabouclepermettantd’afficherlesdeuxligneshorizontalesducadre.

Occupons-nousàprésentdesmurs.Nousallonscréerquatreboucles,puisquecesmurs ont été codés dans quatre listes.Unmur étant un segment, il faut d’aborddéterminerlescoordonnéesdespixelsdesextrémitésdechacund’eux.

Pour la liste L1, nous avons comme coordonnées (ligne, colonne) : (3,44) ;(23,44);(43,44);(63,44);(83,44);(103,44);(123,44);(143,44)et(163,44).

• SiL1(1)=1,alorsilfauttracerlalignede(3,44)à(23,44),sinononn’afficherien.

• SiL1(2)=1,alorsilfauttracerlalignede(23,44)à(43,44),sinononn’afficherien.

• SiL1(3)=1,alorsilfauttracerlalignede(43,44)à(63,44),sinononn’afficherien.………….

• Si L1(8)=1, alors il faut tracer la ligne de (143,44) à (163,44), sinon onn’afficherien.

La listeL1 seradonccodéede lamanière suivante (pour l’instructionPxl-Aff,pasbesoinicidepréciserlacouleur:ceseraalorspardéfautladernièreutiliséeparlacalculatrice):

For(I,1,8)

IfL1(I)=1

Then

For(J,0,20)

Pxl-Aff(3+20*(I-1)+J,22*2)

End

End

End

Onarriveàlaformuleci-avantenremarquantquelesnombres3,23,43,...,143peuvents'écriresouslaforme3+20×(I-1)avecIvariantde

1à8.

go.eyrolles.com/ti-ch1ex16

Exercice17Écrirelecodepourlestroisautreslistesafind’affichertouslesmurs.

Pourmarquerlafindujeu,ilfautquevotrepersonnageatteignelacerise.Ilfautdonccoderledessindecefruit(oud’unautredevotrechoix).OnaindiquéicilescoordonnéesdupixelORANGEderéférence.

go.eyrolles.com/ti-ch1ex17

Exercice18Coderlacerise(outoutautrefruitdedimensionéquivalente).

Ona presque fini ! Il ne reste plus qu’à écrire le programmeprincipal, appeléMAITRE,quiva:

• afficherlelabyrinthe;

• afficherlepersonnageàsapositioninitiale;

• permettre lemouvement du personnage (selon la présence ou l’absence d’unmur);

• s’arrêteretafficher«Gagné»lorsquelepersonnageauraatteintlacerise.

Lepremierpointestdéjàréglépuisqu’ilsuffitd’appelerleprogrammeLABYpourafficherlelabyrintheetlacerise:prgmLABY

Le second point est facile : il faut appeler le programme PERS en donnant desvaleursdedépartàsesvariablesLetC.OnprendraL=5etC=26pourafficherlepersonnageenhautàgauchedulabyrinthe.

prgmLABY

5→L

26→C

prgmPERS

Pour gérer le déplacement du personnage, il faut savoir où ce dernier sepositionne dans le labyrinthe. Considérons les cases (ligne U, colonne V) où ilpeutsesituer.

go.eyrolles.com/ti-ch1ex18

Exercice19DéterminerlavaleurdeUetdeVdanslesquatrecasci-après:

go.eyrolles.com/ti-ch1ex19

InitialisonslesvaleursdeUetVà1:

prgmLABY

5→L

26→C

prgmPERS

1→U

1→V

PuisprenonsunevariableBinitialiséeà0quipasseraà1silepersonnageatteintlacasedelacerise.OnvaécrireuneboucleWhileB=0etprendrelavaleurdelatoucheenfoncéeparl’utilisateurenlastockantdansunevariableA.

Si l’utilisateur appuie sur la flèche (code 34), il faut vérifier si lepersonnagepeutdescendre.Celan’estpossiblequesiUeststrictementinférieurà8.

Si lepersonnagepeutdescendre, il faut alorseffacer l’ancienpersonnage.Pourcela, il fautdéfinir lavaleurdeLetC (qui servent à effacer le personnage) enfonctiondeUetV.Onaprévudescasesde22pixelsde largesur20pixelsdehaut,sibienqu’ilestfaciled’exprimerLetCenfonctiondeUetV.

En tenant compte de la valeur initiale du personnage (L=5 et C=26), on obtientnaturellementlesrelations:

L=5+20*(U-1)etC=26+22*(V-1)

Oncodealorscetteaffectation,puisonlanceleprogrammePERSOFF.

OnaugmenteUde1,ondéfinitlanouvellevaleurdeLetonappelleleprogrammePERSpourafficherlepersonnageàsonnouvelemplacement:

prgmLABY

5→L

26→C

prgmPERS

1→U

1→V

0→B

WhileB=0

getKey→A

IfA=34

Then

IfU<8

Then

5+20*(U-1)→L

26+22*(V-1)→C

prgmPERSOFF

U+1→U

5+20*(U-1)→L

prgmPERS

End

End

End

Exercice20Coderlecasoùl’utilisateurappuiesurlatouche (code25).

Pour finaliser lemouvementdupersonnage, il fautvérifier s’il y aunmurà sadroitequand l’utilisateurappuiesur la touche (code26).SiV=1,on teste la

valeurdeL1(U);siV=2,ontestelavaleurdeL2(U),etc.Silavaleurestnulle,onautoriseledéplacement.Voicidonclasuiteduprogramme:

IfA=26

Then

IfV=1

Then

IfL1,(U)=0

Then

5+20*(U-1)→L

26+22*(V-1)→C

prgmPERSOFF

V+1→V

26+22*(V-1)→C

prgmPERS

End

End

IfV=2

Then

IfL2,(U)=0

Then

5+20*(U-1)→L

26+22*(V-1)→C

prgmPERSOFF

V+1→V

26+22*(V-1)→C

prgmPERS

End

End

go.eyrolles.com/ti-ch1ex20

Exercice21Traiterlesdeuxautrescasoùlepersonnageestencolonne3ou4.

go.eyrolles.com/ti-ch1ex21

Exercice22

Coderlecasoùl’utilisateurappuiesurlaflèche (code24).

Pourfinir,lorsquelepersonnagearrivedanslacasedufruit,ilfautprogrammerl’affichage de «VICTOIRE». Pour cela, on pourra utiliser l’instructionTextequiutiliselescoordonnéesdespixels(ligne,colonne):

Texte(ligne,colonne,"Texteàécrire")

go.eyrolles.com/ti-ch1ex22

Exercice23Terminer le programme en prévoyant un test à la fin pour savoir si lepersonnageestauniveaudelaceriseetempêchertoutautredéplacement.

go.eyrolles.com/ti-ch1ex23

Chapitre2

Lepianonumérique

LebutdecechapitreestdesefamiliariseravecleTI-Innovator™Hubetd’utilisersescapteursintégrés,puisdeleconnecteràuncapteurextérieurpourréaliserunpianotéléguidé.

ÉTAPE1 ApprendreàcoderunecouleuretactiverlaLEDduTI-Innovator™Hub.

ÉTAPE2 Déterminerlafréquenced’unenoteetjoueraupianoavecleTI-Innovator™Hub.

ÉTAPE3 UtiliserlecapteurdelumièreduTI-Innovator™Hub.

ÉTAPE4 BrancheruncapteurdedistancesurleTI-Innovator™Hub.

ÉTAPE1 Etsionparlaitcouleurs?

SurlaTI-83PremiumCE

SurlaTI-83PremiumCE,ondisposede15couleursprédéfiniesaveclesquellesonpeutdessinerouécriredutexte.

Chaquecouleurpeutêtredésignéeparsonnom,maisaussiparunnuméroquiluiestassocié.Ainsi,lebleuportelenuméro10,lerougelenuméro11,etainsidesuite jusqu’à24 (se référerà l’ordred’apparitiondescouleurspourendéduireces numéros). Cette numérotation peut simplifier le codage, par exemple pourgénéreruneimagedontonferavarierlacouleurdansuneboucle.

Dansl’éditeurdeprogrammes,lenomdescouleursestaccessibleenappuyantsur etenchoisissantl’ongletCOULEUR.

Pour afficher un texte dans la fenêtre graphique, il faut utiliser l’instructionTexte(ligne,colonne,"texteàafficher").Pourdéfinirsacouleur,ilfautprécéder cette instruction de la ligne CouleurTexte(nom ou numéro de la

couleur).

Quandonécritunprogramme,onaccèdeàl’instructionCouleurTextevia, .

Cesdeuxprogrammesréalisentdonclamêmeaction:

CouleurTexte(ROUGE)

Texte(10,10,"COUCOU")

CouleurTexte(14)

Texte(10,10,"COUCOU")

Dansl’instructionTexte,lerepérageutiliséestlepixel.Lescoordonnéescorrespondentdoncàlaligneetàlacolonnedupixel.

À l’aide de l’instruction Ligne, accessible via , , onglet DESSIN,dessinonsmaintenantunsegment.Lesargumentssont:

Ligne(X1,Y1,X2,Y2,affichage,couleur)

Une ligne s’affiche ainsi du point de coordonnées (X1,Y1) jusqu’au point(X2,Y2).Cescoordonnéessontdonnéesdanslerepère«classique»(voirplusbas).L’argumentaffichagepeutprendre lavaleur0poureffacer la ligneou1pour l’afficher. Comme vu précédemment, la couleur doit être un numérocomprisentre10et24,oubienlenomdelacouleur.

Commevudanslechapitre1,ilyadeuxfaçonsderepérerdespointsàl’écran:

• aveclescoordonnéesdespixels(origineenhautàgauche);

• aveclerepèredéfinienappuyantsurlatouche .

Afinde travailler facilementavecces repères, il est conseillédeparamétrer lafenêtreainsi:

L’originedurepère«pixel»estenhautàgauche:

Enrevanche,l’originedurepère«classique»estenbasàgauche:

Exercice1Reproduirelerectangleci-après,delargeur10pixelsetdehauteur45pixels.

go.eyrolles.com/ti-ch2ex1

SurleTI-Innovator™Hub

LaTI-83PremiumCEpermetde travailleravec15couleursseulement.Mais ilexisteunsystèmedecouleursbienpluscomplet:lecodeRGB(pourRedGreenBlue, Rouge Vert Bleu ou RVB en français). En mélangeant ces trois couleurs«élémentaires»ou«primaires»,onpeutgénérerdesmillionsd’autrescouleurs.Lavaleurdechacunedecestroiscomposantesestunnombrecomprisentre0et255.

Envoiciquelquesexemples

COULEUROBTENUE R G B

255 0 0

0 255 0

0 0 255

255 0 255

0 255 255

128 128 128

255 255 255

0 0 0

100 50 255

Lavisionhumainedescouleursestrenduepossiblegrâceàdescônesdelarétinequiontdessensibilitésdifférentesaurouge,vertetaubleu.

NousallonsutilisercecodeRGBpourmodifierlacouleurdelaLEDmulticoloreintégréeauTI-Innovator™Hub.Danslecodeci-dessous,l’utilisateurestinvitéàsaisirlesvaleursdescomposantesR,GetB,quisontensuiteaffectéesàladiodeduHub.

LeTI-Innovator™HubestaussiappeléHub.

EffÉcran

Disp"T=0POURARRETER"

1→T

RepeatT=0

PromptT,R,G,B

Send("SETCOLOReval(R)eval(G)eval(B)TIME3")

Wait3

End

Promptpermetàl’utilisateurdesaisirlesvaleursdeT,R,GetBlorsdel’exécutionduprogramme.TIME3signifiequelaLEDvaresterallumée3

secondes.

Send("SETCOLORestobtenuenappuyantsur ,ongletHUB,etenchoisissantCOLOR.

Lafonctionevalestunedesfonctionsprimordialesàconnaîtrelorsqu’onutiliseleTI-Innovator™Hub.Ici,leprogrammeenvoieauHubunelignedecommande,compriseentre lesguillemets,quicontientunechaînedecaractères.Lafonction

evalconvertitlavaleurcontenuedanslavariablepasséeenargument.

Supposonsparexempleque0,128et255soientaffectésrespectivementàR,GetB.LaligneSend("SETCOLOReval(R)eval(G)eval(B)TIME3")enverradoncauHublacommandesuivante"SETCOLOR0128255TIME3".

Sionn’utilisepas lafonctionevaletquel’onécritSend("SETCOLORRGBTIME3"),leHubrecevralacommande"SETCOLORRGBTIME3",cequ’ilnesaurapasinterpréter.

Exercice2Écrire un programme qui affiche une lumière orange, puis violette, puisblanche,pendant1secondesuccessivement.

go.eyrolles.com/ti-ch2ex2

ÉTAPE2 Transformersacalculatriceenpiano

L’instructionSOUND

Le TI-Innovator™ Hub permet d’émettre des sons grâce à son haut-parleurintégré.

Lehaut-parleurduHubconvertitlecourantensonaudible.Ilpeutémettredessonssurdesfréquencesallantde40Hzà4000Hz.

Pourutilisercehaut-parleur,ondoitemployerl’instruction:

Send("SETSOUNDFreqTIMEtemps")

Freqestunnombrecorrespondantàlafréquenceenhertzettempsestexpriméensecondes.

Lorsqu’un guitariste ou un pianiste accorde son instrument, il prend commeréférencelanote laquidoitvibrerà440hertz.Pourproduirecesonpendant1secondeavecleHub,onentredoncl’instruction:

Send("SETSOUND440TIME1")

xs

Nousallonsmaintenantcréerunprogrammepourémettreceson.

Oncommenceparallerchercherl’instructionSend("SET,quiestaccessibledans,ongletHUB.

Unefoiscetteinstructionsélectionnée,onchoisitSOUND.

Onentrealorslafréquence440.Onafficheensuitel’instructionTIMEenappuyantsur ,ongletHUB,etenchoisissantSettingspuisTIME.

Onadoncécritlaligne:

Enexécutantceprogramme,onproduitunsonde440Hertzpendant1seconde.

Laleçondepiano

Nous allonsmaintenant créer un petit clavier pour jouer du piano à l’aide destouchesdelacalculatrice!Nousafficheronsàl’écranl’imagedececlavier:

Ildevracorrespondreauxtouchessuivantesdelacalculatrice:

Letravailàeffectuercomportetroisétapes.

1. DessinerleclavieravecunlogicieldedessincommePaintouGimp.

2. Déterminerlafréquencedechacunedesnotes.

3. Associer à la frappe d’une touche l’émission du son correspondant à lafréquencedelanote.

Lesétapes1et3sontréalisablesaveccequiaétévuprécédemment.Pourl’étape2,nousavonsbesoindequelquesnotionsdemusique.

Pour connaître la fréquence de chaque note de notre gamme, nous allons faireappelauxfractions,enutilisantdeuxrègles.

• Règlen°1:d’uneoctaveàlasuivante,lesfréquencessontmultipliéespar2.

Par conséquent, comme le la de référence vibre à 440Hz, le la de l’octavesupérieurevibreraà880Hzetceluidel’octaveinférieureà220Hz.

• Règlen°2:lerapportdefréquenced’unequinteesttoujoursde (pourceux

quinelesaventpas,onprécisequ’unequinteestcomposéede7demi-tons).

Danslafigureci-dessous,onestpartidudoetonaainsicompté7demi-tonspourarriverausol.

Autreexemple,onestpartiicidulaetonacompté7demi-tonspourarriveraumi.

Silelavibreà440Hz,lemidelafigureprécédente,quisetrouveunequinteau-dessus,vibreradoncà:

Etlemidel’octaveprécédentevibreraà =330Hz.

Afindeserepérersurleclavier,numérotonslesoctaves.Onadonclesrésultatssuivants:

Exercice3Enpoursuivantletravaildequinteenquinteetd’octaveenoctave,déterminerlesfréquencesdelaquatrièmeoctave(enbleuci-dessus).

go.eyrolles.com/ti-ch2ex3

Exercice4ÉcrireàprésentunprogrammePIANOquiassocieàchaquetoucheunenotedelagamme.

Indications:aprèsavoirdessinéleclavier,oncréerauneboucleWhileetonprendra la valeur de la touche sur laquelle l’utilisateur appuie à l’aide del’instructionGetKeyqu’onstockeradansA.Puis,selonlavaleurdeA,onferavibrer lehaut-parleurduHub en envoyant l’instructionSend( "SET SOUND*** TIME 1" ). On remplacera *** par la fréquence qui convient (quidépenddoncdelavaleurdeA).

go.eyrolles.com/ti-ch2ex4

ÉTAPE3 Lecapteurdelumière

SurlecôtéoùestbranchélecâblereliantleTI-Innovator™Hubàlacalculatrice,ontrouveuncapteurdelumièrequipermetdemesurerlaluminosité(Brightness).

L’instructionpourlirelaquantitédelumièrereçueparlecapteurestSend("READBRIGHTNESS"). Puis il faut récupérer cette valeur à l’aide de l’instructionGet(nomvariable),quilastockeradansunevariableafindel’exploiter.

LacommandeSend("READBRIGHTNESS")estaccessiblevia ,ongletHUB:choisiralorsSend("READ.

Stockonscettevaleurdeluminosité(expriméeenpourcentage)dansunevariableBetcommençonsparl’afficher:

Send("READBRIGHTNESS")

Get(B)

DispB

LacommandeGetestaccessiblevia ,ongletHUB.

Ce code va donc afficher la valeur de la luminosité captée par le Hub aulancementduprogramme.

Modifions-lepourobtenirunaffichagecontinudelaluminosité:

EffÉcran

0→A

WhileA=0

Send("READBRIGHTNESS")

Get(B)

Output(5,5,B)

End

Oncréeuneboucleinfinieenaffectant0àAetenécrivantWhileA=0.

Àl’exécutionduprogramme,onverra lavaleurde la luminosités’actualiserencontinu. Si on approche le capteur d’une source de lumière comme une lampe,cettevaleuraugmentera.

On remarque que la valeur est plutôt inférieure à 10 dans une pièce.Mais elleaugmente rapidement lorsqu’on s’approche d’une source lumineuse naturelle ouartificielle.

Exercice5Compléterlespointillésduprogrammeci-dessous,quiémetunsonlorsquelavaleurducapteurdelumièreestsupérieureà10.ÀquoisertlavariableL?

EffÉcran

0→A

0→L

WhileA=0

Send("READBRIGHTNESS")

Get(B)

Output(5,5,B)

IfB>……………

Then

IfL=0

Then

1→L

Send("SETSOUND500TIME1")

End

End

End

go.eyrolles.com/ti-ch2ex5

DÉFI3MettezleTI-Innovator™Hubsousunelampe.CommentmodifierleprogrammeprécédentpourqueleHubémetteunsonaiguquandlalampeestalluméeetunsongravequandelleest

éteinte?

ÉTAPE4 Lecapteurdedistance

Nous allons à présent utiliser un capteur de distance, qui permet demesurer ladistance leséparantd’unobstacleà l’aided’ultrasons. Iln’yenapasdefourniavecleHub,maisonpeuts’enprocurerunaveclekitTI-Innovator™BreadboardPack.

Tout d’abord, il faut connecter le capteur de distance au port IN 1 du TI-Innovator™Hub.

Écrivonsunprogrammequiaffichelavaleurrenvoyéeparlecapteur:

EffÉcran

1→A

Send("CONNECTRANGER1TOIN1")

WhileA=1

Send("READRANGER1")

Get(R)

Output(5,13,100*R)

Wait0.1

End

La ligneSend("CONNECTRANGER1TOIN1")permetd’établir laconnexiondu capteur avec le TI-Innovator™ Hub au port IN 1. La ligne Send("READRANGER1")écritlavaleurrenvoyéeparlecapteuretGet(R)stockecettevaleurdanslavariableR.Onaécrit100*Rpourexprimerlavaleurencentimètres.

Exécutezceprogrammeetmettezvotremainau-dessusducapteurenl’approchantouenlareculant.

Exercice6Modifierleprogrammeprécédentpourqu’unsonsoitémissivotremainestàmoinsde20cmducapteur.

go.eyrolles.com/ti-ch2ex6

Exercice7Jean-Michel Jarre utilise des capteurs pour jouer de la musique dans sesconcerts : il met sa main au-dessus d’un capteur ce qui génère une note.Reproduisez ce phénomène en écrivant un programme qui joue un do si ladistancemain-capteurestinférieureà10cm,unrésielleestcompriseentre10et15cm,etunmientre15et20cm.

go.eyrolles.com/ti-ch2ex7

DÉFI4Serez-vouscapabledecréerunprogrammeaffichantuncarréde3×3pixelsquisedéplacesurlesordonnéesenfonctiondeladistancemain-capteur?Lebutseradecolorierentièrementlaligne.Attention,l’instructionPxl-Affnefonctionnantqu’avecdesvaleursentières,ilfaudrautiliserlafonctionentquipermetd’isolerlapartieentièred’unevariable.

Pourvoirunevidéodurésultat:go.eyrolles.com/ti-ch2de4

Sivouspossédezundeuxièmecapteurdedistance,modifiezleprogrammeprécédentafindevousdéplacerselonlesabscissesetutilisezvosdeuxmainspourcoloriertoutl’écran.

Chapitre3

Lejeudebasket

Lebutdecechapitreestdeprogrammerunjeudelancerdeballondebasketquicomptabiliselenombred’essaisnécessairespourmarquerunpanier.Cejeusejoueraseul,maispourraêtreétenduàdeuxjoueurs.

ÉTAPE1 Préparerlesimagesd’arrière-plandedébutetdefindejeuafind’accélérerl’affichagegraphique.

ÉTAPE2 Décrirelesfonctionnalitésdujeuettracerlesdessinsdupanieretdesjauges.

ÉTAPE3 Coderlaboucleprincipaledujeuettracerlatrajectoireduballon.

ÉTAPE1 Préparationdesimagesd’arrière-plan

Onapuconstaterdanslechapitre1quelesdessinsmettentdutempsàs’afficherpoint par point sur l’écran de la calculatrice. Heureusement, tous les élémentsgraphiques de notre jeu n’ont pas besoin d’être créés en temps réel : certainsd’entre eux peuvent être dessinés à l’avance, comme on va le voir. Sinon, àchaque exécution de l’instruction EffDess, il faudrait tout redessiner, enparticulierlesélémentsd’arrière-plan,cequisetraduiraitparuntempsd’attentedésagréablepourlejoueur.

Nousallonsd’aborddessinerl’écrandelancementdujeu,appelésplashscreen.Sonbut estdeprésenter le thèmedu jeuau joueur,maispas seulement…Cetteimagedevrafaire165pixelsdehauteuret265pixelsdelargeur.

Exercice1Avecunoutildedessin,dessinersurordinateurunécrandedémarragepournotrejeudebasket.PuistransférersurlacalculatricelefichierimagedecetécranvialelogicielTI-Connect™CE.NommercefichierImage8.

go.eyrolles.com/ti-ch3ex1

Passons maintenant à l’écriture du programme ou plutôt des deux programmesassociés. Car un splash screeen a un deuxième rôle, celui d’initialiserl’environnement graphique du jeu. Le temps que cette opération se réalise, il

occupel’attentiondujoueuraulieudelelaisserdevantunécrannoir.

Exercice2Dans le programme DINIT ci-dessous, identifier le rôle de chaque ligne decode.

LenomduprogrammecommenceparunDpourindiquerqu’ils’agitd’unprogrammededessin.

Radian

Fonc

FoncNAff

GraphNAff

QuadNAff

ÉtiqNAff

PleinÉcr

CGRect

1→Xmin

265→Xmax

0→Xgrad

1→Ymin

165→Ymax

0→Ygrad

DispGraph

EffDess

ArrPlanNAff

DÉFI1Sionsupprimel’affichagedesaxesdurepèresurlacalculatrice,ilfaudrabienlesfaireréapparaîtrelorsqu’elleserautiliséeencoursdemathématiques!Uneremarquequivautaussipourlesautresvariablesd’environnementgraphique.Heureusement,avantdemodifierunenvironnement,ilestpossibledelesauvegardervial’instructionEnrBDG.Revoyezalorsleprogramme DINITenrappelantl’environnementàlafin(grâceàl’instructionRappelBDG).

LeprogrammeDINITadonceffacétoutlecontenugraphiquedelacalculatriceetconfigurél’environnementpourquel’onpuissedémarreravecunepageblanche.Nousallonsàprésentremplircettepageavecl’écrandelancementdéjàdessiné.

go.eyrolles.com/ti-ch3ex2

ÉcrivonsleprogrammeDSPLASH:

prgmDINIT

ArrPlanAff8

Output(4,4,"LANCEMENT")

CouleurTexte(JAUNE)

Texte(25,125,"APPUYERSURENTRER")

Lenomd’unprogrammenedoitpascomporterplusde8caractères.

L’image de l’écran de démarrage a été importée en 8e position dans lacalculatrice, qui peut stocker en tout 10 images d’arrière-plan. Il est doncimportant de mémoriser la place de l’image que l’on souhaite utiliser dans leprogramme.Pourvérifierlapositiondecetteimage,appuyezsurlatouche .Allez alors dans le menu Pic et arrière-plan et naviguez parmi lesdifférentesimages.

Exercice3DéterminerladifférenceentrelesinstructionsOutputetTexte.

go.eyrolles.com/ti-ch3ex3

Exercice4CoderleprogrammeDFINALpourqu’ilafficheunécranfinaldevictoiresilejoueur a inscrit un panier, en indiquant le nombre d’essais (stocké dans lavariable N) qui auront été nécessaires pourmarquer. L’image de cet écrandevraêtreimportéeen7epositiondanslacalculatrice.

Voiciunexempled’écranfinal,oùlescorecorrespondaunombredecoupsjoués.

Silejoueuramarqué,leprogrammeDFINALdemanderaaujoueurdepresserlatouche ,effaceralesdessinsprésentsà l’écran(trajectoireduballon,panier,etc.)etafficheracenouvelarrière-plandevictoire.Lejeus’arrêteraunefoislatouche presséedenouveau.

Ce travail préliminaire nous a permis d’appréhender quelques fonctionsgraphiques essentielles à la réalisation d’un jeu, même si habituellement cettephasededessinintervientplutôtàlafin.

go.eyrolles.com/ti-ch3ex4

ÉTAPE2 Descriptiondujeuettracédesdessins

Commençonspardécrirelefonctionnementdujeu.

Leballonseratoujourslancéàpartirdumêmeendroitdel’écran,auniveaudela

main du joueur dessiné en train de sauter. Ce sera en fait le panier qui sedéplacerad’unepartiedejeuàl’autre.Ilfaudradoncstockerlescoordonnéesdece panier pour que le programme puisse déterminer si le ballon l’a ou nontraversé.

L’angleetlaforcedutirserontreprésentésrespectivementparunejaugeenquartdecercleetunejaugeverticale.Sionsouhaiteaméliorerlejeu,onpourrafaireévoluerlacouleurdesjaugesduvertaurougeenfonctiondelavaleurdel’angleetdelaforce.

Pourvousaideràcomprendrecequevousallezcoder,voiciquelquescapturesd’écrandujeu:

S’ilyabienquelquechosedontonnemanquepassurlacalculatrice,cesontdestouches!Nousallonsenutiliser8dansnotrejeu.

• Latouche permettradevalideruncertainnombred’écrans.

• Lesflèches et réglerontl’angledetirdulancerduballon.

• Lesflèches et réglerontlaforcedutir.

• La touche permettra d’activer ou de désactiver unmode turbo pour leremplissagedesjauges.

• Latouche serviraàlancerleballon.

• Latouche permettradeforcerlafindujeu.

Commentleprogrammedujeuvadétectersil’unedecestouchesestpresséeparle joueur?Pour la touche , il suffirad’introduire la fonctionPausedans lecode,quibloqueraleprogrammejusqu’àcequecettetouchesoitenfoncée.Pourles7autres,onutiliseraleurcodeetlafonctionGetKey(voirchapitre1).

Exercice5Déterminerlescodesdeces7touches.

go.eyrolles.com/ti-ch3ex5

Exercice6Dessiner à présent sur ordinateur le fond d’écran de votre jeu, sur lequeldevraaussi apparaître le joueur. Ici, nous avons choisi un ciel bleuavecunbasketteurentraindesauter,maislibreàvousdereprésenterunparquetetdesgradinsremplisdesupporters!

Pourl’imagedefond,ilestimpératifderespecterlatailledéjàmentionnéeauparavant(165×265pixels).

Seuls le panier, les jauges et la trajectoire du ballon vont être dessinés par leprogrammeprincipal.

go.eyrolles.com/ti-ch3ex6

Positiondelamain

Pour commencer, il faut repérer la position de la main du joueur à partir delaquelleleballonseralancé.Pourcela,unefoisl’imagedefondchargéedanslacalculatrice,modifieztemporairementleprogrammeDSPLASHenremplaçantlen°defondd’écranàafficherparceluidevotrefonddejeu.Ici,notrefonddejeusetrouveen1reposition.

Onmodifiedoncleprogrammeenconséquence:

Puis exécutez-le : DSPLASH appelle alors le programme DINIT, puis chargel’image de fond de jeu et s’interrompt.À l’aide des flèches de la calculatrice,déplacez-vous jusqu’à lapositionde lamainet relevezsescoordonnées.Enfin,corrigezleprogrammeDSPLASHenyreplaçantlefondd’écraninitial.

Surnotreimage,lamainsepositionneen(54;92).Nousavonschoisidecoder« en dur » ces coordonnées dans le programme plutôt que d’utiliser deuxvariablessupplémentaires.

Pournos tests,nousavonsdessinéunpaniersur le fondde jeudansunpremiertemps.Maiscepanierest à supprimerpuisqu’il seradessinépar leprogrammelui-même.Noustravailleronsdoncmaintenantaveccefondd’écran:

Lepanierdebasketetlesjauges

Exercice7CoderleprogrammeDPANIERquidessinelepanierdebasket.Lapositionducentre du panier (la croix rouge sur l’image) sera initialisée dans leprogrammeprincipal.Sonabscissedevra être stockéedans lavariableL et

son ordonnée dans la variable H. Le dessin du panier sera réalisé à l’aided’appelsrépétésàlafonctionLigne(voirchapitre2).

Ilnousrestemaintenantàdessinerlesjaugesdujeu.

• Laforcedu tirserastockéedans lavariableF.Elle seracompriseentre0et100,etinitialiséeà100.

• L’angledetirserastockédanslavariableR. Ilseracomprisentre0et90,etinitialiséà90.

• Lepasd’incrémentdesjaugesserastockédanslavariableZ.Ilvaudra1ou10selonquelemodeturboestdésactivéounon,etilserainitialiséà1.

go.eyrolles.com/ti-ch3ex7

Exercice8Coder leprogrammeDJAUGEquidessinera la jauge verticale symbolisant laforcedutir.

Le placement de cette jauge dépendra de votre décor. Dans notreprogramme, nous l’avons représentée de la position (10;10)pour son coininférieurgauchejusqu’à laposition(25;110)pour son coin supérieurdroit.

Sa hauteur dépend quant à elle de la variable F. Nous avons choisi decomplétertoutelapartievidedelajaugepardublanc.

CeprogrammeDJAUGEnefaitquedessinerlajaugeenfonctiondelavaleurdeF.IlnegèrepaslasaisiedestouchesnidonclamodificationdeF.C’estlaboucleprincipaledujeuquis’enchargera.

go.eyrolles.com/ti-ch3ex8

Exercice9Codez leprogrammeDANGLEquidessinera la jauge représentant l’angle dutir.

Àvousdechoisirlapositiondecettejaugeenquartdecercle.Ici,lecercleapour centre la position de la main (54;92) et pour rayon 40 pixels. LahauteurdelajaugedépenddelavariableR.Nousavonschoisidecompléterpardublanctoutelapartievidedelajauge.

CeprogrammenefaitquedessinerlajaugeenfonctiondelavaleurdeR. IlnegèrepaslasaisiedestouchesnidonclamodificationdeR.C’estlaboucleprincipaledujeuquis’enchargera.

go.eyrolles.com/ti-ch3ex9

Testintermédiaire

À ce stade du projet, vous avez probablement envie de voir ce que cela peutdonner !Créez leprogrammeTEST en saisissant le code suivant (onexpliqueraplusloincequereprésententlesvariablesG,MetK):

prgmDSPLASH

1→G

100→F

90→R

0→M

0→K

1→Z

0→N

nbrAléatEnt(50,150)→H

245→L

Pause

prgmDBACKGR

oùprgmDBACKGRcontientlui-mêmelesélémentsdedessindujeu,àsavoir:

prgmDINIT

ArrPlanAff1

EffDess

EffÉcran

prgmDJAUGE

prgmDANGLE

prgmDPANIER

Désormais,notre jeus’initialiseetsedessine.Nousallonsmaintenantcoder lesactionsdujoueurencomplétantl’écritureduprogrammeTEST.

ÉTAPE3 Codagedelaboucleprincipaledujeu

Unefoiscettephased’initialisationvalidée,ilfautàprésenttesterenbouclesilejoueurrèglel’angleoulaforcedesontir,réaliseunetentativedetir,ousouhaiteinterrompre la partie. Puis nous devronsmodifier la jauge ou l’angle de tir, oueffectuerletirduballon.

Pour déterminer quelle action graphique doit réaliser la TI-83 Premium CE,introduisonsunevariableG.Nousallonsécrireunebouclequis’arrêtelorsqueGvaut4etquistockedansunevariableKlecodedelatouchepresséeparlejoueur.

Exercice10QuelleestladifférenceentreREPEATetWHILE?

Si G vaut 1, sa valeur initiale, le joueur paramètre son tir, ce qui consiste àincrémenter ou décrémenter les valeurs de F ou R en fonction des touchesutilisées.

Deplus, leprogrammedoitsavoirs’ildoitactualiser l’affichagedela jaugedeforceouceluidelajauged’angle.Pourcela,onvaintroduirelavariableM,quivaudra1 si c’est la jaugede forcequidoit êtremodifiée, et2 si c’est la jauged’angle.

go.eyrolles.com/ti-ch3ex10

Exercice11Compléterlespointillésducodeci-dessousdanslecasoùlejoueurappuiesurlatouche .Attention,ilnefautpasoublierquelavariableFnedoitpasdépasser100,doncilfautprévoiruneinstructionpourentenircompte.

IfK=……………………

Then

IfG=1

Then

……………………

……………………

……………………

……………………

………………→M

End

End

go.eyrolles.com/ti-ch3ex11

Exercice12Ens’inspirantduprogrammeprécédent,écrireà lasuite laportiondecodecorrespondantaucasoù le joueurpresse la touche .Attention,nepasoublierqueFnepeutpasdescendreendessousde0!

go.eyrolles.com/ti-ch3ex12

Exercice13Demême,écrireà lasuite laportiondecodetraduisant lecasoù le joueurappuiesurlatouche ,puislecasoùilpresse .Attention,Rnepeutpas

dépasser90niêtreinférieurà0!

Maintenant,siM=1,onlanceleprogrammequiactualiselajaugedeforce:

IfM=1

Then

prgmDJAUGE

0→M

End

EtsiM=2,onactualisel’affichagedelajauged’angle:

IfM=2

Then

prgmDANGLE

0→M

End

go.eyrolles.com/ti-ch3ex13

Exercice14Coderl’actiondelatouche quiactiveoudésactivelemodeturbo.

Lorsquelejoueurafinisonparamétragedetir,ilappuiesurlatouche .LavariableGdoitalorsprendrelavaleur3.

Pourquoi3etpas2?Parcequ’onseréservecettevaleur2danslecasd’unedéclinaisondujeupourdeuxjoueurs.L’étatG=2permettraitalors

degérerl’alternanceentrelesjoueurs.

go.eyrolles.com/ti-ch3ex14

Exercice15Compléterlespointillésducodeci-dessousdanslecasoùlejoueurpresselatouche :

IfK=………………………

Then

………………………→G

End

go.eyrolles.com/ti-ch3ex15

SiG=3, il fautalorsdessiner la trajectoireduballon.Onvapourcelaécrire leprogrammeDTRAJECT. Le calcul de cette trajectoire et son affichage sont assezdifficiles…

Nousallonsutilisercequ’onappelleune« représentationparamétrique»de latrajectoire à l’aide de la fonction Pt-Change(X,Y,Couleur). Cette fonctionallume le pixel de coordonnées (X;Y) avec le paramètre Couleur. Deuxpossibilités:soitlepixelétait«éteint»etdanscecaslaprocédureestréalisée;soit il était déjà allumé et dans ce cas la fonction éteint le pixel, laissantapparaîtreceluidel’imagedefond.

Cettefonctionestdoncintéressantecarellen’interagitqu’avecl’écrangraphiqueetnetouchepasàl’imagedefond.Ainsi,lecieletsesnuagesresterontintacts,àladifférencedelajauged’anglesielleesttouchéeparledessindelatrajectoiredutir.

Deplus,enappelantdeuxfoisdesuiteleprogrammeDTRAJECT,onpeuteffacerlatrajectoiredutirpourpréparerletirsuivant.

Attention,l’équationdelatrajectoiredépenddelapositiondedépartduballon.Silamainn’estpassituéecommeiciauxcoordonnées(54;92),il

faudramodifiercetteéquationdansleprogrammeDTRAJECT.

Pourvousaider,vouspouveztéléchargerleprogrammeDTRAJECT:

go.eyrolles.com/ti-ch3DT

Vous pouvez aussi consulter le lienhttps://education.ti.com/fr/activities/france/algorithme/programmation-

graphique-en-couleur

Lejeuestbientôtterminé!

SilavariableGvaut3,lejoueurafinisonparamétragedetiretaappuyésurlatouche15 (touche ).Dans ce cas, le programme incrémente le nombre de

coupsjoués,stockédanslavariableN.IlappelleensuiteDTRAJECTpourdessinerlatrajectoiredutir.Siletirestréussi,DTRAJECTpasselavaleurdeGà4.Siletirest raté,G vaut toujours 3 et le programme appelle de nouveauDTRAJECT poureffacerlatrajectoiredutir.Deplus,siGestdifférentde4,onrepasseenmode«paramétragedetir»oùGvaut1.

Exercice16Compléter les pointillés du code ci-dessous pour réaliser les actionsprécédentes.

IfG=3

Then

………………………→N

prgmDTRAJECT

IfG=3

Then

prgmDTRAJECT

End

IfG≠……………………

Then

1→G

End

End

End

prgmDFINAL

Pourrappel,Nreprésentelenombredelancers.

go.eyrolles.com/ti-ch3ex16

Le jeu doit s’arrêter lorsque le joueur appuie sur la touche oumarque unpanier.IlfautalorsaffecteràGlavaleur4.

Exercice17

Compléterlespointillésducodeci-dessouscorrespondantaucasoùlatoucheestpressée:

IfK=………………………

Then

…………………→G

End

Lecasoùlejoueurmarqueunpanierestdétectélorsdutracédelatrajectoire,quiestcodédansleprogrammeDTRAJECT.

go.eyrolles.com/ti-ch3ex17

Laprogrammationdujeuestfinie:touslesélémentsquicomposentlaboucledejeu principal ont été traités. Pour vous aider, ils ont été réunis dans un seulprogrammeDSAISIEquevouspouveztélécharger.

go.eyrolles.com/ti-ch3DS

Ainsi, en partant de cemoteur de jeu, vous pourrez essayer de relever le défisuivant…

DÉFI2Etsivousamélioriezencoreleprogrammedecejeu?Enaffichantuntableaudesscores,enlimitantlenombredelancers,oumêmeenadaptantlejeupourdeuxjoueurs…

Chapitre4

L’ascenseur

Lebutdecechapitreestdefabriquerunascenseurenrepoussantleslimitesd’interactionetdepilotagedelacalculatriceavecleTI-Innovator™Hub.

ÉTAPE1 Apprendreàutiliseruneplatined’expérimentationetyconnecterdesmicrorupteurs.

ÉTAPE2 Découvrircommentfairefonctionnerunrelaisetunmoteursurlaplatine.

ÉTAPE3 Fabriquerlacaged’ascenseur.

ÉTAPE4 Finaliserlesbranchementsdumontageetécrirelesprogrammesassociés.

ÉTAPE5 Gérerladescentedelacabined’ascenseur.

Matérielnécessaireauprojet

Pour réaliser le projet de ce chapitre, vous aurez besoin de vous procurer lescomposantsetéquipementssuivants:

• deuxmicrorupteurs;

• unrelaisdelamarqueGrovecompatibleavecleTI-Innovator™Hub;

• unealimentationexterne5VUSB;

• unealimentation3Vconnectablesurlaplatined’expérimentation;

• unmoteuràcourantcontinucompatible3V;

• uneplatined’expérimentation;

• descâblespourplatined’expérimentation.

UnepartiedecematérielfiguredanslekitTI-Innovator™BreadboardPack.

Vousaurezaussibesoindefourniturespourfabriquerunecaged’ascenseur,saufsivousl’achetezenkit.

ÉTAPE1 Connexiondesmicrorupteurs

Toutdéveloppeurquisouhaiteapprendreàpilotermoteursetcapteursseraamenétôtoutardàutiliseruneplatinedeprototypage,appeléeencorebreadboard(voirpréambuledulivre).Leprincipeenestsimple:onvientdirectementenfichersescomposants sur la plaque selon le schéma électronique qu’on a imaginé et quel’onsouhaitevalider.

Surlaplatineci-après,onrappellequelespointscontenussurchaqueligne+sontinterconnectés, de même que ceux d’une ligne -. En revanche, ces lignes sontisolées les unes des autres, ce qui permet notamment d’obtenir deux niveauxd’alimentation (5 V et 12 V, par exemple) pour certains montages. Quant auxpointsencolonnes, ilssontreliéslesunsparautresparcolonnesdecinq.C’estsur ce type de platine que nous allons réaliser les différents montages de cechapitre.

Dansunpremier temps,pourdélivrerune tensionauxcomposantsélectroniquesutiliséssurlaplatined’expérimentation,nousutiliseronslesportsmarqués3.3Vet5VduHub.Parlasuiteetparsécurité,nousauronsrecoursàunealimentationsecondairepourlemoteurdel’ascenseurdenotreprojet.

Sionprévoyaituneseulealimentationpourl’ensembleduprojet,onrisqueraitdesollicitertropd’ampérageetdegrillerleHub.Enisolantl’alimentationdumoteurdansuncircuitdédié,onréduitquasimentce

risqueànéant.

Pournousouvrirsurl’extérieuràl’aidedesportsbreadboard(BB)duHub,nousallonsreliercedernieràuncomposantélectroniqueappelémicrorupteur.Onliraen boucle l’état (ouvert ou fermé) de ce composant en l’affichant sur lacalculatrice.

Un microrupteur possède trois broches. S’il n’est pas enclenché, les brochesCOM et NF sont reliées entre elles. Si un contact est établi, l’interrupteur estferméetcesontalorslesbrochesNOetCOMquisontinterconnectées.C’estcedernierévénementquenousallonsdétecter.

Attention!PourqueleTI-Innovator™Hubpuissedétectercetévénement,ilfautque l’enclenchement dumicrorupteur délivre une tension sur l’un des ports duHub, par exemple le port BB1. Par conséquent, il ne suffit pas de relierdirectement lesbrochesNOetCOMauxbrochesBB1etMassepuisqueaucunetensionneseraitfournie.OndoitauparavantrécupérerlatensiondesortieduHubde3,3Vsurlaplatine,puislaréinjecterdansleHubvialemicrorupteur.

Onréalisedonc lemontageci-après,où la fermeturede l’interrupteurpermettrabiendedélivrer3,3VsurlabrocheBB1duHub.

Écrivonsmaintenantleprogrammequivanouspermettrededétecterlafermeturedumicrorupteur.Leprincipeesttoujourslemême:oninitialised’abordleHubendécrivant lescomposantsélectroniquesconnectésàsesdifférentsports(danscecas,leportBB1uniquement),puisondéveloppelaboucleprincipale.Ici,nousallonsnous servird’une entréenumériquequi renvoie soit 1 soit 0 selonqu’unévénementseproduitoupas.

Saisissezleprogrammesuivant:

Send(“CONNECTDIGITAL.IN1TOBB1”)

0→T

WhileT≠1

Send(“READDIGITAL.IN1”)

Get(T)

DispT

End

Exercice1Déterminer ce qu’il se passe lorsque le contact sur le microrupteur estréalisé.

go.eyrolles.com/ti-ch4ex1

Exercice2Connecterunsecondmicrorupteuretécrireleprogrammequipermettradevisualiserenpermanencel’étatdesdeuxmicrorupteurs.

go.eyrolles.com/ti-ch4ex2

ÉTAPE2 Connexiondurelaisetdumoteur

Nousvoicidoncenmesurededétecterdesévénementscommelafermetured’uninterrupteur. Nous allons maintenant découvrir comment utiliser un relais pourpiloterunpetitmoteuràcourantcontinu.Cedernierseraalimentéparunebatterieexterne,commedéjàsignalé.

Outrepourdesraisonsdesécurité,cetajoutd’alimentationsecondaireestutilelorsqu’onsouhaiteparexemplealimenteruneélectrovanneen12

VoutoutautredispositifnécessitantunetensiondifférentedecelledisponiblesurleHub.

Un relais est un interrupteur mécanique dont l’ouverture ou la fermeture estpilotée électroniquement. Dans ce projet, nous allons utiliser un relais de lagammeGrove.Celui-cipossèdedeuxcontactsquisontreliésensemblelorsqu’ilestactivé,ainsiqu’unedioderougeservantdetémoinlumineux.

Repartons du montage de l’étape 1, enrichi donc d’un second microrupteur, etbranchons le relais sur le port OUT 1 du TI-Innovator™ Hub. Il suffit alorsd’expliquerauHubqu’undispositifde typerelaisestbranchésurceport.Pouractiverlerelais,ilfaudraenvoyerlacommandeSend(«SETRELAY1TO1»),etpour le désactiver la commande Send(«SET RELAY 1 TO 0»), la diodes’allumantets’éteignantconjointement.

Ilestimportantdesignalerquepourutiliserlerelais,nousauronsbesoind’uneautrealimentationcomplémentairede5V.OnlabrancheradirectementsurleHubdansleconnecteurPWRprévuàceteffet.

Complétonsalorsleprogrammedel’exercice2pourquelerelaisresteactivétantque lemicrorupteur 1 (celui connecté sur le portBB1) n’est pas enclenché. Sicelui-ciestenclenché,alorsondésactivelerelais.

Saisissezainsileprogrammesuivantsurvotrecalculatriceettestez-le:

Send(“CONNECTRELAY1TOOUT1”)

Send(“CONNECTDIGITAL.IN1TOBB1”)

Send(“CONNECTDIGITAL.IN2TOBB2”)

Send(“SETRELAY1TO1”)

0→T

WhileT≠1

Send(“READDIGITAL.IN1”)

Get(T)

DispT

End

Send(«SETRELAY1TO0»)

Pourl’instant,lesecondmicrorupteurn’apasd’utilité.

Exercice3Modifierleprogrammeprécédentpourquel’enclenchementdumicrorupteur1activelerelaisetquel’enclenchementdumicrorupteur2ledésactive.

go.eyrolles.com/ti-ch4ex3

Maintenant que nous savons piloter le relais, branchons le moteur à courantcontinu et son alimentation externe. Dans notre exemple, celui-ci fonctionne àl’aided’unetensionde3V,soitdeuxpilesd’1,5V.

Attention!Nepasconfondrelabatterieexternedumoteuravecl’alimentationcomplémentairebranchéesurleportPWRduHub,quielle

sertàfairefonctionnerlerelais.

Sur le schéma ci-après, nous n’avons pas replacé les deux microrupteurs parsoucidesimplification.

Exercice4Inverser les broches de l’alimentation externe du moteur en branchant labroche+surlalignebleuedelaplatineetlabroche-surlalignerouge.Quese passe-t-il lorsque le programme est exécuté ? Dans quel sens tournedésormaislemoteur?

go.eyrolles.com/ti-ch4ex4

ÉTAPE3 Constructiondelacaged’ascenseur

Nous allons à présent fabriquer la cage de notre ascenseur. Pour cela, vouspouvezutiliserunemaquettepédagogiqueenkitcommecellecommercialiséeparA4 Technologie, sur laquelle vous fixerez vos propres capteurs et actionneurs.Autresolution,vouspouvezchoisirdecréervous-mêmevotremodèle,enbalsa,encarton,ouàl’aidedejeuxdeconstructionenplastiqueouenmétal.

Surleprincipe,votreascenseurdevrautiliserunmoteurautourduquels’enrouleun fil.Une extrémitédu fil sera reliée àun contrepoids, tandisque l’autre seraraccordée à la cabine de l’ascenseur. La masse du contrepoids devra êtresensiblementégaleàcelledelacabine.

Nousutiliseronsdeuxmicrorupteurspourdétecterledébutetlafindecoursedelacabine,quidesserviradeuxétages.Pourvousaider,voicici-aprèsunschémadelacaged’ascenseur.

Ici,nousavonsoptépour lamaquettepédagogiqued’A4Technologie,quiaétélégèrement adaptée aux besoins du projet. Sur cette image, on peut voirl’ensembledesélémentsquicomposentleprojet:cabine,contrepoidsenarrière-plan,lesdeuxmicrorupteursetlemoteur.

Cette vue de dos de la maquette permet de mieux comprendre le système deguidagedelacabineetducontrepoids:

Onnoteralaformeastucieusedel’ergotpositionnésurlacabined’ascenseur.Ilpermetd’enclencherendouceuretefficacementlesmicrorupteursdedébut(Rdc)etdefin(Étage1)decourse.

Onvoiticicommentnousavonssoudédirectementlesfilssurlemoteurenvuedelerelieraurelais:

Exercice5Fabriquerlamaquettedelacaged’ascenseur.

ÉTAPE4 Branchementducircuitetécritureducode

Il reste maintenant à connecter les différents éléments du projet et à relierl’ensembleàlacalculatrice.

Commedécrità l’étape1, ilfautbrancherlemicrorupteur1sur leportBB1du

TI-Innovator™Hub,etlemicrorupteur2surleportBB2.LerelaisserareliéauportOUT1duHub,tandisquelemoteurdel’ascenseurdevraêtreconnectéselonleschémadebranchementde l’étape2.Onplacera lacabineenpositionbasse.Bien sûr, on n’oubliera pas de brancher le Hub à la TI-83 CE Premium etl’alimentationexternesurleportPWR.

Nous allonsmaintenant créer un programme qui activera le relais une fois quel’utilisateurauraappuyésurlatouche (code92)delacalculatrice.Lacabined’ascenseur entamera lors sa montée et s’arrêtera automatiquement lorsque lemicrorupteur2auraétéenclenchéparlecontactaveclacabine.Unepressiondelatouche (code105)arrêteraleprogramme.

En prévision de l’étape 5, nous vous proposons de créer en réalité deuxprogrammes :unprogrammeprincipalnomméPRINCIP gérant lespressions surlestouchesdelacalculatriceetunsous-programmeMONTEEgérantlamontéedel’ascenseur.

Exercice6

CompléterlespointillésduprogrammePRINCIPpourqu’ilréaliselesactionsdécritesprécédemment

Send(“CONNECT……………TOOUT1”)

Send(“CONNECT……………TOBB1”)

Send(“CONNECT……………TOBB2”)

0→K

Disp«APPUYERSUR1»

Disp«ENTRERPOURSORTIR»

WhileK≠…………

getKey→K

IfK=………………

…………………………

End

go.eyrolles.com/ti-ch4ex6

Exercice7Compléter lespointillésduprogrammeMONTEEpourqu’il réalise les actionsdécritesprécédemment.

0→T

Send(“READDIGITAL.IN2”)

Get(T)

IfT=0

Then

Send(“SETRELAY1TO…………”)

Disp“MONTEE”

WhileT≠1

Send(“READDIGITAL.IN2”)

Get(T)

End

Send(“SETRELAY1TO…………”)

Disp“ETAGE1”

End

Iln’estpasnécessairedefaireappelàlafonctionCONNECTpuisqu’elleadéjàétéappeléeparleprogrammePRINCIP.

go.eyrolles.com/ti-ch4ex7

Exercice8Expliquer pourquoi le programme MONTEE commence par tester l’état dumicrorupteur2.

go.eyrolles.com/ti-ch4ex8

ÉTAPE5 Gestiondeladescente

À ce stade du projet, vous disposez donc d’une cage d’ascenseur capable departirdurez-de-chausséepourarriveraupremierétage.Nousvousproposonsàprésentdecompléteretmodifierjudicieusementlesprogrammesprécédentspourréaliserunascenseurgérantlamontéeetladescentedelacabine.

Comme vous vous doutez, vous devrez créer un deuxième sous-programmenomméDESCENTE.Ilfaudraégalementinclurel’appeldecesous-programmedansleprogrammeprincipal.

DÉFI1Ledéfisesituedanslagestiondel’alimentationdumoteur.Plusprécisément,ilvousfaudratrouveruneméthodepourinverserélectroniquementlesensderotationdumoteur.Denombreusessolutionsexistent.Nousenavonsretenuune.Saurez-vousmettrelavôtreenœuvre?

Vous voici arrivé à la fin de ce livre. Grâce aux techniques qui vous ont été

présentées, vous êtesmaintenant enmesure de programmer vos propres jeux etconstruirevospropresrobots.Laissezvotrecréativités’exprimer!

Liensutiles

• https://education.ti.com/fr/france/home

Voustrouverezsurcesite toutes les informationspourmettreà jourvotreTI-83PremiumCE,télécharger le logicielTIConnect™CEetaccéderàdes tutorielssurlaprogrammationdevotrecalculatrice.

• https://education.ti.com/fr/purchase/purchase_dealers

Si vous souhaitez vous procurer une calculatrice TI-83 PremiumCE ou un TI-Innovator™Hub,cettepagevousindiqueralalistedesprincipauxfournisseurs.

• http://www.lestutosmaths.fr/home

Rendez-voussurcesitepourmaîtriserencoredavantagevotrecalculatriceTI-83PremiumCE.Ilcontientbeaucoupdevidéosetdetutoriels.

• https://education.ti.com/fr/customer-support

EncasdeproblèmeavecvotreTI-83PremiumCEouvotreTI-Innovator™Hub,consultezcesite.

PoursuivretouteslesnouveautésnumériquesduGroupeEyrolles,retrouvez-noussurTwitteretFacebook

@ebookEyrolles

EbooksEyrolles

Etretrouveztouteslesnouveautéspapiersur

@Eyrolles

Eyrolles

Recommended