117

Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents
Page 2: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 3: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 4: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

Jean-BaptisteCivetBorisHanuš

AlgorithmiqueetprogrammationaveclaTI-83PremiumCE

Page 5: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

É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

Page 6: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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!

Page 7: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 8: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

É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

Page 9: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

Chapitre4

L’ascenseur

Matérielnécessaireauprojet

ÉTAPE1 Connexiondesmicrorupteurs

ÉTAPE2 Connexiondurelaisetdumoteur

ÉTAPE3 Constructiondelacaged’ascenseur

ÉTAPE4 Branchementducircuitetécritureducode

ÉTAPE5 Gestiondeladescente

Annexe

Liensutiles

Page 10: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

Préambule

ProgrammationaveclaTI-83PremiumCEetleTI-Innovator™Hub

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

Page 11: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

É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.

Page 12: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 13: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 14: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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).

Page 15: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 16: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents
Page 17: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 18: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 19: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 20: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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:

Page 21: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 22: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 23: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 24: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

CréezunprogrammeLIGHTetsaisissezleslignesdecodesuivantesennaviguantdanslesmenusSend(«SETetSettingsdel’ongletHUB:

Send(“SETLIGHTON”)

Wait1

Send(“SETLIGHTOFF”)

Wait1

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

dansl’ongletHUB,accessibleparlatouche .

Page 25: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 26: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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:

Page 27: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 28: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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).

Page 29: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 30: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 31: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

É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 ,

Page 32: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

, et .

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

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

go.eyrolles.com/ti-ch1ex1

Exercice2Surcettecalculatrice,inscrirelecodedechacunedestouches.

Page 33: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

go.eyrolles.com/ti-ch1ex2

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

Page 34: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 35: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 36: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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 .

Page 37: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Onaccèdeauxnomsdescouleursdisponiblesvia ,ongletCOULEUR.

Page 38: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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:

Page 39: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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!).

Page 40: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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:

Page 41: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 42: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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 ,

Page 43: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 44: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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:

Page 45: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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)

Page 46: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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?

Page 47: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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:

Page 48: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

Exercice15PoursuivezlecodagedeslignesL2,L3etL4.

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

go.eyrolles.com/ti-ch1ex15

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

Page 49: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 50: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.………….

Page 51: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

• 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

Page 52: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

Exercice17Écrirelecodepourlestroisautreslistesafind’affichertouslesmurs.

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

go.eyrolles.com/ti-ch1ex17

Page 53: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 54: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

go.eyrolles.com/ti-ch1ex18

Exercice19DéterminerlavaleurdeUetdeVdanslesquatrecasci-après:

Page 55: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 56: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 57: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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")

Page 58: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 59: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 60: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

É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, .

Page 61: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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:

Page 62: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

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

Exercice1Reproduirelerectangleci-après,delargeur10pixelsetdehauteur45pixels.

Page 63: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

go.eyrolles.com/ti-ch2ex1

Page 64: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 65: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 66: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 67: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 68: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

Unefoiscetteinstructionsélectionnée,onchoisitSOUND.

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

Page 69: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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:

Page 70: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 71: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 72: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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).

Page 73: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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).

Page 74: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 75: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 76: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

é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:

Page 77: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 78: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 79: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 80: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

É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

Page 81: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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é.

Page 82: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 83: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 84: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 85: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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:

Page 86: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 87: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 88: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 89: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 90: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 91: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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):

Page 92: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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?

Page 93: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 94: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 95: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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…

Page 96: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 97: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 98: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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…

Page 99: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 100: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 101: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

É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.

Page 102: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 103: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

É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é.

Page 104: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 105: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 106: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 107: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 108: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 109: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 110: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 111: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 112: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 113: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 114: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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é

Page 115: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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

Page 116: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

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.

Page 117: Algorithmique et programmation avec la TI-83 Premium CE: …livre.fun/LIVREF/F6/F006053.pdf · 2018-06-07 · Résumé Un apprentissage ludique de la programmation Grâce à différents

PoursuivretouteslesnouveautésnumériquesduGroupeEyrolles,retrouvez-noussurTwitteretFacebook

@ebookEyrolles

EbooksEyrolles

Etretrouveztouteslesnouveautéspapiersur

@Eyrolles

Eyrolles