2019 VND / 2h lương hơi thấp

python

(Tao Không Ngu.) #1

Tối giao thừa thấy co người lắc ***Pay cũng được khá nên mấy ngày này cũng chuyển hóa it bánh chưng thành VND xem được ít nào không.

  1. Phân tích vấn đề.
  • Cả mấy ngày qua số người được 6 con số không quá trăm người mà ứng dụng trên kho đã lên tóp một tải về nên nói chung là trừ khi cả năm ăn chay niệm phật không thì chỉ ăn với lắc thôi -> Code một tool tự động.
  1. Tìm giải pháp.
  • Ứng dụng được tải từ kho -> máy ảo cần có kho ứng dụng.
  • Cần giả lập được sự kiện lắc và bấm nút nhân thưởng -> có API.
  • Không chiếm chuột + bàn phím.!
    => Rất may máy ảo đu kèm SDK của android studio có đủ.

    Mình dùng bản neus5 máy lap ram4 + i3-2x nhưng vẫn chạy OK.
  1. Chuẩn bị máy ảo.
  • Sau khi khởi tạo xong cần update và đăng nhập tải ***Pay chạy thử như máy thật.
  • Bật chức năng USB debug để dùng adb và gửi sự kiện chạm nhận quà (Mình dùng ubuntu nên thêm biến môi trường là gọi thẳng lệnh adb)
  1. Code.
  • Rất may google cung cấp đủ thuốc cho ca này.
  • Một đoạn kịch bản python nữa :
import getpass
import telnetlib
import time
import math
import subprocess
import random

tn = telnetlib.Telnet(host="localhost", port=5554)
line = tn.read_until(b"OK").decode('ascii')
print(line)
tn.write(b"auth <Key đi theo máy>\n")
line = tn.read_until(b"OK").decode('ascii')
print(line)

MAX = 0.1
PHI = math.pi * 3.5
last = count = 0
TICK_TAP = 2.5
SLEEP = 0.01

while True:
	a = -MAX * PHI ** 2 * math.cos(PHI * count)
	data_byte = "sensor set acceleration {}:9.81:0.0\n".format(a).replace(".", ",").encode('ascii')
	tn.write(data_byte)
	time.sleep(SLEEP)
	count += SLEEP
	if count - last > TICK_TAP:
		last = count
		subprocess.run(["adb", "shell", "input", "tap", "300", "1708"])
		print("Tap {}".format(count))

Giờ thì treo máy và nhận quà thôi.

P/S
Một chút về cách gửi sự kiện lắc thông qua cảm biến gia tốc. Chính xác là gia tốc, bình thường mặc định là 9.81 theo trục thẳng đứng. Để giả lập sự kiện lắc cần thay đổi các giá trị này đi sensor set acceleration x:z:y vấn đề là các giá trị này là bao nhiêu ?
Phân tích hành động lắc điện thoại dưới cách nhìn vật lý thì có thể coi nó là một dao động điều hòa đơn giản hóa công thức dạng x = Acos(2πt + ϕ) Trong đó A là biên độ MAX = 0.1 mét, 2π là tốc độ góc PHI = math.pi * 3.5 tương đương lắc 1,75 cái trên một giây. Từ công thức tọa độ x theo thời gian đạo hàm hai lần để được công thức gia tốc theo phương x theo thời gian a = -MAX * PHI ** 2 * math.cos(PHI * t) bỏ qua pha ban đầu vì lắc liên tục nên không cần thiết.


(Đào An) #2

Thấy quảng cáo toàn lắc đc mấy triệu mà lúc chơi thật đc mấy đồng :smile:


(Hw3tr4n) #3

Bác được bao nhiêu rồi?!! :wink:


(Quân) #4

Lúc QC nó theo sdt rồi, dân đen mình chắc nó block mấy ô giải cao rồi. Có cho dân đen lắc để chết. Ngân sách giải thưởng thực tế cực kì thấp thì lấy đâu ra mà trả thưởng


(Tao Không Ngu.) #5

Mấy trăm tin nhắn rồi.


(Hw3tr4n) #6

Nói chung năm nay VTV làm quả chào năm mới dày đặc ads, từ táo quân đến cả lúc coutdown giao thừa cũng lắc viettelpay nào :))))


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?