Skocz do zawartości

piotr_m

Użytkownicy
  • Zawartość

    6
  • Rejestracja

  • Ostatnio

Reputacja

2 Neutralna

O piotr_m

  • Ranga
    2/10
  1. @Treker W odpowiedzi na prośbę: Reklamowałem kamerkę w Botlandzie - wszystko przebiegło sprawnie i miło. Ekspresowo otrzymałem przesyłkę zwrotną. Wygląda na to, że problem był z samą kamerką. Po podłączeniu nowej od razu zadziałało. Problem rozwiązany, dziękuję za wsparcie
  2. Na zajęciach dostałem zadanie, aby wyświetlić grafikę na wyświetlaczu a na tej grafice tekst. Najpierw tekst normalnie z ramką a później same literki bez ramki. Mam problem, aby wyświetlić tekst bez ramki. Program główny wygląda następująco: #include <targets/AT91SAM7.h> #include "lcd.h" #define LCD_BACKLIGHT PIOB_SODR_P20 __attribute__ ((section(".fast"))) void delay(int n) //procedura opoznienia { volatile int i; for(i=3000*n;i>0;i--) { __asm__("nop"); } } int main() { PMC_PCER=PMC_PCER_PIOB; //wlaczenie urzadzenia we/wy PIOB PIOB_OER=LCD_BACKLIGHT; //OUTPUT ENABLE PIOB_PER=LCD_BACKLIGHT; //PIO ENABLE InitLCD(); //inicjalizacja LCD LCDSettings(); //ustawienie LCD LCDClearScreen(); LCDWrite130x130bmp(); //wyswietlenie BMP (zdef w pliku bmp.h) LCDPutStr("Nazwisko", 50, 30, LARGE, BLACK, WHITE ); while(1) { PIOB_SODR|=LCD_BACKLIGHT; //ustawienie 1 } return 0; } Do wyświetlenia grafiki używam funkcji LCDWrite130x130bmp(). Do wyświetlenia tekstu posługuję się funkcją void LCDPutStr(char *pString, int x, int y, int Size, int fColor, int bColor): void LCDPutStr(char *pString, int x, int y, int Size, int fColor, int bColor) { // loop until null-terminator is seen while (*pString != 0x00) { // draw the character LCDPutChar(*pString++, x, y, Size, fColor, bColor); // advance the y position if (Size == SMALL) y = y + 6; else if (Size == MEDIUM) y = y + 8; else y = y + 8; // bail out if y exceeds 131 if (y > 131) break; } } Wywołuje ona funkcję void LCDPutChar(char c, int x, int y, int size, int fColor, int bColor): void LCDPutChar(char c, int x, int y, int size, int fColor, int bColor) { extern const unsigned char FONT6x8[97][8]; extern const unsigned char FONT8x8[97][8]; extern const unsigned char FONT8x16[97][16]; int i,j; unsigned int nCols; unsigned int nRows; unsigned int nBytes; unsigned char PixelRow; unsigned char Mask; unsigned int Word0; unsigned int Word1; unsigned char *pFont; unsigned char *pChar; unsigned char *FontTable[] = {(unsigned char *)FONT6x8, (unsigned char *)FONT8x8, (unsigned char *)FONT8x16}; // get pointer to the beginning of the selected font table pFont = (unsigned char *)FontTable[size]; // get the nColumns, nRows and nBytes nCols = *pFont; nRows = *(pFont + 1); nBytes = *(pFont + 2); // get pointer to the last byte of the desired character pChar = pFont + (nBytes * (c - 0x1F)) + nBytes - 1; // Row address set (command 0x2B) WriteSpiCommand(PASET); WriteSpiData(x); WriteSpiData(x + nRows - 1); // Column address set (command 0x2A) WriteSpiCommand(CASET); WriteSpiData(y); WriteSpiData(y + nCols - 1); // WRITE MEMORY WriteSpiCommand(RAMWR); // loop on each row, working backwards from the bottom to the top for (i = nRows - 1; i >= 0; i--) { // copy pixel row from font table and then decrement row PixelRow = *pChar--; // loop on each pixel in the row (left to right) // Note: we do two pixels each loop Mask = 0x80; for (j = 0; j < nCols; j += 2) { // if pixel bit set, use foreground color; else use the background color // now get the pixel color for two successive pixels if ((PixelRow & Mask) == 0) Word0 = bColor; else Word0 = fColor; //Mask = Mask >> 1; if ((PixelRow & Mask) == 0) Word1 = bColor; else Word1 = fColor; //Mask = Mask >> 1; // use this information to output three data bytes WriteSpiData((Word0 >> 4) & 0xFF); WriteSpiData(((Word0 & 0xF) << 4) | ((Word1 >> 8) & 0xF)); WriteSpiData(Word1 & 0xFF); } } // terminate the Write Memory command WriteSpiCommand(NOP); } Chciałbym, aby funkcja LCDPutChar() nie ustawiała pikseli tła, tylko same literki. Domyślam się, że trzeba zmodyfikować ten fragment: for (j = 0; j < nCols; j += 2) { // if pixel bit set, use foreground color; else use the background color // now get the pixel color for two successive pixels if ((PixelRow & Mask) == 0) Word0 = bColor; else Word0 = fColor; //Mask = Mask >> 1; if ((PixelRow & Mask) == 0) Word1 = bColor; else Word1 = fColor; //Mask = Mask >> 1; // use this information to output three data bytes WriteSpiData((Word0 >> 4) & 0xFF); WriteSpiData(((Word0 & 0xF) << 4) | ((Word1 >> 8) & 0xF)); WriteSpiData(Word1 & 0xFF); } Uzyskuję efekt jak poniżej, a chciałbym się pozbyć żółtej/niebieskiej ramki. Jak się do tego zabrać? W załączniku dokumentacja od wyświetlacza. Nokia 6100 LCD Display Driver.pdf
  3. @Treker Jeśli chodzi o podłączenie taśmy to wygląda to tak.
  4. @Treker pi@raspberrypi:~ $ raspistill -v "raspistill" Camera App (commit 7cbfbd38d982 Tainted) Camera Name imx219 Width 3280, Height 2464, filename (null) Using camera 0, sensor mode 0 GPS output Disabled Quality 85, Raw no Thumbnail enabled Yes, width 64, height 48, quality 35 Time delay 5000, Timelapse 0 Link to latest frame enabled no Full resolution preview No Capture method : Single capture Preview Yes, Full screen Yes Preview window 0,0,1024,768 Opacity 255 Sharpness 0, Contrast 0, Brightness 50 Saturation 0, ISO 0, Video Stabilisation No, Exposure compensation 0 Exposure Mode 'auto', AWB Mode 'auto', Image Effect 'none' Flicker Avoid Mode 'off' Metering Mode 'average', Colour Effect Enabled No with U = 128, V = 128 Rotation 0, hflip No, vflip No ROI x 0.000000, y 0.000000, w 1.000000 h 1.000000 mmal: mmal_vc_component_enable: failed to enable component: ENOSPC mmal: camera component couldn't be enabled mmal: main: Failed to create camera component mmal: Failed to run camera app. Please check for firmware updates 1-wire wyłączone. Po zainstalowaniu pakietu Motion i odpaleniu przeglądarki mam taki efekt:
  5. Wykonuję w kolejności takiej jak narzuca kurs. Nic ponadto nie wykonywałem i nie robiłem na systemie. Gdy nie udało się nic wykombinować zgodnie z przebiegiem kursu zainstalowałem od nowa system: 2018-11-13-raspbian-stretch-lite
  6. Mam problem z kamerą z zestawu zakupionego do kursu: pi@raspberrypi:~ $ raspistill -n -o test.jpg mmal: mmal_vc_component_enable: failed to enable component: ENOSPC mmal: camera component couldn't be enabled mmal: main: Failed to create camera component mmal: Failed to run camera app. Please check for firmware updates Sprawdzałem na dwóch instalacjach systemu - pełnej i wersji lite. Wykonałem kolejne polecenia: sudo apt-get update sudo apt-get upgrade sudo rpi-update W menu: raspi-config kamera jest włączona. Polecenie sudo vcgencmd get_camera zwraca supported=1 detected=1 Po wywołaniu polecenia ps -aux otrzymuje USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.6 27960 5984 ? Ss 19:00 0:02 /sbin/init root 2 0.0 0.0 0 0 ? S 19:00 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< 19:00 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< 19:00 0:00 [rcu_par_gp] root 8 0.0 0.0 0 0 ? I< 19:00 0:00 [mm_percpu_wq] root 9 0.0 0.0 0 0 ? S 19:00 0:00 [ksoftirqd/0] root 10 0.0 0.0 0 0 ? I 19:00 0:00 [rcu_sched] root 11 0.0 0.0 0 0 ? I 19:00 0:00 [rcu_bh] root 12 0.0 0.0 0 0 ? S 19:00 0:00 [migration/0] root 13 0.0 0.0 0 0 ? S 19:00 0:00 [cpuhp/0] root 14 0.0 0.0 0 0 ? S 19:00 0:00 [cpuhp/1] root 15 0.0 0.0 0 0 ? S 19:00 0:00 [migration/1] root 16 0.0 0.0 0 0 ? S 19:00 0:00 [ksoftirqd/1] root 17 0.0 0.0 0 0 ? I 19:00 0:00 [kworker/1:0-cgr] root 19 0.0 0.0 0 0 ? S 19:00 0:00 [cpuhp/2] root 20 0.0 0.0 0 0 ? S 19:00 0:00 [migration/2] root 21 0.0 0.0 0 0 ? S 19:00 0:00 [ksoftirqd/2] root 23 0.0 0.0 0 0 ? I< 19:00 0:00 [kworker/2:0H-kb] root 24 0.0 0.0 0 0 ? S 19:00 0:00 [cpuhp/3] root 25 0.0 0.0 0 0 ? S 19:00 0:00 [migration/3] root 26 0.0 0.0 0 0 ? S 19:00 0:00 [ksoftirqd/3] root 29 0.0 0.0 0 0 ? S 19:00 0:00 [kdevtmpfs] root 30 0.0 0.0 0 0 ? I< 19:00 0:00 [netns] root 34 0.0 0.0 0 0 ? S 19:00 0:00 [khungtaskd] root 35 0.0 0.0 0 0 ? S 19:00 0:00 [oom_reaper] root 36 0.0 0.0 0 0 ? I< 19:00 0:00 [writeback] root 37 0.0 0.0 0 0 ? S 19:00 0:00 [kcompactd0] root 38 0.0 0.0 0 0 ? I< 19:00 0:00 [crypto] root 39 0.0 0.0 0 0 ? I< 19:00 0:00 [kblockd] root 40 0.0 0.0 0 0 ? S 19:00 0:00 [watchdogd] root 41 0.0 0.0 0 0 ? I< 19:00 0:00 [rpciod] root 42 0.0 0.0 0 0 ? I< 19:00 0:00 [kworker/u9:0-hc] root 43 0.0 0.0 0 0 ? I< 19:00 0:00 [xprtiod] root 46 0.0 0.0 0 0 ? S 19:00 0:00 [kswapd0] root 47 0.0 0.0 0 0 ? I< 19:00 0:00 [nfsiod] root 58 0.0 0.0 0 0 ? I< 19:00 0:00 [kthrotld] root 60 0.0 0.0 0 0 ? I< 19:00 0:00 [iscsi_eh] root 61 0.0 0.0 0 0 ? I< 19:00 0:00 [dwc_otg] root 62 0.0 0.0 0 0 ? I< 19:00 0:00 [DWC Notificatio] root 63 0.0 0.0 0 0 ? S< 19:00 0:00 [vchiq-slot/0] root 64 0.0 0.0 0 0 ? S< 19:00 0:00 [vchiq-recy/0] root 65 0.0 0.0 0 0 ? S< 19:00 0:00 [vchiq-sync/0] root 66 0.0 0.0 0 0 ? S 19:00 0:00 [vchiq-keep/0] root 67 0.0 0.0 0 0 ? S< 19:00 0:00 [SMIO] root 69 0.0 0.0 0 0 ? S 19:00 0:00 [irq/86-mmc1] root 71 0.0 0.0 0 0 ? I< 19:00 0:00 [mmc_complete] root 74 0.0 0.0 0 0 ? I< 19:00 0:00 [kworker/0:1H-mm] root 75 0.0 0.0 0 0 ? I< 19:00 0:00 [kworker/1:1H-kb] root 76 0.0 0.0 0 0 ? I< 19:00 0:00 [kworker/1:2H-kb] root 77 0.0 0.0 0 0 ? S 19:00 0:00 [jbd2/mmcblk0p2-] root 78 0.0 0.0 0 0 ? I< 19:00 0:00 [ext4-rsv-conver] root 79 0.0 0.0 0 0 ? I< 19:00 0:00 [ipv6_addrconf] root 83 0.0 0.0 0 0 ? I< 19:00 0:00 [kworker/3:1H-kb] root 91 0.0 0.0 0 0 ? I< 19:00 0:00 [kworker/3:2H] root 92 0.0 0.0 0 0 ? I< 19:00 0:00 [kworker/0:2H] root 96 0.0 0.0 0 0 ? I< 19:00 0:00 [kworker/2:2H] root 119 0.0 0.4 12448 4244 ? Ss 19:00 0:00 /lib/systemd/systemd-jou root 136 0.0 0.3 14488 3344 ? Ss 19:00 0:00 /lib/systemd/systemd-ude root 168 0.0 0.0 0 0 ? S 19:00 0:00 [irq/166-usb-001] root 182 0.0 0.0 0 0 ? S< 19:00 0:00 [SMIO] root 194 0.0 0.0 0 0 ? I< 19:00 0:00 [mmal-vchiq] root 195 0.0 0.0 0 0 ? I< 19:00 0:00 [mmal-vchiq] root 196 0.0 0.0 0 0 ? I< 19:00 0:00 [mmal-vchiq] root 197 0.0 0.0 0 0 ? I< 19:00 0:00 [mmal-vchiq] root 230 0.0 0.0 0 0 ? I< 19:00 0:00 [cfg80211] root 236 0.0 0.0 0 0 ? I< 19:00 0:00 [brcmf_wq/mmc1:0] root 238 0.0 0.0 0 0 ? S 19:00 0:00 [brcmf_wdog/mmc1] systemd+ 271 0.0 0.4 17276 3624 ? Ssl 19:00 0:00 /lib/systemd/systemd-tim root 276 0.0 0.0 0 0 ? I< 19:00 0:00 [mmal-vchiq] root 323 0.0 0.2 5292 2400 ? Ss 19:00 0:00 /usr/sbin/cron -f avahi 324 0.0 0.3 6392 2848 ? Ss 19:00 0:00 avahi-daemon: running [r message+ 325 0.0 0.3 6504 3384 ? Ss 19:00 0:00 /usr/bin/dbus-daemon --s avahi 326 0.0 0.0 6392 316 ? S 19:00 0:00 avahi-daemon: chroot hel root 329 0.0 0.4 7380 4280 ? Ss 19:00 0:00 /lib/systemd/systemd-log nobody 333 0.0 0.2 5292 2428 ? Ss 19:00 0:00 /usr/sbin/thd --triggers root 351 0.0 0.2 23756 2468 ? Ssl 19:00 0:00 /usr/sbin/rsyslogd -n root 412 0.0 0.2 10124 2412 ? Ss 19:00 0:00 wpa_supplicant -B -c/etc root 419 0.0 0.0 0 0 ? I 19:00 0:00 [kworker/3:4-cgr] root 437 0.0 0.0 0 0 ? I< 19:01 0:00 [kworker/u9:1-hc] root 438 0.0 0.0 2084 144 ? S 19:01 0:00 /usr/bin/hciattach /dev/ root 444 0.0 0.3 7072 3396 ? Ss 19:01 0:00 /usr/lib/bluetooth/bluet root 520 0.0 0.1 2936 1616 ? Ss 19:01 0:00 /sbin/dhcpcd -q -w root 532 0.0 0.1 4184 1460 tty1 Ss+ 19:01 0:00 /sbin/agetty --noclear t root 535 0.0 0.5 10200 4732 ? Ss 19:01 0:00 /usr/sbin/sshd -D root 540 0.0 0.6 11520 5736 ? Ss 19:01 0:00 sshd: pi [priv] pi 544 0.0 0.5 9656 4892 ? Ss 19:01 0:00 /lib/systemd/systemd --u pi 547 0.0 0.1 11184 1252 ? S 19:01 0:00 (sd-pam) pi 554 0.0 0.3 11656 3496 ? S 19:01 0:00 sshd: pi@pts/0 pi 557 0.0 0.4 5888 4004 pts/0 Ss 19:01 0:00 -bash root 690 0.0 0.0 0 0 ? I 19:16 0:00 [kworker/1:1-eve] root 782 0.0 0.0 0 0 ? I 19:57 0:00 [kworker/0:0-eve] root 801 0.0 0.0 0 0 ? I 20:09 0:00 [kworker/u8:0-ev] root 802 0.0 0.0 0 0 ? I 20:11 0:00 [kworker/0:1-eve] root 811 0.0 0.0 0 0 ? I 20:12 0:00 [kworker/2:0-eve] root 812 0.0 0.0 0 0 ? I 20:13 0:00 [kworker/3:0-eve] root 813 0.0 0.0 0 0 ? I 20:15 0:00 [kworker/u8:1-ev] root 837 0.0 0.0 0 0 ? I 20:17 0:00 [kworker/2:1-eve] root 846 0.0 0.0 0 0 ? I 20:22 0:00 [kworker/u8:2-br] root 847 0.0 0.0 0 0 ? R 20:22 0:00 [kworker/u8:3+br] root 859 0.0 0.0 0 0 ? I 20:22 0:00 [kworker/2:2-eve] root 868 0.0 0.0 0 0 ? I 20:23 0:00 [kworker/0:2] pi 886 0.0 0.3 7736 2960 pts/0 R+ 20:25 0:00 ps -aux gpu_mem Ustawione jest na 128, ale nawet 256 i 512 nie pomaga. Taśma jest podłączona dobrze - sprawdzałem i przekładałem 3 razy. Co jeszcze mogę sprawdzić? Czy kamera sama w sobie może być uszkodzona?
×