adapted LED flashing in all script. Recording is possible in infinity loop when executing grid main.py
This commit is contained in:
		
							parent
							
								
									f91e2b780d
								
							
						
					
					
						commit
						bb0f00d1a9
					
				| @ -50,7 +50,6 @@ class plot(): | ||||
|         gs.update(left=0.05, bottom=0.05, top=1, right=1, hspace=0, wspace=0) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| def GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin): | ||||
|     # LED output pins | ||||
|     GPIO.setmode(GPIO.BOARD) | ||||
| @ -197,34 +196,19 @@ def main(): | ||||
|         print('cfg file missing !!!') | ||||
|         quit() | ||||
| 
 | ||||
|     # create save folder and copy cfg file | ||||
|     # path = os.path.join(init_path, now.strftime(path_format)) | ||||
|     # os.makedirs(path) | ||||
|     # copyfile(os.path.join(os.path.split(path)[0], 'fishgrid.cfg'), os.path.join(path, 'fishgrid.cfg')) | ||||
|     # cfgfile = os.path.join(path, 'fishgrid.cfg') | ||||
| 
 | ||||
|     # read and edit config file | ||||
|     channels, rate, n_cols, n_rows, max_v = read_cfg(init_cfgfile, now) | ||||
| 
 | ||||
|     # file = os.path.join(path, 'traces-grid1.raw') | ||||
|     # f = open(file, 'wb') | ||||
| 
 | ||||
|     # f.close() | ||||
| 
 | ||||
|     # embed() | ||||
|     # quit() | ||||
| 
 | ||||
|     LED1_pin = 11 | ||||
|     LED2_pin = 13 | ||||
|     Button1_pin = 16 | ||||
|     Button2_pin = 18 | ||||
| 
 | ||||
|     LED_status = GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin) | ||||
|     # LED_status = GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin) | ||||
| 
 | ||||
| 
 | ||||
|     # DAQ setup | ||||
|     if True: | ||||
|         # channels = 16 | ||||
| 
 | ||||
|         status = ScanStatus.IDLE | ||||
| 
 | ||||
| @ -235,7 +219,7 @@ def main(): | ||||
|         low_channel = 0 | ||||
|         high_channel = channels | ||||
| 
 | ||||
|         samples_per_channel = 20000  # * channels = Buffer size | ||||
|         samples_per_channel = rate * 2  # * channels = Buffer size | ||||
|         # rate = 20000 | ||||
|         scan_options = ScanOption.CONTINUOUS | ||||
|         flags = AInScanFlag.DEFAULT | ||||
| @ -298,13 +282,14 @@ def main(): | ||||
|         # f = open('/media/pi/data1/test_file.raw', 'wb') | ||||
| 
 | ||||
|     # LED on when here ... wait for switch to start data aquisition | ||||
|     GPIO.output(LED1_pin, GPIO.HIGH) | ||||
|     LED_status[0] = True | ||||
|     while GPIO.input(Button1_pin) == GPIO.LOW: | ||||
|         sleep(.1) | ||||
|     sleep(2) | ||||
|     GPIO.output(LED1_pin, GPIO.LOW) | ||||
|     LED_status[0] = False | ||||
| 
 | ||||
|     # GPIO.output(LED1_pin, GPIO.HIGH) | ||||
|     # LED_status[0] = True | ||||
|     # while GPIO.input(Button1_pin) == GPIO.LOW: | ||||
|     #     sleep(.1) | ||||
|     # sleep(2) | ||||
|     # GPIO.output(LED1_pin, GPIO.LOW) | ||||
|     # LED_status[0] = False | ||||
| 
 | ||||
|     LED_t = time() | ||||
|     LED_t_interval = 2 | ||||
| @ -319,36 +304,35 @@ def main(): | ||||
|     Plot.create_axis() | ||||
| 
 | ||||
|     init_fig = True | ||||
| 
 | ||||
|     try: | ||||
|         while GPIO.input(Button1_pin) == GPIO.LOW: | ||||
|         while True: | ||||
|             # blinking LED | ||||
|             if time() - LED_t < .1 and LED_status[0] == False: | ||||
|                 LED_status[0] = True | ||||
|                 GPIO.output(LED1_pin, GPIO.HIGH) | ||||
|             if time() - LED_t >= .1 and LED_status[0] == True: | ||||
|                 LED_status[0] = False | ||||
|                 GPIO.output(LED1_pin, GPIO.LOW) | ||||
|             if time() - LED_t >= LED_t_interval: | ||||
|                 LED_t = time() | ||||
| 
 | ||||
|             # dist & eth0 controll | ||||
|             if GPIO.input(Button2_pin) == GPIO.HIGH: | ||||
|                 if disp_eth_power == True: | ||||
|                     subprocess.run(['tvservice', '-o']) | ||||
|                     subprocess.run(['vcgencmd', 'display_power', '0']) | ||||
| 
 | ||||
|                     subprocess.run(['sudo', 'ip', 'link', 'set', 'eth0', 'down']) | ||||
|                     disp_eth_power = False | ||||
|             else: | ||||
|                 if disp_eth_power == False: | ||||
|                     subprocess.run(['tvservice', '-p']) | ||||
|                     subprocess.run(['vcgencmd', 'display_power', '1']) | ||||
|                     subprocess.run(['sudo', '/bin/chvt', '6']) | ||||
|                     subprocess.run(['sudo', '/bin/chvt', '7']) | ||||
| 
 | ||||
|                     subprocess.run(['sudo', 'ip', 'link', 'set', 'eth0', 'up']) | ||||
|                     disp_eth_power = True | ||||
|             # if time() - LED_t < .1 and LED_status[0] == False: | ||||
|             #     LED_status[0] = True | ||||
|             #     GPIO.output(LED1_pin, GPIO.HIGH) | ||||
|             # if time() - LED_t >= .1 and LED_status[0] == True: | ||||
|             #     LED_status[0] = False | ||||
|             #     GPIO.output(LED1_pin, GPIO.LOW) | ||||
|             # if time() - LED_t >= LED_t_interval: | ||||
|             #     LED_t = time() | ||||
|             # | ||||
|             # # dist & eth0 controll | ||||
|             # if GPIO.input(Button2_pin) == GPIO.HIGH: | ||||
|             #     if disp_eth_power == True: | ||||
|             #         subprocess.run(['tvservice', '-o']) | ||||
|             #         subprocess.run(['vcgencmd', 'display_power', '0']) | ||||
|             # | ||||
|             #         subprocess.run(['sudo', 'ip', 'link', 'set', 'eth0', 'down']) | ||||
|             #         disp_eth_power = False | ||||
|             # else: | ||||
|             #     if disp_eth_power == False: | ||||
|             #         subprocess.run(['tvservice', '-p']) | ||||
|             #         subprocess.run(['vcgencmd', 'display_power', '1']) | ||||
|             #         subprocess.run(['sudo', '/bin/chvt', '6']) | ||||
|             #         subprocess.run(['sudo', '/bin/chvt', '7']) | ||||
|             # | ||||
|             #         subprocess.run(['sudo', 'ip', 'link', 'set', 'eth0', 'up']) | ||||
|             #         disp_eth_power = True | ||||
| 
 | ||||
|             # Get the status of the background operation | ||||
|             status, transfer_status = ai_device.get_scan_status() | ||||
| @ -387,7 +371,7 @@ def main(): | ||||
|                 last_idx = index | ||||
| 
 | ||||
|     except KeyboardInterrupt: | ||||
|         embed() | ||||
|         plt.close() | ||||
|         pass | ||||
| 
 | ||||
|     # f.close() | ||||
| @ -406,7 +390,7 @@ def main(): | ||||
|         subprocess.run(['sudo', '/bin/chvt', '7']) | ||||
| 
 | ||||
|         # subprocess.run(['sudo', 'ip', 'link', 'set', 'eth0', 'up']) | ||||
|     GPIO.cleanup() | ||||
|     # GPIO.cleanup() | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|  | ||||
							
								
								
									
										33
									
								
								grid_main.py
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								grid_main.py
									
									
									
									
									
								
							| @ -1,4 +1,5 @@ | ||||
| import os | ||||
| from time import sleep | ||||
| try: | ||||
|     import RPi.GPIO as GPIO | ||||
| except: | ||||
| @ -32,15 +33,45 @@ def main(): | ||||
| 
 | ||||
|     LED_status = GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin) | ||||
| 
 | ||||
|     LED_status[0] = True | ||||
|     GPIO.output(LED1_pin, GPIO.HIGH) | ||||
| 
 | ||||
|     LED_status[1] = True | ||||
|     GPIO.output(LED2_pin, GPIO.HIGH) | ||||
| 
 | ||||
|     while True: | ||||
|         if GPIO.input(Button2_pin) == GPIO.HIGH: | ||||
|         if GPIO.input(Button1_pin) == GPIO.HIGH: | ||||
|             GPIO.output(LED1_pin, GPIO.LOW) | ||||
|             GPIO.output(LED2_pin, GPIO.LOW) | ||||
| 
 | ||||
|             GPIO.cleanup() | ||||
|             os.system('python3 /home/pi/code/Rasp_grid/rasp_grid.py') | ||||
|             sleep(5) | ||||
| 
 | ||||
| 
 | ||||
|             LED_status = GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin) | ||||
| 
 | ||||
|             LED_status[0] = True | ||||
|             GPIO.output(LED1_pin, GPIO.HIGH) | ||||
| 
 | ||||
|             LED_status[1] = True | ||||
|             GPIO.output(LED2_pin, GPIO.HIGH) | ||||
| 
 | ||||
|             # quit() | ||||
|         if GPIO.input(Button2_pin) == GPIO.HIGH: | ||||
|             for i in range(3): | ||||
|                 for j in range(2): | ||||
|                     sleep(0.5) | ||||
|                     if j == 0: | ||||
|                         GPIO.output(LED1_pin, GPIO.LOW) | ||||
|                         GPIO.output(LED2_pin, GPIO.LOW) | ||||
|                     else: | ||||
|                         GPIO.output(LED1_pin, GPIO.HIGH) | ||||
|                         GPIO.output(LED2_pin, GPIO.HIGH) | ||||
| 
 | ||||
|             GPIO.output(LED1_pin, GPIO.LOW) | ||||
|             GPIO.output(LED2_pin, GPIO.LOW) | ||||
|             print('shut down') | ||||
|             quit() | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										32
									
								
								rasp_grid.py
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								rasp_grid.py
									
									
									
									
									
								
							| @ -18,7 +18,7 @@ from IPython import embed | ||||
| from uldaq import (get_daq_device_inventory, DaqDevice, AInScanFlag, ScanStatus, | ||||
|                    ScanOption, create_float_buffer, InterfaceType, AiInputMode) | ||||
| 
 | ||||
| def GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin): | ||||
| def GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin, power_controll_pin): | ||||
|     # LED output pins | ||||
|     GPIO.setmode(GPIO.BOARD) | ||||
| 
 | ||||
| @ -31,7 +31,7 @@ def GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin): | ||||
| 
 | ||||
|     # switch controlled input | ||||
|     # GPIO.setup(Button1_pin, GPIO.IN) | ||||
|     # GPIO.setup(Button2_pin, GPIO.IN) | ||||
|     GPIO.setup(power_controll_pin, GPIO.IN) | ||||
| 
 | ||||
|     GPIO.setup(Button1_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) | ||||
|     GPIO.setup(Button2_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) | ||||
| @ -184,8 +184,9 @@ def main(): | ||||
|     LED2_pin = 13 | ||||
|     Button1_pin = 16 | ||||
|     Button2_pin = 18 | ||||
|     power_controll_pin = 37 | ||||
| 
 | ||||
|     LED_status = GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin) | ||||
|     LED_status = GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin, power_controll_pin) | ||||
| 
 | ||||
|     # DAQ setup | ||||
|     if True: | ||||
| @ -273,12 +274,15 @@ def main(): | ||||
| 
 | ||||
|     sleep(2) | ||||
| 
 | ||||
|     emergency_LED_t = time() | ||||
|     emergency_LED_interval = 0.5 | ||||
| 
 | ||||
|     LED_t = time() | ||||
|     LED_t_interval = 2 | ||||
| 
 | ||||
|     temp_t0 = time() | ||||
|     next_temp_t = 0 | ||||
|     temp_interval = 10  # sec --> 5 min | ||||
|     temp_interval = 300  # sec --> 5 min | ||||
| 
 | ||||
|     disp_eth_power = True | ||||
| 
 | ||||
| @ -290,12 +294,14 @@ def main(): | ||||
|                 if 't=' in line: | ||||
|                     temp = float((line.split('=')[-1].strip())) / 1000 | ||||
|                     temp_f.write('sec: %.0f; %.3f\n' % (next_temp_t, temp)) | ||||
|                     temp_f.flush() | ||||
|                     break | ||||
| 
 | ||||
|             w1_f.close() | ||||
|             next_temp_t += temp_interval | ||||
| 
 | ||||
|         # blinking LED | ||||
|         if GPIO.input(power_controll_pin) == GPIO.LOW: | ||||
|             if time() - LED_t < .1 and LED_status[0] == False: | ||||
|                 LED_status[0] = True | ||||
|                 GPIO.output(LED1_pin, GPIO.HIGH) | ||||
| @ -304,6 +310,22 @@ def main(): | ||||
|                 GPIO.output(LED1_pin, GPIO.LOW) | ||||
|             if time() - LED_t >= LED_t_interval: | ||||
|                 LED_t = time() | ||||
|         else: | ||||
|             if time() - emergency_LED_t > emergency_LED_interval: | ||||
|                 if LED_status[0] != LED_status[1]: | ||||
|                     GPIO.output(LED1_pin, GPIO.HIGH) | ||||
|                     GPIO.output(LED2_pin, GPIO.HIGH) | ||||
|                     LED_status = [True, True] | ||||
|                 else: | ||||
|                     if LED_status[0] == True: | ||||
|                         GPIO.output(LED1_pin, GPIO.LOW) | ||||
|                         GPIO.output(LED2_pin, GPIO.LOW) | ||||
|                         LED_status = [False, False] | ||||
|                     else: | ||||
|                         GPIO.output(LED1_pin, GPIO.HIGH) | ||||
|                         GPIO.output(LED2_pin, GPIO.HIGH) | ||||
|                         LED_status = [True, True] | ||||
| 
 | ||||
| 
 | ||||
|         # dist & eth0 controll | ||||
|         if GPIO.input(Button2_pin) == GPIO.HIGH: | ||||
| @ -331,6 +353,8 @@ def main(): | ||||
|         if (last_idx > index) and (index != -1): | ||||
|             np.array(data[last_idx:], dtype=np.float32).tofile(f) | ||||
|             np.array(data[:index], dtype=np.float32).tofile(f) | ||||
|             f.flush() | ||||
| 
 | ||||
|         if index == -1: | ||||
|             pass | ||||
|         else: | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user