By Yiming Li

Completing a project like this is a very challenging process for me. Also, a four-week project like this gave me enough time to think, so I also had a completely different understanding of the project before and after. I’ll explain more about this below, but as I said in my previous project I have really enjoyed the problem solving process and I have a deep hope that I will be able to continue to improve this project in the future.
From my point of view, the focus of this project is on ‘control’ in the literal sense of the word. In the grand scheme of things, this behaviour is an important embodiment of the term human-computer interaction; in the small scheme of things, it’s an important part of any software-to-software, software-to-code, code-to-hardware communication. In this project, my focus was on writing programs in processing that would run maturely while adding logical controllers and triggers to the Arduino.
The inspiration for this project came from some interesting designs I had previously seen on the internet, as well as some things that happened to me personally. But I’ll try to present it in the order of first and second research.
In the classroom workshop, I was introduced to buttons and potentiometers for the first time and learnt how they work in a circuit. I had a lot of fun with the control of these physical buttons because almost all similar components work on the same principle. It reminded me of some interesting designs I’ve seen before: a keyboard without text and the ‘hitbox’, a specialised strike pad for fighting game players.


There’s not much to say about the former, which is basically a literal ‘wordless keyboard’ for users who are very skilled at typing keyboards and want a highly customisable working platform (some expensive products can even analyse the user’s habits to automatically correct each typed key). As for the latter, the ‘hitbox’ is the one I’m going to focus on, as the design concept of this product greatly influenced my design for the final presentation of the project’s form factor. At a glance the hitbox is quite simple – it consists of a few arcade buttons and a case. However, unlike traditional arcade consoles, it eliminates the joysticks and makes all of the buttons more compact and closer to the fingers of the hands – allowing players to quickly and accurately press the buttons they want to press during a game. It’s not so much a ‘press’ as it is a ‘roll’. In other words, the design allows the user to control multiple buttons at once in a silky smooth manner.
With the basic form in mind, it was time to start thinking about what kind of ‘thing’ I was going to make.I’m thinking that since it’s going to be a keyboard, it’s best used for nothing more than typing. But what kind of text to type? What exactly to type on? Why text? There are so many questions that need to be explained.
Fortunately, these are questions I may be able to find answers to from my own experience. I consider myself a person who works with words a lot – reading and writing are among my few hobbies. I spend some time reading almost every day. However, I haven’t always been able to keep up with it, and for a period of time a few years ago I gave up reading for personal reasons and started picking up my mobile phone and swiping through short videos, bouncing from platform to platform, and during that time pictures and streaming pretty much filled up my life. I seemed to realise my impatience and change of heart, and I started to pick up the hobby of reading again. But when I held these books in my hands, I realised tragically that I didn’t seem to be able to get into them – the familiar words seemed so strange at the moment, and I needed to read the same sentences two or three times before I could understand them, and I began to feel frustrated and chagrined, and tried to figure out the reason for all of this. After some searching, I learnt that this is actually a very interesting phenomenon. Psychologists call it a form of ‘cognitive saturation’. Short videos and streaming media can easily give you a pleasurable sensation and stimulate your brain. But the pleasure is undoubtedly cheap, your brain skips the thinking process, and sometimes you can swipe your phone all day long without even remembering what you’ve actually watched. Over time, your brain becomes addicted to this cheap happiness and becomes less inclined to think. As for reading a book, a process that not only involves a huge amount of text, but also a lot of comprehension and speculation, it’s even harder to do. This is why I feel alienated when confronted with words and can find it difficult to comprehend the message conveyed in them.

This scenario is not only happening to me, but in my research with my peers, most of them don’t even have a reading type of habit, and the vast majority of them rarely read after leaving school. The written word became familiar and alien to them. Many Chinese speakers even forget how to write because they have been using the Pinyin keyboard for so long. In fact, dyslexia can be found in many people, but they just don’t realise it yet. At the same time, the over-efficiency of the modern society in the use of words is also one of the causes of this phenomenon. In summary, I hope that the project I have produced will be a good representation of my views on this issue.

In my opinion, the main core of this project is the introduction of this theme, as well as the relative discussion and reflection on it. I hope that this project will somehow reawaken the perception of the written word.
The basic logic of this project is: press a button to generate text on the screen. I started to think it was simple, but in practice it was far more difficult than I thought it would be. I’ve searched the Processing library and related communication sites for code and sample programs for text, and I’ve come up with a number of ways to do this. Then I decided to use the technique of adding tabular data in Processing, which I had learnt earlier in the Data Visualisation project. For me this is a relatively feasible and efficient approach, and I must say that Processing must contain smarter and better logic about text generation, and I will try to learn these approaches later.
In a few solo attempts after Workshop, I tried to add some basic manipulation myself, such as one or two buttons to generate some simple random text.



Going back to the Arduino part, I purchased a number of arcade buttons, and as stated in the research above, I wanted my users to be able to use my device like a Hitbox – to be able to rub and press those buttons at will. And these buttons add some texture to my project too.
However a few buttons are not enough for me. I also wanted to add something that could be customised by the user and at the same time enhance the user interaction experience. So I added two more components to the overall project. Potentiometer and Photoresistor. These things were taught in class and all I needed to do was connect and debug. This took me some time and I combined it with processing to see how each component was connected and to give them different functions. I had a clear vision in my head of what these components would do in the unit. The photoresistor is responsible for controlling the switching of the whole system, the potentiometer to control some custom interactions, and the buttons are used to generate text.

After testing the connection I focused on the code. Basically, I made a form that has almost a few hundred words. There were five columns in total, with fifty rows in each column. The words were not randomly arranged, but rather each column of words was arranged in a regular order of subject, predicate, verb, noun, etc. I added them to Processing and made each button correspond to a column of words. The purpose of doing this is that although the whole project generates something random, I still hope that there will be a sentence or two in the random discourse that reads well. Next, I added a number of handwriting fonts to the code so that the entire code could change to different fonts when the potentiometer was providing different readings.


Here I feel I need to explain why I use handwritten fonts. There’s actually a personal idea of mine hidden here. I want the user to feel like they are ‘writing out ✍️’ when they use my device, even though they are using a button, or ‘keyboard’, rather than ‘generating’ the words. ‘. It’s not that I haven’t tried to use formal written fonts (as I’ve been talking about books), but here the reason is more personal, and I think it would be counterproductive to include something so formal in such a slightly humorous installation.Besides, we’re not generating anything ‘’formal‘’ anyway.
There’s really not much more to say about the code section. I need to add a lot of features and tweaks to the code, but it’s all very detailed stuff. Things like how fast the text starts flashing when I press a button; how to make the text spawn one after the other; how to make the text not overlap; how to make the text automatically line feed after it reaches the edge of the screen while keeping the keystroke line feeds; how to control the size of the text gaps in each font to stay consistent after a change; and so on. After solving all these problems in a week’s time, I added one last feature to the project – the light-sensitive resistor.
Before I introduce this function, I’d like to briefly talk about my design for the shape of the whole device, which is the housing part. From the very beginning, I wanted to make something that ‘looks like a book’, or at least can be ‘opened’. It is important that there is a flipping action. I thought a rectangular book-looking box that could hold all the components and wiring would probably be the best option. However, due to technical issues, there was no way I could reduce the thickness of this box to the size of a real book. But I still preserved the ability to make it flip open. I think this is very important.
Then the light sensitive resistor acts as a very important part in this. Under the code for full screen display, I drew a rectangular border to confine all the text inside. This is a simple organiser and a symbol of system startup.When I flip the lid, the light sensitive resistor detects the change in light and initiates the whole code at the same time. When I close the lid, the light sensitive resistor switches off and refreshes the whole system while storing the last frame before the system switches off in pdf format. This allows the user to save their work.
Up to this point, the basic setup has been completed. The next thing I have to think about is how to cram all these circuits into my box. This is where I was introduced to soldering as a technique. This is my first time using it and I am excited about it. I think this is the best way to shorten and organise my wiring. It proved to be very efficient, although there were times when the soldering was not as strong as it should have been, which caused me a lot of problems. But the good news is that I managed to get them into the box in the end.



During this project, I tried out new angles of thinking and learnt some new ways of learning. I feel personally that my problem-solving ability has improved, and I am grateful for the help I received from my teachers and classmates. On the last day of the exhibition, I was happy to see people casually manipulating the buttons in front of my project – just as I expected. People were looking at the randomly generated text and exploring the meaningful parts of it. I could have added a label to each button or slowed down the flashing text to make the generation more manageable. But I didn’t want that. Totally random stuff is the beauty of this project, and I didn’t want to ruin the user’s quest to make sense out of the unknown bits.




Admittedly, I can’t be bothered to define whether reading is more meaningful as opposed to swiping through videos. In his book ‘Reading is a portable refuge’, the writer Maugham mentioned that reading brings us to think, a long series of deep, long, coherent thoughts. These thoughts are actually hidden underneath those seemingly obscure words. I love to read because I can always find what I want in words, beautiful sunshine, delicious food, close loved ones. The gaps between words and phrases, between sentences are not blank spaces, but need to be filled with our imagination. My friend told me that he hasn’t actually read anything in a long time, but when I see him going to work on imagining the interesting parts of the snippets he generates using my project and discussing them with others, and I think that’s what this is all about.