{"id":2879,"date":"2020-09-02T22:13:13","date_gmt":"2020-09-02T20:13:13","guid":{"rendered":"https:\/\/noscollections.ddns.net\/carrerago\/?p=2879"},"modified":"2020-09-02T22:13:13","modified_gmt":"2020-09-02T20:13:13","slug":"controler-sa-voiture-go-par-ordinateur","status":"publish","type":"post","link":"https:\/\/www.carrera-fun.com\/?p=2879","title":{"rendered":"Contr\u00f4ler sa voiture GO par ordinateur"},"content":{"rendered":"\n<p>Pour faire des tests concernant les performances des voitures, j&rsquo;ai cherch\u00e9 le moyen de contr\u00f4ler une voiture par ordinateur. Apr\u00e8s un premier montage qui s&rsquo;est mal termin\u00e9 (le petit ordinateur n&rsquo;a pas surv\u00e9cu, que ses transistors reposent en paix). J&rsquo;ai trouv\u00e9 le solution gr\u00e2ce \u00e0 un autre fan de circuit routier, PiSlot qui propose tout cela sur son site <a rel=\"noreferrer noopener\" href=\"http:\/\/pislot.net\" target=\"_blank\">http:\/\/pislot.net<\/a> . L&rsquo;avantage de la solution propos\u00e9e par Pislot est que la partie \u00e9lectrique du circuit est totalement isol\u00e9e de la partie ordinateur.<\/p>\n\n\n\n<p>Notre objectif est donc de contr\u00f4ler la vitesse de la voiture \u00e0 partir de l&rsquo;ordinateur. Nous contr\u00f4lerons la voiture avec le d\u00e9placement d&rsquo;un curseur \u00e0 l&rsquo;\u00e9cran.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"564\" src=\"https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/pwm_03.png\" alt=\"\" class=\"wp-image-2886\" srcset=\"https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/pwm_03.png 1000w, https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/pwm_03-300x169.png 300w, https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/pwm_03-768x433.png 768w, https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/pwm_03-600x338.png 600w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>Voyons comment cela fonctionne pour faire varier la vitesse. On utilise la fonction PWM du Raspberry. Le principe est de faire un signal carr\u00e9, avec 0V au niveau bas et 12V au niveau haut. Il suffit de faire varier le rapport niveau haut, niveau bas de 0% \u00e0 100% d&rsquo;un temps donn\u00e9. On d\u00e9finit le nombre de variations en hertz. Ainsi pour 50Hz, on aura 50 fois niveau haut et niveau bas. Le nombre de 0 \u00e0 100 envoy\u00e9 comme param\u00e8tre PWM correspond donc \u00e0 la puissance moteur.<\/p>\n\n\n\n<p><strong>L&rsquo;interface :<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"361\" height=\"203\" src=\"https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/ctrl_speed_01.png\" alt=\"\" class=\"wp-image-2884\" srcset=\"https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/ctrl_speed_01.png 361w, https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/ctrl_speed_01-300x169.png 300w\" sizes=\"auto, (max-width: 361px) 100vw, 361px\" \/><\/figure>\n\n\n\n<p>Note : pour \u00e9viter les sorties de route lors des tests, la vitesse maximum a \u00e9t\u00e9 limit\u00e9 \u00e0 40%.<\/p>\n\n\n\n<p><strong>Le mat\u00e9riel :<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Rapberry Pi 3B+ (ou Raspberry Pi Zero WH)<\/li><li>Nappe et plaque d\u2019exp\u00e9rimentations<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>4N33<\/li><li>TIP122 TO-220<\/li><li>R\u00e9sistance 220 ohms<\/li><li>R\u00e9sistance 10k ohms<\/li><li>Diode 1N4007<\/li><li>Alimentation 12V<\/li><\/ul>\n\n\n\n<p><strong>Le Sch\u00e9ma :<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"659\" height=\"612\" src=\"https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/pwm_01.png\" alt=\"\" class=\"wp-image-2885\" srcset=\"https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/pwm_01.png 659w, https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/pwm_01-300x279.png 300w, https:\/\/www.carrera-fun.com\/wp-content\/uploads\/2020\/08\/pwm_01-600x557.png 600w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><figcaption>Sh\u00e9ma : pislot.net<\/figcaption><\/figure>\n\n\n\n<p><strong>Scripte Python 3<\/strong> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import RPi.GPIO as GPIO\nfrom math import *\nfrom tkinter import *\nfrom tkinter.messagebox import *\nfrom tkinter import ttk\nimport tkinter as tk\n#import bme280\n\nGPIO.setwarnings(False)\nGPIO.setmode(GPIO.BOARD)\npiste_1_pin_pwm = 37  # PIN 37\n\nGPIO.setup(piste_1_pin_pwm, GPIO.OUT)  # pin configur\u00e9e en sortie\npwm1 = GPIO.PWM(piste_1_pin_pwm, 50)  # pwm \u00e0 une fr\u00e9quence de 50 Hz\nrapport = 0       # rapport cyclique initial de 0%\npwm1.start(rapport) \n\ndef change_power(f):\n    #y=int(echelle.get())\n    y=int(f)\n    pwm1.ChangeDutyCycle(y)\n    print (f)\n\n## Interface Graphique\n## -------------------\nfenetre = Tk()\n\nfenetre.minsize(width=400, height=200)\nfenetre.maxsize(width=400, height=200)\nfenetre.wm_title(\"Slot Python Control Speed - V01 \")\n\np = PanedWindow(fenetre, orient=HORIZONTAL)\np.pack(side=TOP, expand=Y, fill=BOTH, pady=2, padx=2)\nFrame1 = Frame(p, borderwidth=2, relief=GROOVE,width=300)\nFrame1.pack(side=LEFT, padx=2, pady=2)\nFrame_tortue = Frame(p, borderwidth=2, relief=GROOVE,width=650)\nFrame_tortue.pack(side=LEFT, padx=2, pady=2)\n\np.add(Frame1)\np.pack()\n\nnb = ttk.Notebook(Frame1)\nonglet1 = ttk.Frame(nb)\nnb.add(onglet1, text='Commandes')\nnb.pack(expand=1, fill=\"both\")\nlignes_droites = LabelFrame(onglet1, text=\"Controle\", padx=2, pady=2,height=30)\nlignes_droites.pack(fill=\"both\", expand=\"yes\")\npa = PanedWindow(lignes_droites, orient=HORIZONTAL)\npa.pack(side=TOP, expand=Y, fill=BOTH, pady=1, padx=1)\n\nechelle=Scale(onglet1, orient='horizontal', from_=0, to=40,\n      resolution=1, tickinterval=20, length=350,\n      label='Voiture 1', command=change_power)\npa.add(echelle)\nfenetre.mainloop()<\/code><\/pre>\n\n\n\n<p>Le r\u00e9sultat est identique \u00e0 la vid\u00e9o suivante, la diff\u00e9rence \u00e9tant simplement que le curseur est sur l&rsquo;\u00e9cran du Raspberry sur un programme Python, alors que dans la vid\u00e9o, c&rsquo;est une page Internet.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Piste Carrera GO pilot\u00e9 par une page web\" width=\"1110\" height=\"624\" src=\"https:\/\/www.youtube.com\/embed\/9jBSYeiE10Q?list=PL-Z-OdqEAzKf6E9WYQruGF_pEa0S1GIb1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Voil\u00e0 nous contr\u00f4lons la vitesse de la voiture par l&rsquo;interm\u00e9diaire d&rsquo;un ordinateur, on peut maintenant imaginer beaucoup d\u00e9riv\u00e9s.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour faire des tests concernant les performances des voitures, j&rsquo;ai cherch\u00e9 le moyen de contr\u00f4ler une voiture par ordinateur. Apr\u00e8s un premier montage qui s&rsquo;est mal termin\u00e9 (le petit ordinateur&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"categories":[18,35,46,55],"tags":[],"class_list":["post-2879","post","type-post","status-publish","format-standard","hentry","category-articles","category-piste","category-tag_go","category-theme_alimentation"],"_links":{"self":[{"href":"https:\/\/www.carrera-fun.com\/index.php?rest_route=\/wp\/v2\/posts\/2879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.carrera-fun.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.carrera-fun.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.carrera-fun.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.carrera-fun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2879"}],"version-history":[{"count":0,"href":"https:\/\/www.carrera-fun.com\/index.php?rest_route=\/wp\/v2\/posts\/2879\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.carrera-fun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.carrera-fun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.carrera-fun.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}