czujnika VL53L0X

Pytania, kody i porady dotyczące nie tylko Bascom.
ODPOWIEDZ
Awatar użytkownika
tomaszdko
Posty: 72
Rejestracja: 06 gru 2018, 19:58

czujnika VL53L0X

Post autor: tomaszdko » 14 lut 2024, 10:24

Bartek ...Ty mi się na elektrodzie nie "mUndrUj" :D .Mi chodziło o zdobycie PDF z listą rejestrów , dziwi mnie to że takowego nie idzie znaleźć . Możliwe że gdzieś jest ale nie znalazłem .
W takich PDF znajdziesz sekwencje jak coś uruchomić poprawnie . Niektóre moduły mają pokręcone sterowanie np:MPU9250 kiedy chcesz użyć magnetometru , banał ale ludzie mają problem .
To jest właśnie irytujące w takich przykładach bo tacy "arduinowcy" mają masę bibliotek i właściwie podają zmienne a gotowy wynik sam jest "wypluwany" .
Jeśli byś coś znalazł to daj znać .

(na razie tak jak pisałem to przerobiłem kod na bascom i chodzi ale nie jest to co mnie interesuje)
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: czujnika VL53L0X

Post autor: niveasoft » 14 lut 2024, 10:28

Jak będę się nudził to może narucham i ten PDF :D
Na razie sprawdzam te AI na Elektrodzie czy może coś przerabiać.
Sam mam konto na GPT i sobie z nim gadam prywatnie w przeglądarce. Ten na Elektrodzie jakoś się krzaczy. Normalny by to dawno przetłumaczył.

Ale z tego gadania z nim mam 4 punkty za kazda wypowiedź a zbieram 40 na podpis ahahahahahahaha
  1. /* Device register map */
  2.  
  3. /** @defgroup VL53L0X_DefineRegisters_group Define Registers
  4.  *  @brief List of all the defined registers
  5.  *  @{
  6.  */
  7. #define VL53L0X_REG_SYSRANGE_START 0x000
  8. /** mask existing bit in #VL53L0X_REG_SYSRANGE_START*/
  9. #define VL53L0X_REG_SYSRANGE_MODE_MASK 0x0F
  10. /** bit 0 in #VL53L0X_REG_SYSRANGE_START write 1 toggle state in
  11.  * continuous mode and arm next shot in single shot mode */
  12. #define VL53L0X_REG_SYSRANGE_MODE_START_STOP 0x01
  13. /** bit 1 write 0 in #VL53L0X_REG_SYSRANGE_START set single shot mode */
  14. #define VL53L0X_REG_SYSRANGE_MODE_SINGLESHOT 0x00
  15. /** bit 1 write 1 in #VL53L0X_REG_SYSRANGE_START set back-to-back
  16.  *  operation mode */
  17. #define VL53L0X_REG_SYSRANGE_MODE_BACKTOBACK 0x02
  18. /** bit 2 write 1 in #VL53L0X_REG_SYSRANGE_START set timed operation
  19.  *  mode */
  20. #define VL53L0X_REG_SYSRANGE_MODE_TIMED 0x04
  21. /** bit 3 write 1 in #VL53L0X_REG_SYSRANGE_START set histogram operation
  22.  *  mode */
  23. #define VL53L0X_REG_SYSRANGE_MODE_HISTOGRAM 0x08
  24.  
  25. #define VL53L0X_REG_SYSTEM_THRESH_HIGH 0x000C
  26. #define VL53L0X_REG_SYSTEM_THRESH_LOW 0x000E
  27.  
  28. #define VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG 0x0001
  29. #define VL53L0X_REG_SYSTEM_RANGE_CONFIG 0x0009
  30. #define VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD 0x0004
  31.  
  32. #define VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO 0x000A
  33. #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_DISABLED 0x00
  34. #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_LOW 0x01
  35. #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_HIGH 0x02
  36. #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_OUT_OF_WINDOW 0x03
  37. #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY 0x04
  38.  
  39. #define VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH 0x0084
  40.  
  41. #define VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR 0x000B
  42.  
  43. /* Result registers */
  44. #define VL53L0X_REG_RESULT_INTERRUPT_STATUS 0x0013
  45. #define VL53L0X_REG_RESULT_RANGE_STATUS 0x0014
  46.  
  47. #define VL53L0X_REG_RESULT_CORE_PAGE 1
  48. #define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN 0x00BC
  49. #define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_RTN 0x00C0
  50. #define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF 0x00D0
  51. #define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_REF 0x00D4
  52. #define VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF 0x00B6
  53.  
  54. /* Algo register */
  55.  
  56. #define VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM 0x0028
  57.  
  58. #define VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS 0x008a
  59.  
  60. /* Check Limit registers */
  61. #define VL53L0X_REG_MSRC_CONFIG_CONTROL 0x0060
  62.  
  63. #define VL53L0X_REG_PRE_RANGE_CONFIG_MIN_SNR 0X0027
  64. #define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW 0x0056
  65. #define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH 0x0057
  66. #define VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT 0x0064
  67.  
  68. #define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_SNR 0X0067
  69. #define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW 0x0047
  70. #define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH 0x0048
  71. #define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT 0x0044
  72.  
  73. #define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_HI 0X0061
  74. #define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_LO 0X0062
  75.  
  76. /* PRE RANGE registers */
  77. #define VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD 0x0050
  78. #define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI 0x0051
  79. #define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO 0x0052
  80.  
  81. #define VL53L0X_REG_SYSTEM_HISTOGRAM_BIN 0x0081
  82. #define VL53L0X_REG_HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT 0x0033
  83. #define VL53L0X_REG_HISTOGRAM_CONFIG_READOUT_CTRL 0x0055
  84.  
  85. #define VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD 0x0070
  86. #define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI 0x0071
  87. #define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO 0x0072
  88. #define VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS 0x0020
  89.  
  90. #define VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP 0x0046
  91.  
  92. #define VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N 0x00bf
  93. #define VL53L0X_REG_IDENTIFICATION_MODEL_ID 0x00c0
  94. #define VL53L0X_REG_IDENTIFICATION_REVISION_ID 0x00c2
  95.  
  96. #define VL53L0X_REG_OSC_CALIBRATE_VAL 0x00f8
  97.  
  98. #define VL53L0X_SIGMA_ESTIMATE_MAX_VALUE 65535
  99. /* equivalent to a range sigma of 655.35mm */
  100.  
  101. #define VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH 0x032
  102. #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0 0x0B0
  103. #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_1 0x0B1
  104. #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_2 0x0B2
  105. #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_3 0x0B3
  106. #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_4 0x0B4
  107. #define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_5 0x0B5
  108.  
  109. #define VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT 0xB6
  110. #define VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD 0x4E /* 0x14E */
  111. #define VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET 0x4F    /* 0x14F */
  112. #define VL53L0X_REG_POWER_MANAGEMENT_GO1_POWER_FORCE 0x80
  113.  
  114. /*
  115.  * Speed of light in um per 1E-10 Seconds
  116.  */
  117.  
  118. #define VL53L0X_SPEED_OF_LIGHT_IN_AIR 2997
  119.  
  120. #define VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV 0x0089
  121.  
  122. #define VL53L0X_REG_ALGO_PHASECAL_LIM 0x0030 /* 0x130 */
  123. #define VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT 0x0030
  124.  
  125. /** @} VL53L0X_DefineRegisters_group */
Awatar użytkownika
tomaszdko
Posty: 72
Rejestracja: 06 gru 2018, 19:58

Re: czujnika VL53L0X

Post autor: tomaszdko » 14 lut 2024, 10:34

eheh dobre "Ale z tego gadania z nim mam 4 punkty za kazda wypowiedź a zbieram 40 na podpis ahahahahahahaha"

Ja nie wierze w te czaty . Kiedyś moja żona używała z ciekawości . Powiedziałem jej by zapytała o prosty kod dla atmega32 , mruganie diody , timer i wyszły głupoty a raczej ogólniki z których nic by nie mrugało .

ps: dodam Ci na elektrodzie że pomogłeś .
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: czujnika VL53L0X

Post autor: niveasoft » 14 lut 2024, 10:41

Patrz jak mi to ładnie zrobił na moim kompie.
Ale musze napisac ze za pierwszym razem to mi to zrobił z Define i go poprosiłem zeby mi zmienił Define na Const ahahahahaha.
Kodu może nie wymyśli, ale odwala nudną robotę.

  1. ' Definicje rejestrów urządzenia
  2. ' Grupa rejestrów definiowanych
  3. Const VL53L0X_REG_SYSRANGE_START = &H000
  4. ' Maska istniejącego bitu w #VL53L0X_REG_SYSRANGE_START
  5. Const VL53L0X_REG_SYSRANGE_MODE_MASK = &H0F
  6. ' Bit 0 w #VL53L0X_REG_SYSRANGE_START write 1 przełącza stan w trybie ciągłym
  7. ' i uzbraja następny pomiar w trybie jednorazowym
  8. Const VL53L0X_REG_SYSRANGE_MODE_START_STOP = &H01
  9. ' Bit 1 w #VL53L0X_REG_SYSRANGE_START write 0 ustawia tryb jednorazowy
  10. Const VL53L0X_REG_SYSRANGE_MODE_SINGLESHOT = &H00
  11. ' Bit 1 w #VL53L0X_REG_SYSRANGE_START write 1 ustawia tryb operacji bezpośrednio po sobie
  12. Const VL53L0X_REG_SYSRANGE_MODE_BACKTOBACK = &H02
  13. ' Bit 2 w #VL53L0X_REG_SYSRANGE_START write 1 ustawia tryb operacji zegarowej
  14. Const VL53L0X_REG_SYSRANGE_MODE_TIMED = &H04
  15. ' Bit 3 w #VL53L0X_REG_SYSRANGE_START write 1 ustawia tryb operacji histogramu
  16. Const VL53L0X_REG_SYSRANGE_MODE_HISTOGRAM = &H08
  17.  
  18. Const VL53L0X_REG_SYSTEM_THRESH_HIGH = &HC
  19. Const VL53L0X_REG_SYSTEM_THRESH_LOW = &HE
  20.  
  21. Const VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG = &H1
  22. Const VL53L0X_REG_SYSTEM_RANGE_CONFIG = &H9
  23. Const VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD = &H4
  24.  
  25. Const VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO = &HA
  26. Const VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_DISABLED = &H00
  27. Const VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_LOW = &H01
  28. Const VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_HIGH = &H02
  29. Const VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_OUT_OF_WINDOW = &H03
  30. Const VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY = &H04
  31.  
  32. Const VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH = &H84
  33.  
  34. Const VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR = &HB
  35.  
  36. ' Rejestry wyników
  37. Const VL53L0X_REG_RESULT_INTERRUPT_STATUS = &H13
  38. Const VL53L0X_REG_RESULT_RANGE_STATUS = &H14
  39.  
  40. Const VL53L0X_REG_RESULT_CORE_PAGE = 1
  41. Const VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN = &HBC
  42. Const VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_RTN = &HC0
  43. Const VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF = &HD0
  44. Const VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_REF = &HD4
  45. Const VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF = &HB6
  46.  
  47. ' Rejestry algorytmu
  48. Const VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM = &H28
  49.  
  50. Const VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS = &H8A
  51.  
  52. ' Rejestry ograniczeń sprawdzania
  53. Const VL53L0X_REG_MSRC_CONFIG_CONTROL = &H60
  54.  
  55. Const VL53L0X_REG_PRE_RANGE_CONFIG_MIN_SNR = &H27
  56. Const VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW = &H56
  57. Const VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH = &H57
  58. Const VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT = &H64
  59.  
  60. Const VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_SNR = &H67
  61. Const VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW = &H47
  62. Const VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH = &H48
  63. Const VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT = &H44
  64.  
  65. Const VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_HI = &H61
  66. Const VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_LO = &H62
  67.  
  68. ' Rejestry PRE RANGE
  69. Const VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD = &H50
  70. Const VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI = &H51
  71. Const VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO = &H52
  72.  
  73. Const VL53L0X_REG_SYSTEM_HISTOGRAM_BIN = &H81
  74. Const VL53L0X_REG_HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT = &H33
  75. Const VL53L0X_REG_HISTOGRAM_CONFIG_READOUT_CTRL = &H55
  76.  
  77. Const VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD = &H70
  78. Const VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI = &H71
  79. Const VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO = &H72
  80. Const VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS = &H20
  81.  
  82. Const VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP = &H46
  83.  
  84. Const VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N = &HBF
  85. Const VL53L0X_REG_IDENTIFICATION_MODEL_ID = &HC0
  86. Const VL53L0X_REG_IDENTIFICATION_REVISION_ID = &HC2
  87.  
  88. Const VL53L0X_REG_OSC_CALIBRATE_VAL = &HF8
  89.  
  90. Const VL53L0X_SIGMA_ESTIMATE_MAX_VALUE = 65535
  91. ' równoważne dla sigma zakresu 655.35mm
  92.  
  93. Const VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH = &H32
  94. Const VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0 = &HB0
  95. Const VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_1 = &HB1
  96. Const VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_2 = &HB2
  97. Const VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_3 = &HB3
  98. Const VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_4 = &HB4
  99. Const VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_5 = &HB5
  100.  
  101. Const VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT = &HB6
  102. Const VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD = &H4E ' 0x14E
  103. Const VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET = &H4F ' 0
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
grzeniu 73
Posty: 26
Rejestracja: 07 lip 2019, 0:32

Re: czujnika VL53L0X

Post autor: grzeniu 73 » 25 lut 2024, 11:18

Tez korzystam z chata, co prawda darmowego, ale fajna zabawka. Trzeba go pilnować, bo potrafi kłamać czasem bardziej niż politycy :)
ODPOWIEDZ