#1 Re: Програмування Arduino » TFT 128*128 V2.1(без карты памяти) нет библиотеки » 2022-04-08 17:39:47

Возможно, вы можете попробовать TFT LCD by stone. Я уже привык. Это действительно отличный дисплей.www.stoneitech.com

#2 Re: Програмування Arduino » Какая библиотека для работы с Touch Screen подходит для дисплея ? » 2022-04-08 17:37:54

Возможно, вы можете попробовать TFT LCD. Я уже привык. Это действительно отличный дисплей.www.stoneitech.com

#6 Re: Програмування Arduino » Дисплей Nextion » 2022-03-30 14:48:29

I recently had a similar project and encountered some difficulties. Some of my friends suggested that I change a monitor. Maybe you can also try TFT LCD. I've used it before. It's really an excellent monitor
www.stoneitech.com

#7 Проекти » Arduino UNO управляет манипулятором робота » 2021-10-15 10:15:51

Solomon Klase
відповідей: 1

Недавно я приобрел 6-осевой роботизированный манипулятор и использую arduino uno и последовательный экран для управления им. Сейчас я могу добиться простого захвата роботизированной руки. После этого я хотел бы реализовать циклическое движение руки робота.
Есть ли у кого-нибудь подобный опыт?

file.php?id=518&t=1&sid=05d0c145e95e5f746f3dcd8bafd01e69

#8 Re: Проекти » Интеллектуальный контроль доступа на основе ESP32 и ЖК-дисплея » 2021-10-15 09:53:30

Я показываю свои работы в нескольких местах и хочу, чтобы их увидело больше людей.

#9 Re: Програмування Arduino » Раздел данных превышает доступное пространство на плате » 2021-10-15 09:51:16

Есть ли способ решить эту проблему без замены платы?
Поскольку используемый мной последовательный экран имеет свой собственный набор команд, в нем много очень длинных строк.

Вот часть моего кода.

case 56:
        if((r_flag1 == 0)&&(RecievedTemp1[14]==2))
        {
        Serial.println("ST<{"cmd_code":"set_image","type":"image","widget":"image9","image":"circle"}>ET");
        r_flag1 = 1;
        quan_hang3++;
            quan_lie2++;
            Serial.println("ST<{"cmd_code":"set_enable","type":"widget","widget":"button8","enable":false}>ET");
        }
        else if((r_flag1 == 1)&&(RecievedTemp1[14]==2))
        {
          Serial.println("ST<{"cmd_code":"set_image","type":"image","widget":"image9","image":"x"}>ET");
         r_flag1 = 0;
         cha_hang3++;
           cha_lie2++;
           Serial.println("ST<{"cmd_code":"set_enable","type":"widget","widget":"button8","enable":false}>ET");
        }
        break;       

#10 Програмування Arduino » Раздел данных превышает доступное пространство на плате » 2021-09-15 05:42:44

Solomon Klase
відповідей: 4
Arduino:1.8.12 (Windows 10), Development board: "Arduino Uno"

The project uses 6336 bytes, which occupies (19%) of the program storage space. The maximum is 32256 bytes. data section exceeds available space in board

Global variables used 3046 bytes, (148%) of dynamic memory, leaving -998 bytes for local variables. The maximum is 2048 bytes.
There is not enough memory; visit the following URL to follow the instructions to reduce memory usage.
http://www.arduino.cc/en/Guide/Troubleshooting#size
Error while compiling for development board Arduino Uno.

Turn on in File -> Preferences
"Show detailed output during compilation" option
This report will contain more information.

#11 Проекти » Интеллектуальный контроль доступа на основе ESP32 и ЖК-дисплея » 2021-09-15 05:35:53

Solomon Klase
відповідей: 4

Необходимые материалы

Реализованная функция

1. регистрация карты.
2. регистрация имени пользователя и пароля.
3. проведение картой для разблокировки электронного замка.
4. Имя пользователя и пароль для разблокировки электронного замка.

Схема подключения

file.php?id=7002

Разработка графического интерфейса пользователя

file.php?id=7003

код

import mfrc522
import time
import _thread
from os import uname
from machine import Pin, UART
#from pyb import UART
#import machine

suos = Pin(32,Pin.OUT)
uart2 = UART(2, baudrate=115200, rx=16,tx=17,timeout=10)

ESP32_HSPI_CLOCK = 14
ESP32_HSPI_SLAVE_SELECT = 15
ESP32_HSPI_MISO = 12
ESP32_HSPI_MOSI = 13
ESP32_MFRC522_RST = 5

rx3 = []
rx_name = []
user_id_flag = False
password_flag = False
temp_id = ''
temp_mima = ''
personnel_id = {'zbw':[236,230,169,47],'lbw':[19,165,93,4]}
personnel_ps = {'zbw':'zbw3366','lbw':'lbwnb'}
admin_password = ('yyds')
button_cmd = [16,1]
edit1_cmd = [16,112]
edit2_cmd = [16,113]
edit3_cmd = [16,114]

if uname()[0] == 'esp32':
	rdr = mfrc522.MFRC522(ESP32_HSPI_CLOCK, ESP32_HSPI_MOSI, ESP32_HSPI_MISO, ESP32_MFRC522_RST, ESP32_HSPI_SLAVE_SELECT)

def do_write():
	try:
		(stat, tag_type) = rdr.request(rdr.REQIDL)
		if stat == rdr.OK:
			(stat, raw_uid) = rdr.anticoll()
			if stat == rdr.OK:
				print("New card detected")
				print("  - tag type: 0x%02x" % tag_type)
				print("  - uid : 0x%02x%02x%02x%02x" % (raw_uid[0], raw_uid[1], raw_uid[2], raw_uid[3]))
				print("")
				if rdr.select_tag(raw_uid) == rdr.OK:
					key = [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
					if rdr.auth(rdr.AUTHENT1A, 8, key, raw_uid) == rdr.OK:
						stat = rdr.write(8, b"x00x53x00x54x00x4Fx00x4Ex00x45x0ax0bx0cx0dx0ex0f")
						rdr.stop_crypto1()
						if stat == rdr.OK:
							print("Data written to card")
						else:
							print("Failed to write data to card")
					else:
						print("Authentication error")
				else:
					print("Failed to select tag")

	except KeyboardInterrupt:
		print("write error")


def do_read():
	while True:
		try:
			(stat, tag_type) = rdr.request(rdr.REQIDL)

			if stat == rdr.OK:
				(stat, raw_uid) = rdr.anticoll()
				if stat == rdr.OK:
					print("New card detected")
					print("  - tag type: 0x%02x" % tag_type)
					print("  - uid   : 0x%02x%02x%02x%02x" % (raw_uid[0], raw_uid[1], raw_uid[2], raw_uid[3]))
					print (raw_uid[0], raw_uid[1], raw_uid[2], raw_uid[3])
					print("")
					if rdr.select_tag(raw_uid) == rdr.OK: 
						key = [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
						if rdr.auth(rdr.AUTHENT1A, 8, key, raw_uid) == rdr.OK:
							print("Address 8 data: %s" % rdr.read(8))
							for ps in personnel_id:
								if raw_uid[0:4:1] == personnel_id.get(ps):
									suos.value(1)
									print(ps)
									uart_write(ps, *raw_uid[0:4:1])
									time.sleep(3)
									uart2.sendbreak()
									break
							rdr.stop_crypto1()
							time.sleep(3)
							suos.value(0)
						else:
							print("Authentication error")
					else:
						print("Failed to select tag")
			if uart2.any()>1:
				rx2 = []
				data_name2 = ''
				bin_data = uart2.read(40)
				uart2.sendbreak()
				rx1 = list(bin_data)
				for item in rx1:
					rx2.append(chr(item))
				print(rx2)
				if rx1[3:5:1] == button_cmd:
					data_name_len = rx1[6] - 1
					data_name = rx2[7:data_name_len+7:1]
					data_name2 = ''.join(data_name)
					print(data_name2)
					if data_name2 == 'back3':
						return
		except KeyboardInterrupt:
			print("read error")

def do_read2 (idd):
	print(idd)
	while True:
		try:
			(stat, tag_type) = rdr.request(rdr.REQIDL)

			if stat == rdr.OK:
				(stat, raw_uid) = rdr.anticoll()
				if stat == rdr.OK:
					print("New card detected")
					print("  - tag type: 0x%02x" % tag_type)
					print("  - uid   : 0x%02x%02x%02x%02x" % (raw_uid[0], raw_uid[1], raw_uid[2], raw_uid[3]))
					print (raw_uid[0], raw_uid[1], raw_uid[2], raw_uid[3])
					print("")
					if rdr.select_tag(raw_uid) == rdr.OK: 
						key = [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]
						if rdr.auth(rdr.AUTHENT1A, 8, key, raw_uid) == rdr.OK:
							print("Address 8 data: %s" % rdr.read(8))
							personnel_id[idd] = raw_uid[0:4:1]
							uart_write3(*raw_uid[0:4:1])
							rdr.stop_crypto1()
						else:
							print("Authentication error")
					else:
						print("Failed to select tag")
			if uart2.any()>1:
				rx2 = []
				data_name2 = ''
				bin_data = uart2.read(40)
				uart2.sendbreak()
				rx1 = list(bin_data)
				for item in rx1:
					rx2.append(chr(item))
				if rx1[3:5:1] == button_cmd:
					data_name_len = rx1[6] - 1
					data_name = rx2[7:data_name_len+7:1]
					data_name2 = ''.join(data_name)
					print(data_name2)
				if data_name2 == 'back1':
					return

		except KeyboardInterrupt:
			print("read error")

def uart_write(text, *ids):
#	print(text, *ids)
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"cardname1","text":"'+str(text)+'"}>ET')
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"cardid1","text":"'+str(ids)+'"}>ET')
	uart2.write('ST<{"cmd_code":"set_visible","type":"widget","widget":"lock1","visible":true}>ET')
	time.sleep(3)
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"cardname1","text":"''"}>ET')
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"cardid1","text":"''"}>ET')
	uart2.write('ST<{"cmd_code":"set_visible","type":"widget","widget":"lock1","visible":false}>ET')

def uart_write2(text,text2):
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"cardid","text":"'+text+'"}>ET')
	time.sleep(3)
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"cardid","text":"'+text2+'"}>ET')
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"edit2","text":"''"}>ET')

def uart_write3(*id2):
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"cardid","text":"'+str(id2)+'"}>ET')
	time.sleep(3)
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"cardid","text":"''"}>ET')

def uart_write4(text,text2):
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"login","text":"'+text+'"}>ET')
	time.sleep(1)
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"login","text":"'+text2+'"}>ET')
	time.sleep(1)
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"edit3","text":"''"}>ET')
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"edit4","text":"''"}>ET')
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"edit7","text":"''"}>ET')

def uart_write5():
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"cardid","text":"'+str(id2)+'"}>ET')
	time.sleep(3)
	uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"cardid","text":"''"}>ET')

def card_zhuce():
	while True:
		if uart2.any():
			user_id = ''
			password = ''
			rx2 = []
			rx_num = 0
			bin_data = uart2.read(40)
			uart2.sendbreak()
			rx1 = list(bin_data)
			for item in rx1:
				rx2.append(chr(item))
				rx_num += 1
			data_end = rx_num-5
			data_id_st = rx2[8:13:1]
			data_id_st2 = ''.join(data_id_st)
			print(data_id_st2)
			if data_id_st2 == 'edit1':
				data_id_st3 = rx2[15:data_end:1]
				data_id_st4 = ''.join(data_id_st3)
				print(data_id_st4)
				if data_id_st4 != '':
					name = True
			elif data_id_st2 == 'edit2':
				data_id_st5 = rx2[15:data_end:1]
				data_id_st6 = ''.join(data_id_st5)
				if data_id_st6 == admin_password:
					admin = True
					uart_write2('Verification passed!','Please place the card!')
					do_read2(data_id_st4)
					return

def mima_zuce():
	temp_id3 = ''
	temp_mima3 = ''
	while True:
		if uart2.any():
			user_id = ''
			password = ''
			rx2 = []
			rx_num = 0
#			data_end = 0
			bin_data = uart2.read(40)
			uart2.sendbreak()
			rx1 = list(bin_data)
			for item in rx1:
				rx2.append(chr(item))
				rx_num += 1
#				if (rx2[rx_num] == 'T') and (rx2[rx_num-1] == 'E') and (rx2[rx_num-2] == '>'):
#					break
			data_end = rx_num-5
			data_id_st = rx2[8:13:1]
			data_id_st2 = ''.join(data_id_st)
			print(data_id_st2)
			if rx1[3:5:1] == button_cmd:
				data_name_len = rx1[6] - 1
				data_name = rx2[7:data_name_len+7:1]
				data_name2 = ''.join(data_name)
				print(data_name2)
				if data_name2 == 'back2':
					return
			if data_id_st2 == 'edit3':
				data_id_st3 = rx2[15:data_end:1]
				data_id_st4 = ''.join(data_id_st3)
				print(data_id_st4)
				user_id_flag = True
				temp_id3 = data_id_st4
#				personnel_ps[temp_id] = raw_uid[0:4:1]
			elif data_id_st2 == 'edit4':
				data_id_st5 = rx2[15:data_end:1]
				data_id_st6 = ''.join(data_id_st5)
				print(data_id_st6)
#				if personnel_ps.get(temp_id) == data_id_st6:
				password_flag = True
				temp_mima3 = data_id_st6
#					personnel_ps[temp_id] = password_flag

#			print(rx2,user_id_flag,password_flag)

			elif data_id_st2 == 'edit7':
				data_id_st5 = rx2[15:data_end:1]
				data_id_st6 = ''.join(data_id_st5)
				if (data_id_st6 == admin_password) and (password_flag == True) and (user_id_flag == True):
					admin = True
					personnel_ps[temp_id3] = temp_mima3
					password_flag = False
					user_id_flag = False
					uart_write4('Verification passed!','login was successful!')


def password_loin():
	temp_id2 = ''
	temp_mima = ''
	while True:
		if uart2.any():
			user_id = ''
			password = ''
			rx2 = []
			rx_num = 0
#			data_end = 0
			bin_data = uart2.read(40)
			uart2.sendbreak()
			rx1 = list(bin_data)
			for item in rx1:
				rx2.append(chr(item))
				rx_num += 1
#				if (rx2[rx_num] == 'T') and (rx2[rx_num-1] == 'E') and (rx2[rx_num-2] == '>'):
#					break
			data_end = rx_num-5
			data_id_st = rx2[8:13:1]
			data_id_st2 = ''.join(data_id_st)
			print(data_id_st2)
			if rx1[3:5:1] == button_cmd:
				data_name_len = rx1[6] - 1
				data_name = rx2[7:data_name_len+7:1]
				data_name2 = ''.join(data_name)
				print(data_name2)
				if data_name2 == 'back4':
					return
			if data_id_st2 == 'edit5':
				data_id_st3 = rx2[15:data_end:1]
				data_id_st4 = ''.join(data_id_st3)
				print(data_id_st4)
				if data_id_st4 in personnel_ps:
					user_id_flag = True
					temp_id2 = data_id_st4
			elif data_id_st2 == 'edit6':
				data_id_st5 = rx2[15:data_end:1]
				data_id_st6 = ''.join(data_id_st5)
				print(data_id_st6)
				print(temp_id2)
				print(personnel_ps)
				if personnel_ps.get(temp_id2) == data_id_st6:
					password_flag = True

#			print(rx2,user_id_flag,password_flag)
					print(user_id_flag,password_flag)
					if (password_flag == True) and (user_id_flag == True):
						uart_write(temp_id2,temp_id2)
						password_flag = False
						user_id_flag = False
						suos.value(1)
						uart2.write('ST<{"cmd_code":"set_visible","type":"widget","widget":"lock2","visible":true}>ET')
						uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"edit5","text":"''"}>ET')
						uart2.write('ST<{"cmd_code":"set_text","type":"label","widget":"edit6","text":"''"}>ET')
						time.sleep(3)
#						uart_write('student','')
						suos.value(0)
						uart2.write('ST<{"cmd_code":"set_visible","type":"widget","widget":"lock2","visible":false}>ET')
						uart2.sendbreak()

while True:
	if uart2.any()>1:
		rx2 = []
		data_name2 = ''
		bin_data = uart2.read(40)
#		time.sleep(1)
		uart2.sendbreak()
#		time.sleep(1)
		rx1 = list(bin_data)
		for item in rx1:
			rx2.append(chr(item))
		print(rx2)
		if rx1[3:5:1] == button_cmd:
			data_name_len = rx1[6] - 1
			data_name = rx2[7:data_name_len+7:1]
			data_name2 = ''.join(data_name)
			print(data_name2)
			if data_name2 == 'card1':
				card_zhuce()
			elif data_name2 == 'password1':
				mima_zuce()
			elif data_name2 == 'card2':
				do_read()
			elif data_name2 == 'password2':
				password_loin()

видеодемонстрация

https://www.youtube.com/watch?v=Gl-Nofxb6I4

#12 Re: Програмування Arduino » ІЧ -приймач Arduino показує, що функція декодування застаріла » 2021-08-16 06:19:19

Roman1984 пише:

В программе куча ошибок:

1) В строках №3 и №4 в конце вместо точек должны стоять точки с запятой
2) В строке №4 вместо decode_results result; необходимо написать decode_results results;
3) Нужно добавить в программу функцию void setup() {}
4) В строке №5 перед именем функции blank_set() нужно поставить слово void

Как-то так...

Это мой ручной набор текста, который будет содержать некоторые пунктуационные ошибки, фактический код свободен от этих проблем.

Я нашел решение, установите библиотеку IRremoto с более низкой версией, например 2.7.0

#13 Re: Апаратні питання » Чи може цей дисплей спілкуватися з Arduino? » 2021-08-16 06:13:17

г0сть пише:

Ви про паяльник щось чули? Чи тільки про DuPont?

Я новичок в электронике и никогда раньше не паял. Я буду учиться паять.

#14 Програмування Arduino » ІЧ -приймач Arduino показує, що функція декодування застаріла » 2021-08-06 09:08:29

Solomon Klase
відповідей: 3

ІЧ -прийом показує, що декодування (& результати)) функція застаріла і може працювати не так, як очікувалося! Просто використовуйте decode () без будь -яких аргументів.

#include <IRremote.h> // Декларація бібліотеки IRremote
int RECV_PIN = 11; // Визначте штифт ІЧ -приймача як 11
IRrecv irrecv(RECV_PIN).
decode_results result.
blank_set()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // запустити приймач
}
void loop() {
  if(irrecv.decode(&results)) 
  {
    Serial.println(results.value, HEX); // вивести отриманий код у шістнадцятковому рядку
    irrecv.resume(); // Отримайте наступне значення
  }
  delay(100);
}

#15 Апаратні питання » Чи може цей дисплей спілкуватися з Arduino? » 2021-08-06 08:58:22

Solomon Klase
відповідей: 3

Чи може цей дисплей спілкуватися з Arduino?

Я не бачу, де він може використовувати дріт DuPont.

QQ20210803182012.jpeg

Підвал форуму