 Hi everybody Hello everybody so The slides are for make a fair because I just came from make a fair two days ago, and so I thought I just used the same slides, but We'll go through. Okay, so The talk is about course text. What is course text course text is an assistive device and So it's an assistive device to help Those with very little vision lab or no vision altogether to do text editing The system to keep tracks of the process number of sliders and then pull out the corresponding part of the text and pass it to Text-to-speech, so it looks a little bit something like this Yeah, so I zoomed in on the device there Then you can see three sliders the first one is the Vertical one, so this is what switching or reading between lines Reading line by line. So as we just slide it from top to bottom the system will pick up Will read up the text line by line from first line to the last line and the upper horizontal slider is for reading between words in a line so And the third one is for reading character by character in a word which is in a line okay, so I've got a little demo and This is pretty recorded but we'll Will have a look okay, it has a web interface and The web interface for importing text, so I'm accessing the web interface via a tablet and There are already some text Typing earlier on before I hit the record button and that's the text Basically an incomplete incomplete sentences that we were going to complete Sorry, let's turn up your Can anybody hear that? Louder. Okay. Okay. It's almost max already. Okay, try playing it Okay, cool, it's a little croppy, but never mind. It's it's you know, so Yeah Okay so the text that's important is our incomplete sentence and I Will complete those sentences using course like so this demo is text import and at the same time text editing using tech course like so Okay, so we can see that the Text that was imported is displayed on the on the on the on the tablet There's a there's a place for the user to Read a enlarged font size and large version of the text. Okay, and then updates Real time as the user type and as the user move the sliders so It'll be useful for people below vision because They they can see a bit, but they need to see things being This So as I slide the slider the line slider from the first line the second and third line It reads out the content of the first line the second line the third line And then this is I'm going through word by word in that line right that line has the three words in it Hi, my name is it was resting on a position one and then I slide it to position two and it pulled out the second word All right, make mine and then I slide it for season three Pull out the third word name Okay, then To do a text editing we just I'm just going to add color slice to the end of the line So hi, my name is color slice So how to do that? I have to navigate all the way to the to the last character of the on that line So now I move the slider all the way to the last word on the line And then move the character slider all the way to the last character on that one We had to put some that means it's resting on blank space and then I'm having stuff in DDSS Okay, so you see the character slide and move as I type so I type one character The the the guy advanced one step I type two characters a guy advanced to seven so on deep deep Okay, and then I'm on the rest of the line. So it's just same thing we're just going to see it one more time and And F-O-R-Taste, Y-O-U-R-S-E-L-F-Taste, V-R-O-V-I-D-V-D-Taste, Y-O-U-Taste, H-A-V-V-Taste, A-L-L-Taste, D-H-E-Taste, Z-O-M-V-O-N-E-N-D-D-S. I am an open-assisted device. Hi, my name is Thomas Tess. I am an open-assisted device. That means you can be a one-for-yourself with my videos on the components. Okay, I think that's the demo video. I have the device here, but I don't have time to set it up, but we can always play with it later after this, provided we have the time and we can stay in the room. Right, so that's the demo. And then the components is there. We're just going to briefly go through it like this. And the software components, Arduino, Node.js, Espeak. And so the philosophy is I try to make it as interchangeable as possible, the hardware components. I get feedback from people saying that, hey David, you can combine the Arduino with the motor shield and probably with the Singapore computer as well, so you have one big board and you can save costs that way. And those people are right. They give good feedback. They are very keen. They have good eyesight. I mean, not good eyesight, but they have good advice. But I think right now what we need more is education first, because if I put everything in one big board, it becomes a big black box and people don't know where to start. But if it's modular, you can see they are doing the microcontroller and you have the shield. If your shield is broken, for example, you can just take out the shield, swap in a new one, and then keep on going. So right now, I think the focus should be education first and economy second, because this advises up things that so few people play with. And I think we should try to make it as easy as possible or as many people as possible to tinker with this. And so that's kind of the philosophy behind it. Then why? What's the goal? What for? The goal is that in 20 years' time, this problem, the problem where I have lousy eyesight and I must edit some text should become a non-issue. I mean, we look at hand phones. Not even 20 years, I still remember my first hand phone. It was bulky, antennas poking out and stuff. But today's hand phone is so slim and it plays video and I can do web browsing and all that. That's not even 20 years. So for course, I'm hoping the same kind of progress can happen. And of course, the must-execute is a liberal solution, so liberal is important. And then this is the exciting part. So everybody now has a pretty good understanding of how the device works. Now that we have a system that people can do text editing comfortably and effectively, actually the door opens up to many more new possibilities. For example, social messaging. If we can't see, we don't travel as much and so we are probably not in touch with our friends as much. But if we can't physically be with our friends, at least we should be able to send and receive messages with each other. So going forward, one of the immediate things to be implemented is some kind of social messaging capability. I'm looking at integration with Telegram or WeChat. Does anybody know if WeChat allows that? Have APIs for developers to integrate their own apps? How about Telegram? Anybody played with Telegram before? Okay, cool, cool. So that's one of the things I'm looking at. So I might be asking you questions later on if you don't mind. Then Wikipedia Reader. We can get the content of Wikipedia. They have APIs. Collaborative document editing. I think it depends on the line. But instead of everything happening in one keystroke at a time, maybe the update happens at one line at a time. Integration to standard GUI desktop. So with the screen reader, so screen reader is very floating, right? It reads something. Then it's gone. The moment it finishes, it's gone, right? But with core specs, we can sort of make the text replayable and we can drill down to the level of the spelling character by character spelling, right? And of course, integration with keyboard. Text input. And like imagine you go to a web browser and type something and then the core specs also have a physical representation of the text. Okay. Integrated development environment. So somebody from this meetup actually, I don't know if you're here. So he mentioned about, hey, you know, source codes are just text anyway, right? You can do text well and you can do source code, right? So who knows, one day. And one more thing. So we all know this instrument, right? The Chinese traditional instrument. So what kind of music does it play? The traditional Chinese music, you know, the Tai Chi music, the gentle breeze by the cool lake, people play in Tai Chi, Shikong, that kind of slow music. So, well, I was going to play a video, but I guess we don't have time for that. This is a musician from Korea, Gaya Kim Luna, but she uses the Kucheng, the traditional Chinese instrument, anything but traditional. So she plays Santana music and Eagle Hotel California with using the Kucheng, and also the ACDC, quite surprisingly. So check her out. I mean, she's on YouTube and you can see dozens of her recordings. So back to chorus text. Just how one musical instrument can play many, many kinds of... many, many genres of music. You know, chorus text. Don't look at it as just a device for helping people with visual impairments. We can... I mean, the hardware is like that, but one hardware, we can put many software on it, right? It can be a device for young children to learn spelling and how to read and so on. And other things, maybe, I don't know, a mixer board, a controlling... a control board for a smartphone, for example, or maybe some other ideas, you know? Right, so the pain points. Every project has got its pain points. So I'm going to share with you a couple. One is the acrylic enclosure. This looks simple because the acrylic enclosure is, you know, there's no moving parts in it. It's the static part. Like, what's interesting about it, what's so important about it, right? But it's where all the other components mount, right? If you don't have an enclosure, we don't have a device. All we have is, you know, 10 or 12 components jumbled up, tangled up in the cable. Okay. And... Well, right now we can do acrylic laser cutting at C studio, but the minimum order quantity is five pieces. And for the course text enclosure, we use at least three design files, one for the top, one for the bottom, and for the sides. One design file, minimum quantity is five pieces, and the price is like $54. So upfront, the guy is going to pay at least $170 for five sets, right? So this is one of the pain points. It would be ideal if, you know, locally in Singapore, if organizations who have laser cutlers who can, so-called, provide the service for people to purchase one set, a kit for one set rather than for five sets. And, you know, maybe we can do something like course text architecture device. They can engrave the organization's name on the piece of acrylic that they subsidize, and things like that. So, yeah. So there's one pain point. The other pain point is... So we have all seen that there's many promising paths lying ahead, but there's just one developer right now. Which is kind of why I'm doing this. Spread the news as many people as possible, and hopefully, you know, we form a community. Yes, please. Kickstarter, yes. That's a very good idea. Well, I have put some thought into it. The thing that is battling in my mind is that, you know, for such a project, you know, if I go to Kickstarter, this project is going to compete with drones and, you know, 3D printers and all the other cooler stuff. And it's going to be a little hard unless I've done my homework, like, you know, people... Before people contribute, people ask, hey, who's this guy? Is he for real? Is he going to be here tomorrow after I give my support? That kind of thing. So, one day, one day, I probably do a Kickstarter. So, but that's a good option. Yeah, thank you. And, yeah, so... And, up next is a little poem. I mean, English is not my first language, but let's just try anyway. Okay, so the plans reveal the map unfurl, wait not to start, not to take far. From all corners of the world, step forth, you will head with heart. So, thank you. That's dedicated to the hackers who are not nameable right now because they haven't shown up yet. Okay, so let's look at the Node.js part. So... Hang on. Yeah, so on the left is the device. In the device, I have the Arduino on the lower left. It's doing... It's hooked up to sensors and motors and it's communicating with the main app, course-like client.js, through Node serial port. And then there's two modules. There are two modules, course speech at the top there, which is the one responsible for communicating with each speed, spouting child process and killing them. And... The course document is for updating the document and tracking the position of the cursor. And there's a web interface and... API for getting important text and accessible from the smartphone, tablets, laptops, and other applications. Like, for example, the desktop integration would want to be able to import and export text to the phone device. And the server component is not done yet right now. So far, I've been the only one talking. Any questions so far? Any thoughts? I mean, anything. Well, thanks, thanks. So... Yeah, just... Just, you know... Anybody? Yeah, yeah, please. Okay, what's running on the Arduino? Arduino code to start and stop model and listen for button presses, sliding, changes in the slider's positions, and... Yeah, that's pretty much it. Is this written in Node or...? I'm sorry? Is this written in Node on the Arduino assembly? No, the Arduino is just Arduino. So it's just a standard Arduino communicating over serial with USB. So it's just like how people... The same channel, like hooking up Arduino with Python or with processing a Java. Can we see that part? Okay, sure, sure. The code is messy, so... It opens up in this one. Do we know? Okay. So I hope I navigate to the right place. So my own vision is not that good. Yeah, so I'm just kidding. So yeah, that's about it. I'm using a library, Node Serial Port library from a guy on GitHub. His nickname is Voodoo Tiki God. So I think he's quite close with the Johnny V project, I think. If he's not the guy behind it, it's one of the guys behind it. So... Yeah, he has got examples and stuff, how to get... and Arduino talking to Node.js. And then... The repo is on github.com.cura.cura.dave. slash chorus text. And so if this is too small, you got your computer up already. You want to see a bigger screen and feel free to go to the people. Okay, so I'm not really a JavaScript ninja by any measure. So I'm just somebody who just has a passion for interest and just stays in front of the screen for too many hours. So the thing is, I feel... I mean... I need help from you guys. The brain capital in this room is amazing. So if you've got... I don't know, in weekends, you've got one hour to kill, feel free to go into the repo and poke around and send me notifications, send me email and say, hey David, I think you should check out this and this and this or if you know a better way, you can teach me. There are two ways to work on a number of developers. One is to upgrade the candle to a torch. If you guys have the time to jump in full-time, that's great, that's lovely, that's wonderful. Nothing could be better. But if you don't have, all you have is one hour or two hours. That's also fine. You can also teach me. And I'll make sure... just send me some pointers and say, hey David, I think you should check out this and that topic and the code will improve eventually. So, yeah. Questions? Do we have time? Have I exceeded the time? Okay, okay. Cool, cool. So... Yeah, so let's start then. Thank you so much, thank you for listening to me. Thank you.