mw-ferretti / e-braille

Open Source Braille Display
MIT License
4 stars 0 forks source link

Help to create a new braille device #1

Open discapacidad5 opened 2 years ago

discapacidad5 commented 2 years ago

Help to create a new braille device

Hi, I don't speak English, I'm using the google translator, I hope they understand me, my language is Spanish

I am developing a braille line with the ardiuno IDE and esp32 I have all the hardware but my problem is precisely that I do not fear how to communicate with the esp32 I have tried to connect the serial monitor of ardiuno and connect the esp32 by bluetooth and in the output of the serial port I get pure question marks and unreadable characters I would like help to develop the software that would go in the esp32 that exchange data with the devices

my project consists of a very low cost braille display probably anyone can manufacture with less than $ 50 the idea is to create everything and make it available so that anyone can print their own braille display on a 3d printer and added the esp32 card and the driver can make your own braille line I hope someone can help me

mw-ferretti commented 2 years ago

Hey man. Yes, I can help, I'm looking forward to resuming this project. How do you want to physically control the pins? I have some ideas, but I haven't had time to move forward yet.

discapacidad5 commented 2 years ago

The encoder is practically the heart of the braille display. Most commercial braille displays have 40 or 80 braille cells. Since the most expensive on a braille display is braille cells, which cost more than $ 35 each, we are designing a new form of braille display with 40 virtual cells and a single physical braille cell, reducing most of the cost. . We are talking about a braille cell that can be made from 3D printed parts, I designed a different system. Instead of activating 40 cells at the same time and applying all the power to 40 physical cells, Brailletouch uses a physical encoder and a virtual braille display of 40 touch sensors placed in a matrix. In this way, the braille text is gradually displayed in a single braille cell as the virtual cells are touched. Parts can be easily printed.

My braille display design succeeds in reducing the cost of a braille display by over 90%. Currently, a braille screen has a cost between $ 1200 and $ 6000, being $ 1200 the smallest and most fragile, my proposal seeks to achieve a braille screen that can be manufactured between 100 and $ 150, it could even be much cheaper when making production mass. Basically, we could have a screen at an affordable price for all visually impaired and deafblind people.

My project is open source. The idea is to make available to anyone anywhere in the world a code that can be modified and improved, files for 3D printers to print their parts and an assembly manual, so that anyone can download, print, assemble and use

Its development is based on an esp32 microcontroller. (What is open source hardware)

OUR REPOSITORY

https://github.com/brailletouch/brailletouch

The most difficult part for me and in which I need more help, is the HID braille communication protocol, I do not understand it, they have given me this document on how to work with the esp32, I do not understand it if you understand it and I can help with that, that part will be very useful

Dear @discapacidad5 , very interesting approach with one real braille cell and the virtual cells! Regarding the Bluetooth HID implementation:

unfortunately, we don't need a Braille implementation in this repository (maybe my colleagues will find a use case, but I can't). Nevertheless, if you create a new repository for the ESP32 firmware (I would recommend to split the firmware & case designs) I can contribute. Thanks for the USB reference document, I think there is everything you need: To change the HID functionality you need following steps (mostly in the file hid_device_le_prf.c):

Change the HID descriptor: I would simply use the example from the referenced document. It seems to include left/right control buttons, braille input and some buttons (look for collections which end with an input tag) Change the report structure: On the first read, there seems to be only one input and one output report (no report IDs). Combining all report size/report count tags in the HID descriptor you will get the bit/byte positions in your report where data should be sent / read. Hope I could help, I like your projects!

Greetings

OK, I would get started with the Espressif example: https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/ble/ble_hid_device_demo There is everything you need to get started based on a mouse/keyboard project (exactly as we did here). Try to compile and flash the example, to ensure a correct development setup. (getting started for the ESP32: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html )

And then start to change the HID descriptor to the example from your document.

discapacidad5 commented 2 years ago

I don't know if I could clearly explain my idea of pins. in fact, you can even use an electric punch. Since it's just one cell they can use cerbomotor celenoids and anything because you only have to control 8 pins. I am making a cell with 4 cerbo motors.

The novelty of my project is not in a new invention of cells but in a new way of reading with 40 or 80 virtual cells that are touch sensors instead of braille cells, they serve to have a location where each letter goes and know if the text It is to the right centered to the left or junstified. Virtual cells allow us to have a mental map of the position of the letters or characters. With one hand we touch the virtual bristles to see the potion where the letter is with the other we read the letter in the only physical cell in Braille, in this way we reduce expenses in cells we reduce energy consumption and the cell phone can be manufactured practically anything solenoid servomotors anywhere to perform mechanical work

Excuse me if you are not clear about what I am saying but I write in Spanish and the translations are not usually very good into English I hope you can have an idea of what I am proposing and understand it

El lun, 6 dic 2021 a las 20:21, Marcos W. Ferretti (< @.***>) escribió:

Hey man. Yes, I can help, I'm looking forward to resuming this project. How do you want to physically control the pins? I have some ideas, but I haven't had time to move forward yet.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mw-ferretti/e-braille/issues/1#issuecomment-987416304, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACL5OJU5GZAMQRRFY23CNU3UPVHPHANCNFSM5IK5WQ7A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

discapacidad5 commented 2 years ago

I have created a blank repository within my project for anyone who wants to help me. https://github.com/brailletouch/HID-braille-ESP32

my braille repository is https://github.com/brailletouch/brailletouch

El lun, 6 dic 2021 a las 20:21, Marcos W. Ferretti (< @.***>) escribió:

Hey man. Yes, I can help, I'm looking forward to resuming this project. How do you want to physically control the pins? I have some ideas, but I haven't had time to move forward yet.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mw-ferretti/e-braille/issues/1#issuecomment-987416304, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACL5OJU5GZAMQRRFY23CNU3UPVHPHANCNFSM5IK5WQ7A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.