Programme avec une interface graphique qu contrôle l'avant bras droit du projet InMoov sur la carte STM32F746G-DISCO pour le projet d’interfaçage de la Licence Pro MECSE.
main.cpp@0:24647f68ab29, 2019-06-04 (annotated)
- Committer:
- Lp
- Date:
- Tue Jun 04 12:47:25 2019 +0000
- Revision:
- 0:24647f68ab29
Interface inMoov Avant bras droit avec carte STM32F746G
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Lp | 0:24647f68ab29 | 1 | #include "mbed.h" |
Lp | 0:24647f68ab29 | 2 | #include "F746_GUI.hpp" |
Lp | 0:24647f68ab29 | 3 | #include "TS_DISCO_F746NG.h" |
Lp | 0:24647f68ab29 | 4 | #include "LCD_DISCO_F746NG.h" |
Lp | 0:24647f68ab29 | 5 | |
Lp | 0:24647f68ab29 | 6 | LCD_DISCO_F746NG lcd; |
Lp | 0:24647f68ab29 | 7 | TS_DISCO_F746NG ts; |
Lp | 0:24647f68ab29 | 8 | |
Lp | 0:24647f68ab29 | 9 | PwmOut pouce(A5); |
Lp | 0:24647f68ab29 | 10 | PwmOut index(A4); |
Lp | 0:24647f68ab29 | 11 | PwmOut majeur(A3); |
Lp | 0:24647f68ab29 | 12 | PwmOut annulaire(A2); |
Lp | 0:24647f68ab29 | 13 | PwmOut auriculaire(A0); |
Lp | 0:24647f68ab29 | 14 | PwmOut poignet(D3); |
Lp | 0:24647f68ab29 | 15 | float us; |
Lp | 0:24647f68ab29 | 16 | |
Lp | 0:24647f68ab29 | 17 | int main() { |
Lp | 0:24647f68ab29 | 18 | |
Lp | 0:24647f68ab29 | 19 | SeekBar auriculairebar(30,40,150,0,180,90,SeekBar::Vertical,0xFFB0B0FF,30,5); |
Lp | 0:24647f68ab29 | 20 | SeekBar annulairebar(70,40,150,0,180,90,SeekBar::Vertical,0xFFB0B0FF,30,5); |
Lp | 0:24647f68ab29 | 21 | SeekBar majeurbar(110,40,150,0,180,90,SeekBar::Vertical,0xFFB0B0FF,30,5); |
Lp | 0:24647f68ab29 | 22 | SeekBar indexbar(150,40,150,0,180,90,SeekBar::Vertical,0xFFB0B0FF,30,5); |
Lp | 0:24647f68ab29 | 23 | SeekBar poucebar(190,40,150,0,180,90,SeekBar::Vertical,0xFFB0B0FF,30,5); |
Lp | 0:24647f68ab29 | 24 | SeekBar poignetbar(40,230,150,0,180,90,SeekBar::Holizontal,0xFFB0B0FF,30,5); |
Lp | 0:24647f68ab29 | 25 | Button reset(270,30,80,40,"Reset",Font16,LCD_COLOR_WHITE,LCD_COLOR_BLUE); |
Lp | 0:24647f68ab29 | 26 | Button poing(380,30,80,40,"Poing",Font16,LCD_COLOR_WHITE,LCD_COLOR_BLUE); |
Lp | 0:24647f68ab29 | 27 | Button doigt(270,100,80,40,"Cencurer",Font12,LCD_COLOR_WHITE,LCD_COLOR_BLUE); |
Lp | 0:24647f68ab29 | 28 | Button metal(380,100,80,40,"Metal",Font16,LCD_COLOR_WHITE,LCD_COLOR_BLUE); |
Lp | 0:24647f68ab29 | 29 | Button pointe(270,170,80,40,"Pointe",Font16,LCD_COLOR_WHITE,LCD_COLOR_BLUE); |
Lp | 0:24647f68ab29 | 30 | Button ok(380,170,80,40,"OK",Font16,LCD_COLOR_WHITE,LCD_COLOR_BLUE); |
Lp | 0:24647f68ab29 | 31 | |
Lp | 0:24647f68ab29 | 32 | pouce.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 33 | index.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 34 | majeur.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 35 | annulaire.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 36 | auriculaire.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 37 | poignet.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 38 | lcd.DrawVLine(250, 0, 300); |
Lp | 0:24647f68ab29 | 39 | |
Lp | 0:24647f68ab29 | 40 | |
Lp | 0:24647f68ab29 | 41 | wait(2); |
Lp | 0:24647f68ab29 | 42 | |
Lp | 0:24647f68ab29 | 43 | while(1){ |
Lp | 0:24647f68ab29 | 44 | lcd.DisplayStringAt(5,5, (uint8_t *)"MODE LIBRE",LEFT_MODE); |
Lp | 0:24647f68ab29 | 45 | lcd.DisplayStringAt(5,5, (uint8_t *)"MODE PREPROGRAMMER",RIGHT_MODE); |
Lp | 0:24647f68ab29 | 46 | |
Lp | 0:24647f68ab29 | 47 | if (auriculairebar.Slide()) { |
Lp | 0:24647f68ab29 | 48 | //labelServo.Draw("%%%5.1f", auriculairebar .GetValue()); |
Lp | 0:24647f68ab29 | 49 | us = auriculairebar.GetValue()*((1500/180)*2); |
Lp | 0:24647f68ab29 | 50 | auriculaire.pulsewidth_us(us); |
Lp | 0:24647f68ab29 | 51 | } |
Lp | 0:24647f68ab29 | 52 | |
Lp | 0:24647f68ab29 | 53 | if (annulairebar.Slide()) { |
Lp | 0:24647f68ab29 | 54 | us = annulairebar.GetValue()*((1500/180)*2); |
Lp | 0:24647f68ab29 | 55 | annulaire.pulsewidth_us(us); |
Lp | 0:24647f68ab29 | 56 | } |
Lp | 0:24647f68ab29 | 57 | |
Lp | 0:24647f68ab29 | 58 | if (majeurbar.Slide()) { |
Lp | 0:24647f68ab29 | 59 | //labelServo.Draw("%%%5.1f", auriculairebar .GetValue()); |
Lp | 0:24647f68ab29 | 60 | us = majeurbar.GetValue()*((1500/180)*2); |
Lp | 0:24647f68ab29 | 61 | majeur.pulsewidth_us(us); |
Lp | 0:24647f68ab29 | 62 | } |
Lp | 0:24647f68ab29 | 63 | |
Lp | 0:24647f68ab29 | 64 | if (indexbar.Slide()) { |
Lp | 0:24647f68ab29 | 65 | //labelServo.Draw("%%%5.1f", auriculairebar .GetValue()); |
Lp | 0:24647f68ab29 | 66 | us = indexbar.GetValue()*((1500/180)*2); |
Lp | 0:24647f68ab29 | 67 | index.pulsewidth_us(us); |
Lp | 0:24647f68ab29 | 68 | } |
Lp | 0:24647f68ab29 | 69 | |
Lp | 0:24647f68ab29 | 70 | if (poucebar.Slide()) { |
Lp | 0:24647f68ab29 | 71 | //labelServo.Draw("%%%5.1f", auriculairebar .GetValue()); |
Lp | 0:24647f68ab29 | 72 | us = poucebar.GetValue()*((1500/180)*2); |
Lp | 0:24647f68ab29 | 73 | pouce.pulsewidth_us(us); |
Lp | 0:24647f68ab29 | 74 | } |
Lp | 0:24647f68ab29 | 75 | |
Lp | 0:24647f68ab29 | 76 | if (poignetbar.Slide()) { |
Lp | 0:24647f68ab29 | 77 | //labelServo.Draw("%%%5.1f", auriculairebar .GetValue()); |
Lp | 0:24647f68ab29 | 78 | us = poignetbar.GetValue()*((1500/180)*2); |
Lp | 0:24647f68ab29 | 79 | poignet.pulsewidth_us(us); |
Lp | 0:24647f68ab29 | 80 | } |
Lp | 0:24647f68ab29 | 81 | |
Lp | 0:24647f68ab29 | 82 | if(reset.Touched()) |
Lp | 0:24647f68ab29 | 83 | { |
Lp | 0:24647f68ab29 | 84 | pouce.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 85 | index.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 86 | majeur.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 87 | annulaire.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 88 | auriculaire.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 89 | poignet.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 90 | } |
Lp | 0:24647f68ab29 | 91 | |
Lp | 0:24647f68ab29 | 92 | if(poing.Touched()) |
Lp | 0:24647f68ab29 | 93 | { |
Lp | 0:24647f68ab29 | 94 | pouce.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 95 | index.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 96 | majeur.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 97 | annulaire.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 98 | auriculaire.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 99 | poignet.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 100 | |
Lp | 0:24647f68ab29 | 101 | } |
Lp | 0:24647f68ab29 | 102 | |
Lp | 0:24647f68ab29 | 103 | if(doigt.Touched()) |
Lp | 0:24647f68ab29 | 104 | { |
Lp | 0:24647f68ab29 | 105 | pouce.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 106 | index.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 107 | majeur.pulsewidth_us(450); |
Lp | 0:24647f68ab29 | 108 | annulaire.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 109 | auriculaire.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 110 | poignet.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 111 | |
Lp | 0:24647f68ab29 | 112 | } |
Lp | 0:24647f68ab29 | 113 | |
Lp | 0:24647f68ab29 | 114 | if(metal.Touched()) |
Lp | 0:24647f68ab29 | 115 | { |
Lp | 0:24647f68ab29 | 116 | pouce.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 117 | index.pulsewidth_us(450); |
Lp | 0:24647f68ab29 | 118 | majeur.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 119 | annulaire.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 120 | auriculaire.pulsewidth_us(450); |
Lp | 0:24647f68ab29 | 121 | poignet.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 122 | |
Lp | 0:24647f68ab29 | 123 | } |
Lp | 0:24647f68ab29 | 124 | if(pointe.Touched()) |
Lp | 0:24647f68ab29 | 125 | { |
Lp | 0:24647f68ab29 | 126 | pouce.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 127 | index.pulsewidth_us(450); |
Lp | 0:24647f68ab29 | 128 | majeur.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 129 | annulaire.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 130 | auriculaire.pulsewidth_us(1900); |
Lp | 0:24647f68ab29 | 131 | poignet.pulsewidth_us(450); |
Lp | 0:24647f68ab29 | 132 | |
Lp | 0:24647f68ab29 | 133 | } |
Lp | 0:24647f68ab29 | 134 | |
Lp | 0:24647f68ab29 | 135 | if(ok.Touched()) |
Lp | 0:24647f68ab29 | 136 | { |
Lp | 0:24647f68ab29 | 137 | pouce.pulsewidth_us(1700); |
Lp | 0:24647f68ab29 | 138 | index.pulsewidth_us(1600); |
Lp | 0:24647f68ab29 | 139 | majeur.pulsewidth_us(450); |
Lp | 0:24647f68ab29 | 140 | annulaire.pulsewidth_us(450); |
Lp | 0:24647f68ab29 | 141 | auriculaire.pulsewidth_us(450); |
Lp | 0:24647f68ab29 | 142 | poignet.pulsewidth_us(1500); |
Lp | 0:24647f68ab29 | 143 | |
Lp | 0:24647f68ab29 | 144 | } |
Lp | 0:24647f68ab29 | 145 | |
Lp | 0:24647f68ab29 | 146 | |
Lp | 0:24647f68ab29 | 147 | } |
Lp | 0:24647f68ab29 | 148 | } |
Lp | 0:24647f68ab29 | 149 | |
Lp | 0:24647f68ab29 | 150 | |
Lp | 0:24647f68ab29 | 151 | |
Lp | 0:24647f68ab29 | 152 |