Updated 24 September 2020
Kits and Gadgets Electronics Inc.
Farwaniya, Kuwait 80003
Kuwait
ph: +965 99571844
kits
THE PROGRAM FOR ABOVE DEMONSTRATION KIT
1 MODE 20: GCOL 3
2 COLOUR 26: PRINT TAB(1,10); "Press Key to activate:"
3 COLOUR 7: PRINT TAB(1,14); "S= RESTART TEST"
4 PRINT TAB(1,16); "H= ACTIVATE SOLENOID"
5 PRINT TAB(1,18); "F & ->= ACTIVATE MOTOR"
6 PRINT TAB(1,20); "L= RUN LED LEFT"
7 PRINT TAB(1,22); "R= RUN LED RIGHT"
8 PRINT TAB(1,24); "1-8= INDIVIDUAL LED"
9 PRINT TAB(1,26); "O= TO SWITCH 'OFF' LEDs"
10 PRINT TAB(1,28); "SPACEBAR= TO DEACTIVATE MOTOR OR SOLENOID"
11 PRINT TAB(1,30); "A= TO INCREASE MOTOR SPEED"
12 PRINT TAB(1,32); "Z= TO DECREASE MOTOR SPEED"
14 PRINT TAB(1,34); "W= TO OUTPUT PWM SIGNAL ON GPIO 18"
20
30 COLOUR 18: PRINT TAB(1,1); "Raspberry Pi Demonstration Kit"
40
50 COLOUR 12: PRINT TAB(36,1); "BUILT & PROGRAMMED BY: Rolly Estomaguio"
60
70 REM Programmed on: 12 May 2014
80
90 COLOUR 31: PRINT TAB(42,3); "http://www.kits-gadgets.com"
100
110 ON ERROR PRINT REPORT$;" at line ";ERL:END
120 PROCinit
130 COLOUR 10: PRINT TAB(1,50); "Press Escape to finish": OFF
140
150 FOR Loop% = 1 TO 4
160
170 FOR J% = 0 TO 8
180
185 FOR Loop% = 1 TO 4
190 SYS "GPIO_WriteData",A%(J%),1
200
210 NEXT
220
230 TIME=0:REPEAT UNTIL TIME > 50
240
250 FOR J% = 0 TO 8
260
270 SYS "GPIO_WriteData",A%(J%),0
280
290 NEXT
300
310 TIME=0: REPEAT UNTIL TIME >30
320
330 NEXT
340
350 FOR I%=1 TO 4
360
370 FOR J%= 0 TO 8
380
390 SYS "GPIO_WriteData",A%(J%),1
400
410 TIME=0:REPEAT UNTIL TIME>5
420
430 SYS"GPIO_WriteData",A%(J%),0
440
450 NEXT
460 NEXT
470 FOR J%= 8 TO 0 STEP-1
480
490 SYS "GPIO_WriteData",A%(J%),1
500
510 TIME=0:REPEAT UNTIL TIME>5
520
530 SYS"GPIO_WriteData",A%(J%),0
540
550 NEXT
560
570
580
590 FOR I%=1 TO 4
600
610 FOR J%= 0 TO 8
620
630 SYS "GPIO_WriteData",A%(J%),1
640
650 TIME=0:REPEAT UNTIL TIME>1
660
670 SYS"GPIO_WriteData",A%(J%),0
680
690 NEXT
700
710 NEXT
720
730 FOR J%= 8 TO 0 STEP-1
740
750 SYS "GPIO_WriteData",A%(J%),1
760
770 TIME=0:REPEAT UNTIL TIME>1
780
790 SYS"GPIO_WriteData",A%(J%),0
800
810 NEXT
820
830 REM FOR I%=1 TO 20
840
850 FOR J%= 0 TO 8
860
870 SYS "GPIO_WriteData",A%(J%),1
880
890 FOR T%=1 TO 100000:NEXT
900
910 SYS"GPIO_WriteData",A%(J%),0
920
930 NEXT
940
950 FOR J%= 8 TO 0 STEP-1
960
970 SYS "GPIO_WriteData",A%(J%),1
980
990 FOR T%=1 TO 100000:NEXT
1000
1010 SYS"GPIO_WriteData",A%(J%),0
1020
1030 NEXT
1040
1050
1060
1070
1080 PROC_switch
1090
1100 DEFPROCinit
1110
1120 OSCLI"RMEnsure GPIO 0.00 RMLoad GPIO"
1130
1140 OSCLI"RMensure GPIO 0.40 ERROR Please install the GPIO module"
1150 SYS"GPIO_EnableI2C",0
1160 SYS"GPIO_ExpAsGPIO",2
1170 SYS"GPIO_GetBoard" TO PiType%
1180
1190 DIM A%(30)
1200 IF PiType%=12 A%()= 3,4,17,27,22,10,9,11,7,8,25,23,15,14,24,28,29,30,31,2,18
1204
1210
1220 ENDPROC
1225 REPEAT
1230 DEFPROC_switch
1240 REM INPUT 1,2,3,4,10,11,12,13 FOR 8 LEDSs
1250 L$= GET$: OFF : REM ORIGINALLY LINE 220
1260 REM FOR R%= 1 TO 8: REM FOR INDIVIDUAL LED TO PRESS "X"
1270 IF L$= "1" THEN N% = 1
1280 IF L$= "2" THEN N% = 2
1290 IF L$= "3" THEN N% = 3
1300 IF L$= "4" THEN N% = 4
1310 IF L$= "5" THEN N% = 5
1320 IF L$= "6" THEN N% = 6
1330 IF L$= "7" THEN N% = 7
1340 IF L$= "8" THEN N% = 8
1350 IF L$= "R" OR L$= "r" THEN PROC_rightmov
1360 IF L$= "L" OR L$= "l" THEN PROC_leftmov
1370 IF L$= "O" OR L$= "o" THEN PROC_off_led
1380 IF L$= "W" OR L$= "w" THEN PROC_wave_pwm
1390 IF L$= "F" OR L$= "f" THEN PROC_pwm_motor
1400 IF L$= "H" OR L$= "h" THEN PROC_sol
1410 IF L$= "Q" OR L$= "q" THEN QUIT
1420 IF L$= "S" OR L$= "s" THEN RUN
1430 IF L$= "E" OR L$= "e" THEN N% = 11
1432 IF L$= "D" OR L$= "d" THEN PROC_p5_test
1234 REM P5 PIN 5= GPIO 30
1440 SYS "GPIO_WriteData",A%(N%),1
1450
1460
1470
1480
1490 PROC_switch
1500
1510
1520 DEFPROC_off_led
1530 FOR E%= 1 TO 17
1540 SYS "GPIO_WriteData",A%(E%),0
1550 NEXT
1560 PROC_switch
1570 DEFPROC_rightmov
1580 FOR R%= 1 TO 8
1590 SYS "GPIO_WriteData",A%(R%),1
1600 FOR D%= 1 TO 1000000: NEXT
1610 NEXT
1620
1630 PROC_switch
1640 DEFPROC_leftmov
1650 FOR L%= 8 TO 1 STEP -1
1660 SYS "GPIO_WriteData",A%(L%),1
1670 FOR D%= 1 TO 1000000: NEXT
1680 NEXT
1690
1700 PROC_switch
1710 DEFPROC_pwm_motor
1720 SYS "GPIO_WriteData",18,1
1730 SYS "GPIO_ReadData",8 TO J%: IF J%= 1 THEN PROC_motor_stop
1740 S%= 450000
1750
1760 FOR D%= 1 TO 30000: NEXT
1770 G%= INKEY (1)
1780 IF INKEY (-99) THEN 1900: REM RESET MOTOR TO LOW
1790 IF INKEY (-122) THEN SYS "GPIO_WriteData",15,0: SYS "GPIO_WriteData",14,1
1800 IF INKEY (-26) THEN SYS "GPIO_WriteData",14,0: SYS "GPIO_WriteData",15,1
1810 IF INKEY (-42) OR INKEY (-98) THEN S%=S% + 450000 : REM ARROW DWN DOWN SPEED
1820 IF INKEY (-58) OR INKEY (-66) THEN S%=S% - 550000 : REM ARROW UP UP SPEED
1830
1840 SYS "GPIO_WriteData",18,0
1850 FOR D%= 1 TO S%: NEXT
1860 SYS "GPIO_WriteData",18,0: REM THIS TO DELAY MOTOR CW AND CCW
1870 FOR N%=1 TO 100000: NEXT
1880 PROC_pwm_motor
1890
1900 SYS "GPIO_WriteData",15,0
1910 SYS "GPIO_WriteData",14,0
1920 PROC_switch
1930
1940 DEFPROC_sol
1950
1960 SYS "GPIO_ReadData",25 TO E%: FOR D%= 1 TO 50000: NEXT: IF E%= 1 THEN PROC_sol_stop
1970 K%= INKEY (1)
1980
1990 SYS "GPIO_WriteData",24,1: SYS "GPIO_WriteData",23,0
1995
2000
2010 SYS "GPIO_WriteData",23,1: SYS "GPIO_WriteData",24,0
2015
2020 IF INKEY (-99) THEN SYS "GPIO_WriteData",24,0: SYS "GPIO_WriteData",23,0: PROC_switch
2030 FOR D%= 1 TO 1500000: NEXT
2040 SYS "GPIO_WriteData",24,0
2050 SYS "GPIO_WriteData",23,0
2060 FOR D%= 1 TO 1000000: NEXT
2070 PROC_sol
2080 PROC_switch
2090 DEFPROC_wave_pwm
2100 F$= GET$: OFF
2110 IF F$= "A" THEN T%= 2700
2120 IF F$= "B" THEN T%= 3700
2130 IF F$= "1" THEN T%= 47000
2140 IF F$= "2" THEN T%= 50000
2150 IF F$= "3" THEN T%= 57000
2160 IF F$= "4" THEN T%= 60000
2170 IF F$= "5" THEN T%= 67000
2180 IF F$= "6" THEN T%= 70000
2190 IF F$= "7" THEN T%= 77000
2200 IF F$= "8" THEN T%= 80000
2210 SYS "GPIO_WriteData",18,1
2220 FOR D%= 1 TO T%: NEXT
2230 SYS "GPIO_WriteData",18,0
2240
2250 W%= INKEY (1)
2260 IF INKEY (-99) THEN SYS "GPIO_WriteData",18,0: PROC_switch
2270
2280 SYS "GPIO_WriteData",18,1
2290 FOR D%= 1 TO T%: NEXT
2300 PROC_wave_pwm
2310
2320 DEFPROC_sine
2320 SYS "GPIO_WriteData",1,1
2330 FOR D%= 1 TO T%: NEXT : REM THIS DELAY IS FOR PULSE WIDTH, THE VALUE CREATED A SYMMETRICAL 100HZ SQUARE WAVE WITH JITTER OF ABOUT 200 MICRO SECOND
2340 SYS "GPIO_WriteData",18,0
2350
2360 W%= INKEY (1)
2370 IF INKEY (-99) THEN SYS "GPIO_WriteData",18,0 : PROC_switch
2380
2390
4000 DEFPROC_motor_stop
4010 SYS "GPIO_WriteData",18,0
4020 SYS "GPIO_ReadData",8 TO E%: IF E%= 1 THEN 4000
4030 FOR D%= 1 TO 500000: NEXT
4040 PROC_pwm_motor
4050 DEFPROC_sol_stop
4060 SYS "GPIO_WriteData",23,0
4070 SYS "GPIO_WriteData",24,0
4080 FOR D%= 1 TO 5000000: NEXT
4090 PROC_sol
4100
5000 DEFPROC_p5_test : REM THIS MAY NOT WORK YET.
5010
5020 SYS "GPIO_WriteData",28,1
5022 SYS "GPIO_WriteData",29,1
5024 SYS "GPIO_WriteData",30,1
5026 SYS "GPIO_WriteData",31,1
5030 FOR D%= 1 TO 500000: NEXT
5040 M%= INKEY (1)
5050 IF INKEY (-99) THEN PROC_switch
5060 GOTO 5000
NOTE:
Line numbers without commands are relics of modifications and can be excluded or you can entirely remove all the line numbers but no guarantee that it will work without a glitch. Send me an email for an updated version at kits@kits-gadgets.com.
Copyright 2013 Kits and Gadgets Electronics Inc. All rights reserved.
Kits and Gadgets Electronics Inc.
Farwaniya, Kuwait 80003
Kuwait
ph: +965 99571844
kits